фильтр рассылок в админке по дате

remotes/origin/tests
Slava Kyrachevsky 9 years ago
parent b1dd22cf83
commit 3fca3e61a4
  1. 32
      emencia/django/newsletter/admin_forms.py
  2. 272
      emencia/django/newsletter/south_migrations_old(27.06.16)/0001_initial.py
  3. 130
      emencia/django/newsletter/south_migrations_old(27.06.16)/0002_auto__add_attachment.py
  4. 123
      emencia/django/newsletter/south_migrations_old(27.06.16)/0003_auto__add_unique_newsletter_slug.py
  5. 0
      emencia/django/newsletter/south_migrations_old(27.06.16)/__init__.py
  6. 23
      emencia/django/newsletter/views/admin_views.py
  7. 1
      templates/c_admin/exposition/exposition_list.html
  8. 20
      templates/c_admin/newsletters/newsletter_list_daily.html

@ -302,4 +302,34 @@ class NewsletterRecommendForm(forms.ModelForm):
if not obj.pk:
obj.save()
obj.theme = self.cleaned_data['theme']
return obj
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

@ -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'<body>\\n<!-- Edit your newsletter here -->\\n</body>'"}),
'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'header_reply': ('django.db.models.fields.CharField', [], {'default': "'Emencia Newsletter<noreply@emencia.com>'", 'max_length': '255'}),
'header_sender': ('django.db.models.fields.CharField', [], {'default': "'Emencia Newsletter<noreply@emencia.com>'", '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']

@ -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'<body>\\n<!-- Edit your newsletter here -->\\n</body>'"}),
'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'header_reply': ('django.db.models.fields.CharField', [], {'default': "'Giorgio Barbarotta Newsletter<noreply@giorgiobarbarotta.it>'", 'max_length': '255'}),
'header_sender': ('django.db.models.fields.CharField', [], {'default': "'Giorgio Barbarotta Newsletter<noreply@giorgiobarbarotta.it>'", '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']

@ -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'<body>\\n<!-- Edit your newsletter here -->\\n</body>'"}),
'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'header_reply': ('django.db.models.fields.CharField', [], {'default': "'Emencia Newsletter<noreply@emencia.com>'", 'max_length': '255'}),
'header_sender': ('django.db.models.fields.CharField', [], {'default': "'Emencia Newsletter<noreply@emencia.com>'", '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']

@ -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):

@ -14,7 +14,6 @@ td a{
{% block body %}
{% load i18n %}
<div class="box span8">
<div class="box-header well">

@ -2,6 +2,26 @@
{% load i18n %}
{% block body %}
<div class="box span10">
<div class="box-header well">
<h2><i class="icon-arrow-down"></i>{% trans "Фильтры" %}</h2>
</div>
<div class="box-content">
<form class="form-horizontal">
{% for field in form %}
<div class="control-group {% if field.errors %}error{% endif %}">
<label class="control-label"><b>{{ field.label }}:</b></label>
<div class="controls">{{ field }}
<span class="help-inline">{{ field.errors }}</span>
</div>
</div>
{% endfor %}
<button type="submit" class="btn">{% trans "Найти" %}</button>
</form>
</div>
</div>
<div class="box span10">
<div class="box-header well">

Loading…
Cancel
Save