From 3fca3e61a4d237e395d46d2460e0af1a8bb533c0 Mon Sep 17 00:00:00 2001 From: Slava Kyrachevsky Date: Thu, 19 Jan 2017 10:55:45 +0200 Subject: [PATCH] =?UTF-8?q?=D1=84=D0=B8=D0=BB=D1=8C=D1=82=D1=80=20=D1=80?= =?UTF-8?q?=D0=B0=D1=81=D1=81=D1=8B=D0=BB=D0=BE=D0=BA=20=D0=B2=20=D0=B0?= =?UTF-8?q?=D0=B4=D0=BC=D0=B8=D0=BD=D0=BA=D0=B5=20=D0=BF=D0=BE=20=D0=B4?= =?UTF-8?q?=D0=B0=D1=82=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- emencia/django/newsletter/admin_forms.py | 32 ++- .../0001_initial.py | 272 ------------------ .../0002_auto__add_attachment.py | 130 --------- .../0003_auto__add_unique_newsletter_slug.py | 123 -------- .../__init__.py | 0 .../django/newsletter/views/admin_views.py | 23 +- .../c_admin/exposition/exposition_list.html | 1 - .../newsletters/newsletter_list_daily.html | 20 ++ 8 files changed, 63 insertions(+), 538 deletions(-) delete mode 100644 emencia/django/newsletter/south_migrations_old(27.06.16)/0001_initial.py delete mode 100644 emencia/django/newsletter/south_migrations_old(27.06.16)/0002_auto__add_attachment.py delete mode 100644 emencia/django/newsletter/south_migrations_old(27.06.16)/0003_auto__add_unique_newsletter_slug.py delete mode 100644 emencia/django/newsletter/south_migrations_old(27.06.16)/__init__.py diff --git a/emencia/django/newsletter/admin_forms.py b/emencia/django/newsletter/admin_forms.py index 5996982b..b984140f 100644 --- a/emencia/django/newsletter/admin_forms.py +++ b/emencia/django/newsletter/admin_forms.py @@ -302,4 +302,34 @@ class NewsletterRecommendForm(forms.ModelForm): if not obj.pk: obj.save() obj.theme = self.cleaned_data['theme'] - return obj \ No newline at end of file + return obj + + +class NewsletterFilterForm(forms.Form): + """ + Форма для фильтра рассылок по дате + """ + model = Newsletter + + start_date = forms.DateField( + label=_(u'Начальная дата отправки'), + required=False + ) + end_date = forms.DateField( + label=_(u'Конечная дата отправки'), + required=False + ) + + def filter(self): + """ + Фильтр данных + """ + qs = self.model.objects.all() + + if self.cleaned_data.get('start_date'): + qs = qs.filter(sending_date__gte=self.cleaned_data['start_date']) + + if self.cleaned_data.get('end_date'): + qs = qs.filter(sending_date__lte=self.cleaned_data['end_date']) + + return qs diff --git a/emencia/django/newsletter/south_migrations_old(27.06.16)/0001_initial.py b/emencia/django/newsletter/south_migrations_old(27.06.16)/0001_initial.py deleted file mode 100644 index d5b2e548..00000000 --- a/emencia/django/newsletter/south_migrations_old(27.06.16)/0001_initial.py +++ /dev/null @@ -1,272 +0,0 @@ -from south.db import db -from django.db import models -from emencia.django.newsletter.models import * - - -class Migration: - - def forwards(self, orm): - - # Adding model 'MailingList' - db.create_table('newsletter_mailinglist', ( - ('id', orm['newsletter.MailingList:id']), - ('name', orm['newsletter.MailingList:name']), - ('description', orm['newsletter.MailingList:description']), - ('creation_date', orm['newsletter.MailingList:creation_date']), - ('modification_date', orm['newsletter.MailingList:modification_date']), - )) - db.send_create_signal('newsletter', ['MailingList']) - - # Adding model 'ContactMailingStatus' - db.create_table('newsletter_contactmailingstatus', ( - ('id', orm['newsletter.ContactMailingStatus:id']), - ('newsletter', orm['newsletter.ContactMailingStatus:newsletter']), - ('contact', orm['newsletter.ContactMailingStatus:contact']), - ('status', orm['newsletter.ContactMailingStatus:status']), - ('link', orm['newsletter.ContactMailingStatus:link']), - ('creation_date', orm['newsletter.ContactMailingStatus:creation_date']), - )) - db.send_create_signal('newsletter', ['ContactMailingStatus']) - - # Adding model 'WorkGroup' - db.create_table('newsletter_workgroup', ( - ('id', orm['newsletter.WorkGroup:id']), - ('name', orm['newsletter.WorkGroup:name']), - ('group', orm['newsletter.WorkGroup:group']), - )) - db.send_create_signal('newsletter', ['WorkGroup']) - - # Adding model 'Link' - db.create_table('newsletter_link', ( - ('id', orm['newsletter.Link:id']), - ('title', orm['newsletter.Link:title']), - ('url', orm['newsletter.Link:url']), - ('creation_date', orm['newsletter.Link:creation_date']), - )) - db.send_create_signal('newsletter', ['Link']) - - # Adding model 'Newsletter' - db.create_table('newsletter_newsletter', ( - ('id', orm['newsletter.Newsletter:id']), - ('title', orm['newsletter.Newsletter:title']), - ('content', orm['newsletter.Newsletter:content']), - ('mailing_list', orm['newsletter.Newsletter:mailing_list']), - ('server', orm['newsletter.Newsletter:server']), - ('header_sender', orm['newsletter.Newsletter:header_sender']), - ('header_reply', orm['newsletter.Newsletter:header_reply']), - ('status', orm['newsletter.Newsletter:status']), - ('sending_date', orm['newsletter.Newsletter:sending_date']), - ('slug', orm['newsletter.Newsletter:slug']), - ('creation_date', orm['newsletter.Newsletter:creation_date']), - ('modification_date', orm['newsletter.Newsletter:modification_date']), - )) - db.send_create_signal('newsletter', ['Newsletter']) - - # Adding model 'SMTPServer' - db.create_table('newsletter_smtpserver', ( - ('id', orm['newsletter.SMTPServer:id']), - ('name', orm['newsletter.SMTPServer:name']), - ('host', orm['newsletter.SMTPServer:host']), - ('user', orm['newsletter.SMTPServer:user']), - ('password', orm['newsletter.SMTPServer:password']), - ('port', orm['newsletter.SMTPServer:port']), - ('tls', orm['newsletter.SMTPServer:tls']), - ('headers', orm['newsletter.SMTPServer:headers']), - ('mails_hour', orm['newsletter.SMTPServer:mails_hour']), - )) - db.send_create_signal('newsletter', ['SMTPServer']) - - # Adding model 'Contact' - db.create_table('newsletter_contact', ( - ('id', orm['newsletter.Contact:id']), - ('email', orm['newsletter.Contact:email']), - ('first_name', orm['newsletter.Contact:first_name']), - ('last_name', orm['newsletter.Contact:last_name']), - ('subscriber', orm['newsletter.Contact:subscriber']), - ('valid', orm['newsletter.Contact:valid']), - ('tester', orm['newsletter.Contact:tester']), - ('tags', orm['newsletter.Contact:tags']), - ('content_type', orm['newsletter.Contact:content_type']), - ('object_id', orm['newsletter.Contact:object_id']), - ('creation_date', orm['newsletter.Contact:creation_date']), - ('modification_date', orm['newsletter.Contact:modification_date']), - )) - db.send_create_signal('newsletter', ['Contact']) - - # Adding ManyToManyField 'WorkGroup.mailinglists' - db.create_table('newsletter_workgroup_mailinglists', ( - ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('workgroup', models.ForeignKey(orm.WorkGroup, null=False)), - ('mailinglist', models.ForeignKey(orm.MailingList, null=False)) - )) - - # Adding ManyToManyField 'MailingList.subscribers' - db.create_table('newsletter_mailinglist_subscribers', ( - ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('mailinglist', models.ForeignKey(orm.MailingList, null=False)), - ('contact', models.ForeignKey(orm.Contact, null=False)) - )) - - # Adding ManyToManyField 'WorkGroup.contacts' - db.create_table('newsletter_workgroup_contacts', ( - ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('workgroup', models.ForeignKey(orm.WorkGroup, null=False)), - ('contact', models.ForeignKey(orm.Contact, null=False)) - )) - - # Adding ManyToManyField 'WorkGroup.newsletters' - db.create_table('newsletter_workgroup_newsletters', ( - ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('workgroup', models.ForeignKey(orm.WorkGroup, null=False)), - ('newsletter', models.ForeignKey(orm.Newsletter, null=False)) - )) - - # Adding ManyToManyField 'MailingList.unsubscribers' - db.create_table('newsletter_mailinglist_unsubscribers', ( - ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('mailinglist', models.ForeignKey(orm.MailingList, null=False)), - ('contact', models.ForeignKey(orm.Contact, null=False)) - )) - - # Adding ManyToManyField 'Newsletter.test_contacts' - db.create_table('newsletter_newsletter_test_contacts', ( - ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('newsletter', models.ForeignKey(orm.Newsletter, null=False)), - ('contact', models.ForeignKey(orm.Contact, null=False)) - )) - - def backwards(self, orm): - - # Deleting model 'MailingList' - db.delete_table('newsletter_mailinglist') - - # Deleting model 'ContactMailingStatus' - db.delete_table('newsletter_contactmailingstatus') - - # Deleting model 'WorkGroup' - db.delete_table('newsletter_workgroup') - - # Deleting model 'Link' - db.delete_table('newsletter_link') - - # Deleting model 'Newsletter' - db.delete_table('newsletter_newsletter') - - # Deleting model 'SMTPServer' - db.delete_table('newsletter_smtpserver') - - # Deleting model 'Contact' - db.delete_table('newsletter_contact') - - # Dropping ManyToManyField 'WorkGroup.mailinglists' - db.delete_table('newsletter_workgroup_mailinglists') - - # Dropping ManyToManyField 'MailingList.subscribers' - db.delete_table('newsletter_mailinglist_subscribers') - - # Dropping ManyToManyField 'WorkGroup.contacts' - db.delete_table('newsletter_workgroup_contacts') - - # Dropping ManyToManyField 'WorkGroup.newsletters' - db.delete_table('newsletter_workgroup_newsletters') - - # Dropping ManyToManyField 'MailingList.unsubscribers' - db.delete_table('newsletter_mailinglist_unsubscribers') - - # Dropping ManyToManyField 'Newsletter.test_contacts' - db.delete_table('newsletter_newsletter_test_contacts') - - models = { - 'auth.group': { - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)"}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'newsletter.contact': { - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']", 'null': 'True', 'blank': 'True'}), - 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}), - 'modification_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), - 'subscriber': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'tags': ('tagging.fields.TagField', [], {'default': "''"}), - 'tester': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'valid': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}) - }, - 'newsletter.contactmailingstatus': { - 'contact': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['newsletter.Contact']"}), - 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'link': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['newsletter.Link']", 'null': 'True', 'blank': 'True'}), - 'newsletter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['newsletter.Newsletter']"}), - 'status': ('django.db.models.fields.IntegerField', [], {}) - }, - 'newsletter.link': { - 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'newsletter.mailinglist': { - 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'modification_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['newsletter.Contact']"}), - 'unsubscribers': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['newsletter.Contact']", 'null': 'True', 'blank': 'True'}) - }, - 'newsletter.newsletter': { - 'content': ('django.db.models.fields.TextField', [], {'default': "u'\\n\\n'"}), - 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'header_reply': ('django.db.models.fields.CharField', [], {'default': "'Emencia Newsletter'", 'max_length': '255'}), - 'header_sender': ('django.db.models.fields.CharField', [], {'default': "'Emencia Newsletter'", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mailing_list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['newsletter.MailingList']"}), - 'modification_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'sending_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'server': ('django.db.models.fields.related.ForeignKey', [], {'default': '1', 'to': "orm['newsletter.SMTPServer']"}), - 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'db_index': 'True'}), - 'status': ('django.db.models.fields.IntegerField', [], {'default': '0'}), - 'test_contacts': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['newsletter.Contact']", 'null': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'newsletter.smtpserver': { - 'headers': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'host': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mails_hour': ('django.db.models.fields.IntegerField', [], {'default': '0'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}), - 'port': ('django.db.models.fields.IntegerField', [], {'default': '25'}), - 'tls': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'user': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}) - }, - 'newsletter.workgroup': { - 'contacts': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['newsletter.Contact']", 'null': 'True', 'blank': 'True'}), - 'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.Group']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mailinglists': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['newsletter.MailingList']", 'null': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'newsletters': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['newsletter.Newsletter']", 'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['newsletter'] diff --git a/emencia/django/newsletter/south_migrations_old(27.06.16)/0002_auto__add_attachment.py b/emencia/django/newsletter/south_migrations_old(27.06.16)/0002_auto__add_attachment.py deleted file mode 100644 index d070a5ed..00000000 --- a/emencia/django/newsletter/south_migrations_old(27.06.16)/0002_auto__add_attachment.py +++ /dev/null @@ -1,130 +0,0 @@ -from south.db import db -from south.v2 import SchemaMigration - - -class Migration(SchemaMigration): - - def forwards(self, orm): - - # Adding model 'Attachment' - db.create_table('newsletter_attachment', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('newsletter', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['newsletter.Newsletter'])), - ('title', self.gf('django.db.models.fields.CharField')(max_length=255)), - ('file_attachment', self.gf('django.db.models.fields.files.FileField')(max_length=100)), - )) - db.send_create_signal('newsletter', ['Attachment']) - - def backwards(self, orm): - # Deleting model 'Attachment' - db.delete_table('newsletter_attachment') - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'newsletter.attachment': { - 'Meta': {'object_name': 'Attachment'}, - 'file_attachment': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'newsletter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['newsletter.Newsletter']"}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'newsletter.contact': { - 'Meta': {'object_name': 'Contact'}, - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']", 'null': 'True', 'blank': 'True'}), - 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}), - 'modification_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), - 'subscriber': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), - 'tags': ('tagging.fields.TagField', [], {'default': "''"}), - 'tester': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'valid': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}) - }, - 'newsletter.contactmailingstatus': { - 'Meta': {'object_name': 'ContactMailingStatus'}, - 'contact': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['newsletter.Contact']"}), - 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'link': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['newsletter.Link']", 'null': 'True', 'blank': 'True'}), - 'newsletter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['newsletter.Newsletter']"}), - 'status': ('django.db.models.fields.IntegerField', [], {}) - }, - 'newsletter.link': { - 'Meta': {'object_name': 'Link'}, - 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'newsletter.mailinglist': { - 'Meta': {'object_name': 'MailingList'}, - 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'modification_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'mailinglist_subscriber'", 'symmetrical': 'False', 'to': "orm['newsletter.Contact']"}), - 'unsubscribers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'mailinglist_unsubscriber'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['newsletter.Contact']"}) - }, - 'newsletter.newsletter': { - 'Meta': {'object_name': 'Newsletter'}, - 'content': ('django.db.models.fields.TextField', [], {'default': "u'\\n\\n'"}), - 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'header_reply': ('django.db.models.fields.CharField', [], {'default': "'Giorgio Barbarotta Newsletter'", 'max_length': '255'}), - 'header_sender': ('django.db.models.fields.CharField', [], {'default': "'Giorgio Barbarotta Newsletter'", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mailing_list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['newsletter.MailingList']"}), - 'modification_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'sending_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'server': ('django.db.models.fields.related.ForeignKey', [], {'default': '1', 'to': "orm['newsletter.SMTPServer']"}), - 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'db_index': 'True'}), - 'status': ('django.db.models.fields.IntegerField', [], {'default': '0'}), - 'test_contacts': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['newsletter.Contact']", 'null': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'newsletter.smtpserver': { - 'Meta': {'object_name': 'SMTPServer'}, - 'headers': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'host': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mails_hour': ('django.db.models.fields.IntegerField', [], {'default': '0'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}), - 'port': ('django.db.models.fields.IntegerField', [], {'default': '25'}), - 'tls': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), - 'user': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}) - }, - 'newsletter.workgroup': { - 'Meta': {'object_name': 'WorkGroup'}, - 'contacts': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['newsletter.Contact']", 'null': 'True', 'blank': 'True'}), - 'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.Group']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mailinglists': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['newsletter.MailingList']", 'null': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'newsletters': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['newsletter.Newsletter']", 'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['newsletter'] diff --git a/emencia/django/newsletter/south_migrations_old(27.06.16)/0003_auto__add_unique_newsletter_slug.py b/emencia/django/newsletter/south_migrations_old(27.06.16)/0003_auto__add_unique_newsletter_slug.py deleted file mode 100644 index 14645df9..00000000 --- a/emencia/django/newsletter/south_migrations_old(27.06.16)/0003_auto__add_unique_newsletter_slug.py +++ /dev/null @@ -1,123 +0,0 @@ -from south.db import db -from south.v2 import SchemaMigration - - -class Migration(SchemaMigration): - - def forwards(self, orm): - # Adding unique constraint on 'Newsletter', fields ['slug'] - db.create_unique('newsletter_newsletter', ['slug']) - - def backwards(self, orm): - # Removing unique constraint on 'Newsletter', fields ['slug'] - db.delete_unique('newsletter_newsletter', ['slug']) - - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - 'contenttypes.contenttype': { - 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, - 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) - }, - 'newsletter.attachment': { - 'Meta': {'object_name': 'Attachment'}, - 'file_attachment': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'newsletter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['newsletter.Newsletter']"}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'newsletter.contact': { - 'Meta': {'ordering': "('creation_date',)", 'object_name': 'Contact'}, - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']", 'null': 'True', 'blank': 'True'}), - 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'email': ('django.db.models.fields.EmailField', [], {'unique': 'True', 'max_length': '75'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}), - 'modification_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), - 'subscriber': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'tags': ('tagging.fields.TagField', [], {'default': "''"}), - 'tester': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'valid': ('django.db.models.fields.BooleanField', [], {'default': 'True'}) - }, - 'newsletter.contactmailingstatus': { - 'Meta': {'ordering': "('creation_date',)", 'object_name': 'ContactMailingStatus'}, - 'contact': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['newsletter.Contact']"}), - 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'link': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['newsletter.Link']", 'null': 'True', 'blank': 'True'}), - 'newsletter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['newsletter.Newsletter']"}), - 'status': ('django.db.models.fields.IntegerField', [], {}) - }, - 'newsletter.link': { - 'Meta': {'ordering': "('creation_date',)", 'object_name': 'Link'}, - 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'url': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'newsletter.mailinglist': { - 'Meta': {'ordering': "('creation_date',)", 'object_name': 'MailingList'}, - 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'modification_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'subscribers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'mailinglist_subscriber'", 'symmetrical': 'False', 'to': "orm['newsletter.Contact']"}), - 'unsubscribers': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'mailinglist_unsubscriber'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['newsletter.Contact']"}) - }, - 'newsletter.newsletter': { - 'Meta': {'ordering': "('creation_date',)", 'object_name': 'Newsletter'}, - 'content': ('django.db.models.fields.TextField', [], {'default': "u'\\n\\n'"}), - 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'header_reply': ('django.db.models.fields.CharField', [], {'default': "'Emencia Newsletter'", 'max_length': '255'}), - 'header_sender': ('django.db.models.fields.CharField', [], {'default': "'Emencia Newsletter'", 'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mailing_list': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['newsletter.MailingList']"}), - 'modification_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'sending_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'server': ('django.db.models.fields.related.ForeignKey', [], {'default': '1', 'to': "orm['newsletter.SMTPServer']"}), - 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'}), - 'status': ('django.db.models.fields.IntegerField', [], {'default': '0'}), - 'test_contacts': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['newsletter.Contact']", 'null': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) - }, - 'newsletter.smtpserver': { - 'Meta': {'object_name': 'SMTPServer'}, - 'headers': ('django.db.models.fields.TextField', [], {'blank': 'True'}), - 'host': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mails_hour': ('django.db.models.fields.IntegerField', [], {'default': '0'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}), - 'port': ('django.db.models.fields.IntegerField', [], {'default': '25'}), - 'tls': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'user': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}) - }, - 'newsletter.workgroup': { - 'Meta': {'object_name': 'WorkGroup'}, - 'contacts': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['newsletter.Contact']", 'null': 'True', 'blank': 'True'}), - 'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.Group']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'mailinglists': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['newsletter.MailingList']", 'null': 'True', 'blank': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), - 'newsletters': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['newsletter.Newsletter']", 'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['newsletter'] diff --git a/emencia/django/newsletter/south_migrations_old(27.06.16)/__init__.py b/emencia/django/newsletter/south_migrations_old(27.06.16)/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/emencia/django/newsletter/views/admin_views.py b/emencia/django/newsletter/views/admin_views.py index ace097f3..7f2599b6 100644 --- a/emencia/django/newsletter/views/admin_views.py +++ b/emencia/django/newsletter/views/admin_views.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -import os import datetime from django.conf import settings @@ -20,9 +19,9 @@ from django.views.generic import ( FormView, ListView, RedirectView, - TemplateView, UpdateView ) + from emencia.django.newsletter.admin_forms import ( AttachmentForm, ContactSettingsForm, @@ -30,7 +29,7 @@ from emencia.django.newsletter.admin_forms import ( NewsletterForm, NewsletterDailyForm, NewsletterRecommendForm, - + NewsletterFilterForm ) from emencia.django.newsletter.forms import ( MailingStatusFilter, @@ -44,17 +43,18 @@ from emencia.django.newsletter.models import ( ContactSettings, MailingList, Newsletter, - NewsletterRecommend, - + NewsletterRecommend ) -from functions.admin_views import paginate_results +from functions.admin_views import paginate_results, AdminListView from functions.custom_views import ContextMixin, CreateUpdateView from functions.http import JsonResponse from HTMLParser import HTMLParseError from theme.models import Theme -from ..forms import ContactFilterForm, ContactImportForm, AutomaticEmailTestForm +from ..forms import ( + ContactFilterForm, ContactImportForm, AutomaticEmailTestForm +) from ..models import PopupCount from ..utils.excel import ExcelResponse from ..utils.tokens import tokenize @@ -349,12 +349,12 @@ class NewsletterUpdate(DailyMailSuccesUrlMixin, UpdateView): return HttpResponseRedirect(self.get_success_url()) -class NewsletterListView(ListView): +class NewsletterListView(AdminListView): paginate_by = settings.ADMIN_PAGINATION model = Newsletter template_name = 'c_admin/newsletters/newsletter_list.html' template_name_daily = 'c_admin/newsletters/newsletter_list_daily.html' - success_url = '/admin/newsletters/newsletters/all/' + form_class = NewsletterFilterForm def get_template_names(self): if self.kwargs.get('dailymail', False): @@ -362,8 +362,9 @@ class NewsletterListView(ListView): return super(NewsletterListView, self).get_template_names() def get_queryset(self): - qs = super(NewsletterListView, self).get_queryset() - return qs.filter(dailymail=self.kwargs.get('dailymail', False)) + return self.model.objects.filter( + dailymail=self.kwargs.get('dailymail', False) + ) def send_test_newsletter(request, pk): diff --git a/templates/c_admin/exposition/exposition_list.html b/templates/c_admin/exposition/exposition_list.html index 07a91533..6de2113a 100644 --- a/templates/c_admin/exposition/exposition_list.html +++ b/templates/c_admin/exposition/exposition_list.html @@ -14,7 +14,6 @@ td a{ {% block body %} -{% load i18n %}
diff --git a/templates/c_admin/newsletters/newsletter_list_daily.html b/templates/c_admin/newsletters/newsletter_list_daily.html index 294273af..faa7aa50 100644 --- a/templates/c_admin/newsletters/newsletter_list_daily.html +++ b/templates/c_admin/newsletters/newsletter_list_daily.html @@ -2,6 +2,26 @@ {% load i18n %} {% block body %} +
+
+

{% trans "Фильтры" %}

+
+ +
+
+ {% for field in form %} +
+ +
{{ field }} + {{ field.errors }} +
+
+ {% endfor %} + +
+
+ +