From 6fc7d77dd30d638339eb13adcef6df16d49fadfc Mon Sep 17 00:00:00 2001 From: Alexander Burdeiny Date: Mon, 15 Aug 2016 11:23:33 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=BF=D1=8B=20=D0=B8=20=D1=84?= =?UTF-8?q?=D0=B8=D0=BA=D1=81=D1=8B=20=D0=BF=D1=80=D0=B8=20=D1=81=D0=B4?= =?UTF-8?q?=D0=B0=D1=87=D0=B5=20=D0=92=20=D0=B0=D0=BD=D0=BE=D0=BD=D1=81?= =?UTF-8?q?=D0=B0=D1=85=20=D1=82=D0=BE=D0=B6=D0=B5=20=D1=81=D0=B0=D0=BC?= =?UTF-8?q?=D0=BE=D0=B5=20-=20=D0=98=D0=BC=D1=8F=20=D0=B2=20=D1=82=D0=B5?= =?UTF-8?q?=D0=BC=D0=B5=20=D0=BD=D0=B5=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80?= =?UTF-8?q?=D0=B0=D0=B6=D0=B0=D0=B5=D1=82.=20=D0=9F=D1=80=D0=B5=D1=85?= =?UTF-8?q?=D0=B5=D0=B0=D0=B4=D0=B5=D1=80=20=D0=9E=D0=9A.=20=D0=95=D1=81?= =?UTF-8?q?=D0=BB=D0=B8=20=D1=81=D0=BE=D0=B1=D1=8B=D1=82=D0=B8=D0=B9=20?= =?UTF-8?q?=D0=BD=D0=B5=D1=82,=20=D1=82=D0=BE=20=D0=BD=D0=B5=20=D0=B2?= =?UTF-8?q?=D1=8B=D0=B2=D0=BE=D0=B4=D0=B8=D1=82=D1=8C=20=D0=B1=D0=BB=D0=BE?= =?UTF-8?q?=D0=BA.=20=D0=A1=D0=B5=D0=B9=D1=87=D0=B0=D1=81=20=D0=B2=D1=8B?= =?UTF-8?q?=D0=B2=D0=BE=D0=B4=D0=B8=D1=82=20=D0=BF=D1=83=D1=81=D1=82=D0=BE?= =?UTF-8?q?=D0=B9=20-=20=D0=B3=D0=BE=D1=82=D0=BE=D0=B2=D0=BE=20=D0=A1?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=D0=BB=D0=B0=20=D1=82=D0=BE?= =?UTF-8?q?=D0=BB=D1=8C=D0=BA=D0=BE=20=D0=BF=D0=BE=20=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=B0=D0=BD=D0=B5=20=D1=84=D0=B8=D0=BB=D1=8C=D1=82=D1=80=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8F,=20=D0=BF=D0=BE=20=D0=B3=D0=BE=D1=80=D0=BE?= =?UTF-8?q?=D0=B4=D1=83=20=D0=BD=D0=B5=D1=82.=20=20-=20=D0=98=D1=81=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=9C=D0=BE=D0=B6?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=BF=D1=80=D0=B5=D1=85=D0=B5=D0=B0=D0=B4=D0=B5?= =?UTF-8?q?=D1=80=20=D0=B4=D0=BB=D1=8F=20=D0=90-=D0=91=20=D1=82=D0=B5?= =?UTF-8?q?=D1=81=D1=82=D0=BE=D0=B2=20=D1=82=D0=BE=D0=B6=D0=B5=20=D0=B2?= =?UTF-8?q?=D1=8B=D0=BD=D0=B5=D1=81=D1=82=D0=B8=3F=20=20-=20=D0=B2=D1=8B?= =?UTF-8?q?=D0=BD=D0=B5=D1=81=D0=B5=D0=BD=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- emencia/django/newsletter/admin_forms.py | 2 +- emencia/django/newsletter/mailer.py | 4 +-- emencia/django/newsletter/models.py | 30 ++++++++++++++----- .../newsletter/announce_template.html | 4 +++ fabfile.py | 5 ++++ .../newsletters/newsletter_object.html | 4 +-- 6 files changed, 37 insertions(+), 12 deletions(-) diff --git a/emencia/django/newsletter/admin_forms.py b/emencia/django/newsletter/admin_forms.py index befb511d..fbc4d9be 100644 --- a/emencia/django/newsletter/admin_forms.py +++ b/emencia/django/newsletter/admin_forms.py @@ -180,7 +180,7 @@ class NewsletterForm(forms.ModelForm): class Meta: model = Newsletter - fields = ('preheader', 'title', 'content', 'ab_testing', 'ab_first_stage', 'title2', 'content2', 'mailing_list', 'theme_for_filter', 'test_contacts', 'header_sender', + fields = ('preheader', 'title', 'content', 'ab_testing', 'ab_first_stage', 'preheader2', 'title2', 'content2', 'mailing_list', 'theme_for_filter', 'test_contacts', 'header_sender', 'header_reply', 'status', 'sending_date', 'slug') widgets = { 'ab_first_stage': forms.widgets.TextInput(attrs={'type':'number', 'min': 5, 'max': 100}), diff --git a/emencia/django/newsletter/mailer.py b/emencia/django/newsletter/mailer.py index 651b05e0..355dced8 100644 --- a/emencia/django/newsletter/mailer.py +++ b/emencia/django/newsletter/mailer.py @@ -272,7 +272,7 @@ class NewsLetterSender(object): if self.newsletter.ab_testing and self.ab_state == Newsletter.A: title = self.title_template.render(context) elif self.newsletter.ab_testing and self.ab_state == Newsletter.B: - title = self.title_template2.render(context) + title = self.title_template2.render(context) else: title = self.title_template.render(context) return title @@ -335,7 +335,7 @@ class NewsLetterSender(object): theme_word=theme_word.make_agree_with_number(count).word, ) return { - 'name': contact.first_name or contact.last_name, + 'name': contact.first_name or contact.last_name or _(u'Подписчик'), 'themes': ', '.join([self.themes.get(x) for x in contact.contactsettings.theme.all().values_list('pk', flat=True)[:3]]) + t_add, } diff --git a/emencia/django/newsletter/models.py b/emencia/django/newsletter/models.py index ae9afc2f..99ae0a0a 100644 --- a/emencia/django/newsletter/models.py +++ b/emencia/django/newsletter/models.py @@ -167,13 +167,29 @@ class Contact(models.Model): # making query params = Q() - countries = self.contactsettings.country.all().values_list('pk', flat=True) - if countries: - params |= Q(country__in=countries) - - cities = self.contactsettings.city.all().values_list('pk', flat=True) - if cities: - params |= Q(country__in=cities) + _countries = set(self.contactsettings.country.all().values_list('pk', flat=True)) + countries = set() + # countries_overall = set() + _cities = self.contactsettings.city.all().values_list('pk', 'country_id') + cities = set() + cities_overall = set() + + for city, country_id in _cities: + if country_id in _countries: + cities.add(city) + countries.add(country_id) + else: + cities_overall.add(city) + countries_overall = _countries.difference(countries) + + if countries_overall: + params |= Q(country_id__in=countries_overall) + + if cities_overall: + params |= Q(city_id__in=cities_overall) + + if countries and cities: + params |= Q(city_id__in=cities, country_id__in=countries) if themes: theme_ids = set([item.id for item in themes]) diff --git a/emencia/django/newsletter/templates/newsletter/announce_template.html b/emencia/django/newsletter/templates/newsletter/announce_template.html index 5ce43997..112ba77d 100644 --- a/emencia/django/newsletter/templates/newsletter/announce_template.html +++ b/emencia/django/newsletter/templates/newsletter/announce_template.html @@ -33,6 +33,7 @@ {# end header #} {# events #} + {% if expo %} {% with events=expo place=expo_places %} @@ -73,9 +74,11 @@
{% endwith %} + {% endif %} {# end events #} {# conferencies #} + {% if conf %} {% with events=conf place=conf_places %} @@ -116,6 +119,7 @@
{% endwith %} + {% endif %} {# end conferencies #} {% if news %} diff --git a/fabfile.py b/fabfile.py index ee82ac3e..108d9346 100644 --- a/fabfile.py +++ b/fabfile.py @@ -132,6 +132,11 @@ def stage_init(stage_num): call_state('start', only='apache2') +def migrate(app_name): + with cd(REMOTE_HOME_DIR): + run('python manage.py migrate {app_name}'.format(app_name=app_name)) + + @stage(5) def t1451(): with cd(REMOTE_HOME_DIR): diff --git a/templates/c_admin/newsletters/newsletter_object.html b/templates/c_admin/newsletters/newsletter_object.html index c004c2f2..e365bf1e 100644 --- a/templates/c_admin/newsletters/newsletter_object.html +++ b/templates/c_admin/newsletters/newsletter_object.html @@ -36,9 +36,9 @@ function makeContent2() { if ($('#id_ab_testing').is(':checked')) { $('div#cke_id_content2 div.cke_contents').height($('div#cke_id_content div.cke_contents').height()); - $('#id_content2, #id_title2, #id_ab_first_stage').parents('div.control-group').show(); + $('#id_content2, #id_title2, #id_preheader2, #id_ab_first_stage').parents('div.control-group').show(); } else { - $('#id_content2, #id_title2, #id_ab_first_stage').parents('div.control-group').hide(); + $('#id_content2, #id_title2, #id_preheader2, #id_ab_first_stage').parents('div.control-group').hide(); } } makeContent2();