LPgenerator / django-db-mailer

Django module to easily send emails/sms/tts/push using django templates stored on database and managed through the Django Admin
https://github.com/LPgenerator/django-db-mailer
GNU General Public License v2.0
255 stars 81 forks source link

Add option in sttings for custom HTMLField class. #16

Closed petrikoz closed 9 years ago

petrikoz commented 9 years ago

Пользуюсь Вашим проектом и решил немного его улучшить.

Вместо кучи блоков try/except в фале fields.py для всех мыслимых пользовательских HTML-полей для модели, я запилил импорт по строке вида 'app.fields.MyCustomModelHTMLField'.

Теперь совсем не обязательно, чтобы батарейка, из которой берётся поле, была в INSTALLED_APPS. Достаточно, чтобы она просто была в доступна для импорта.

landscape-bot commented 9 years ago

Code Health Repository health increased by 0.13% when pulling bf58197 on petrikoz:feature/custom-htmlfield into 8151a37 on LPgenerator:development.

gotlium commented 9 years ago
Теперь совсем не обязательно, чтобы батарейка, из которой берётся поле, была в INSTALLED_APPS.

я немного не соглашусь с данным утверждением. сторонние батарейки не просто так добавляются в INSTALLED_APPS. вот мысль дать человеку выбор, а не приковывать гвоздями его к ckeditor и tinymce верна. правда теряется простота подключения. то есть надо еще прописывать в переменную. в таком случае надо добавлять записи в документацию и в ридми, что бы разработчики могли сразу сообразить что произошло. ведь теряется обратная совместимость. но вот реализация импорта мне не очень нравится. в проекте везде используется конструкция вида:

from django.utils.importlib import import_module

можно было бы просто оставить версию для dj14, а так же вынести данную функцию в utils.py, убрав из init.py. ну и конечно же провести небольшой рефакторинг. так как import_module в dj19 уже будет недоступен. значит можно было бы везде где динамический импорт сделать правки, и вместо import_module использовать import_by_string. тогда уже появляется некое единобразное решение одной проблемы. ps - спасибо что нашли время и вносите свой вклад.

petrikoz commented 9 years ago

Может добавить задачу по рефакторингу? Ну и кто закроет, тот молодец. Просто я не уверен, что у меня в ближайшие дни будет время.

В целом мой код поддерживает последнюю версию Django. А костыли именно для 1.4 наваяты.

petrikoz commented 9 years ago

Тьфу, закрыл случайно.

gotlium commented 9 years ago

в итоге видимо самому делать придется)