From 35ced9f26eb67b125d8ca6d580d5c902aaf2fdb4 Mon Sep 17 00:00:00 2001 From: Ivan Kovalkovskyi Date: Mon, 12 Oct 2015 14:17:00 +0300 Subject: [PATCH] Update contact m2m bug fix --- emencia/django/newsletter/admin_forms.py | 6 ++++++ emencia/django/newsletter/models.py | 2 +- emencia/django/newsletter/views/admin_views.py | 8 ++++++++ templates/admin/newsletters/contact.html | 1 + 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/emencia/django/newsletter/admin_forms.py b/emencia/django/newsletter/admin_forms.py index 2fc719af..c9f52b90 100644 --- a/emencia/django/newsletter/admin_forms.py +++ b/emencia/django/newsletter/admin_forms.py @@ -4,6 +4,7 @@ from django.utils.translation import ugettext_lazy as _ from ckeditor.widgets import CKEditorWidget from emencia.django.newsletter.models import Contact, ContactSettings, MailingList, Newsletter from city.models import City +from country.models import Country, Area class ContactSettingsForm(forms.ModelForm): @@ -14,6 +15,8 @@ class ContactSettingsForm(forms.ModelForm): subscriber = forms.BooleanField(label=_('subscriber'), required=False) valid = forms.BooleanField(label=_('valid email'), required=False) tester = forms.BooleanField(label=_('contact tester'), required=False) + country = forms.MultipleChoiceField(choices=[(c.id,c.name) for c in list(set(Country.objects.language().all()))], required=False) + area = forms.MultipleChoiceField(choices=[(a.id, a.name) for a in list(set(Area.objects.language().all()))], required=False) class Meta: model = ContactSettings @@ -38,14 +41,17 @@ class ContactSettingsForm(forms.ModelForm): def clean_city(self): return City.objects.none() + class MailingListForm(forms.ModelForm): class Meta: model = MailingList fields = ('name', 'description') + class NewsletterForm(forms.ModelForm): test_contacts = forms.CharField(label=u'Тестовые контакты', widget=forms.HiddenInput(), required=False) content = forms.CharField(label=_('content'), widget=CKEditorWidget(config_name='newsletters')) + class Meta: model = Newsletter fields = ('title', 'content', 'mailing_list', 'test_contacts', 'header_sender', diff --git a/emencia/django/newsletter/models.py b/emencia/django/newsletter/models.py index 1180e54d..6a59a6b5 100644 --- a/emencia/django/newsletter/models.py +++ b/emencia/django/newsletter/models.py @@ -198,7 +198,7 @@ class Contact(models.Model): class ContactSettings(models.Model): WEEK = 1 # every week WEEK_2 = 2 # every 2 weeks - MONTH = 3 # every 4 month + MONTH = 3 # every 4 weeks PERIODIC_CHOICES = [(WEEK, 'Раз в неделю'), (WEEK_2, 'Раз в 2 недели'), diff --git a/emencia/django/newsletter/views/admin_views.py b/emencia/django/newsletter/views/admin_views.py index 8af40dfe..80a58212 100644 --- a/emencia/django/newsletter/views/admin_views.py +++ b/emencia/django/newsletter/views/admin_views.py @@ -57,6 +57,14 @@ class UpdateContact(UpdateView): template_name = 'admin/newsletters/contact.html' success_url = '/admin/newsletters/contact/all/' + def form_valid(self, form): + self.object = form.save() + self.object.theme = form.cleaned_data['theme'] + self.object.country = form.cleaned_data['country'] + self.object.area = form.cleaned_data['area'] + self.object.save() + return HttpResponseRedirect(self.get_success_url()) + def get_initial(self): obj = self.object.contact data = self.initial.copy() diff --git a/templates/admin/newsletters/contact.html b/templates/admin/newsletters/contact.html index bcd8be29..45f3c536 100644 --- a/templates/admin/newsletters/contact.html +++ b/templates/admin/newsletters/contact.html @@ -10,6 +10,7 @@ $('#id_theme').select2({width: "element"}); $('#id_country').select2({width: "element"}); + $('#id_area').select2({width:'element'}); })