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 %}