Created
May 10, 2011 04:43
-
-
Save razum2um/963909 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
commit ce951e47a176ed6d460231e4f4606af443096b37 | |
Author: Vlad Bokov <[email protected]> | |
Date: Mon May 9 21:56:12 2011 +0700 | |
banners block | |
diff --git a/.gitignore b/.gitignore | |
index 5f2338a..0235339 100644 | |
--- a/.gitignore | |
+++ b/.gitignore | |
@@ -5,3 +5,4 @@ | |
/media/cms/* | |
/media/uploads/* | |
/search_index/* | |
+testproject | |
diff --git a/cms/admin.py b/cms/admin.py | |
index e2ac1bf..7e84d77 100644 | |
--- a/cms/admin.py | |
+++ b/cms/admin.py | |
@@ -227,3 +227,7 @@ if "gallery" in getattr(settings, 'CMS_ENABLED_TYPES', []): | |
admin.site.register(Image, ImageAdmin) | |
cms.settings.CMS_ADMIN_MATERIALS.append('cms.models.Image') | |
+if "Banner" not in getattr(settings, 'CMS_EXCLUDE_BLOCKS', ["Banner"]): | |
+ cms.settings.CMS_ADMIN_STRUCTURE.append('cms.models.Banner') | |
+ admin.site.register(Banner) | |
+ | |
diff --git a/cms/blocks/Banner/forms.py b/cms/blocks/Banner/forms.py | |
index 4838910..551376c 100644 | |
--- a/cms/blocks/Banner/forms.py | |
+++ b/cms/blocks/Banner/forms.py | |
@@ -4,11 +4,14 @@ from django import forms | |
from django.contrib.admin.widgets import AdminFileWidget | |
from django.utils.translation import ugettext_lazy as _ | |
+from cms.models import Banner | |
-class BannerConfigForm(forms.Form): | |
- banner_title = forms.CharField(label=_('Title'), max_length=180, required=True) | |
- image = forms.ImageField(label=_('Image'), widget=AdminFileWidget()) | |
- link = forms.URLField(label=_('Link'), max_length=180, required=True) | |
- size = forms.CharField(label=_('Size'), max_length=50, required=False, help_text=_('Image\'ll resize to this values. Example: 100x100 or 100x0')) | |
+class BannerConfigForm(forms.ModelForm): | |
+ class Meta: | |
+ model = Banner | |
+ #banner_title = forms.CharField(label=_('Title'), max_length=180, required=True) | |
+ #image = forms.ImageField(label=_('Image'), widget=AdminFileWidget()) | |
+ #link = forms.URLField(label=_('Link'), max_length=180, required=True) | |
+ #size = forms.CharField(label=_('Size'), max_length=50, required=False, help_text=_('Image\'ll resize to this values. Example: 100x100 or 100x0')) | |
diff --git a/cms/blocks/Banner/views.py b/cms/blocks/Banner/views.py | |
index 1b443e7..ad916ac 100644 | |
--- a/cms/blocks/Banner/views.py | |
+++ b/cms/blocks/Banner/views.py | |
@@ -1,37 +1,69 @@ | |
# -*- coding: utf-8 -*- | |
-from sugar.views.decorators import render_from, render_to | |
-from cms.blocks.Banner.forms import BannerConfigForm | |
-from django.http import HttpResponseRedirect | |
import os.path | |
+from datetime import datetime | |
+ | |
+from django.http import HttpResponseRedirect | |
from django.conf import settings | |
from django.core.files import File | |
from django.core.files.storage import default_storage | |
+from django.db.models import Q | |
+from django.utils.safestring import mark_safe | |
+ | |
+from sugar.views.decorators import render_from, render_to | |
+ | |
+from cms.models import Banner | |
+from cms.blocks.Banner.forms import BannerConfigForm | |
-@render_from('cms/banner_block.html') | |
def default(request, block): | |
- if isinstance(block.data, dict): | |
- block.data['title'] = block.title | |
- return block.data | |
- return "" | |
+ ''' | |
+ no rendering template, get html from db | |
+ sad and not true | |
+ ''' | |
+ now = datetime.now() | |
+ | |
+ weekday = now.date().weekday() # int | |
+ weekday_regexp = ['.']*7 | |
+ weekday_regexp[weekday] = '1' | |
+ weekday_regexp = ''.join(weekday_regexp) | |
+ | |
+ hour = now.hour # int | |
+ hours_regexp = ['.']*24 | |
+ hours_regexp[hour] = '1' | |
+ hours_regexp = ''.join(hours_regexp) | |
+ | |
+ blocks = Banner.objects.all() | |
+ blocks = blocks.filter(Q(num_shows_left=None)|Q(num_shows_left__gt=0)) | |
+ blocks = blocks.filter(start_dt__lte=now.date()).filter(stop_dt__gte=now.date()) | |
+ # no regex in sqlite? | |
+ blocks = blocks.filter(mode_hours__regex=hours_regexp).filter(mode_weekday__regex=weekday_regexp) | |
+ blocks = blocks.order_by('?') | |
+ block = blocks[0] # db-hit here | |
+ if block.num_shows_left: | |
+ block.num_shows_left -= 1 | |
+ # TODO: wtf?? forced saving needed, | |
+ # otherwise got no '/banners/' into path | |
+ block.save() | |
+ resp = block.html | |
+ return mark_safe(resp) | |
@render_to('admin/cms/block_config.html') | |
def configure(request, block): | |
- if request.method == 'POST': | |
- form = BannerConfigForm(request.POST, request.FILES) | |
- if form.is_valid(): | |
- image = form.files['image'] | |
- path = default_storage.save(os.path.join("cms/banners/", image.name), image) | |
- block.data = form.cleaned_data | |
- block.data['image'] = path | |
- block.save() | |
- return HttpResponseRedirect('../') | |
- else: | |
- if not block.data == '': | |
- files = {} | |
- if block.data.has_key('image'): | |
- files['image'] = default_storage.open(block.data['image']) | |
- form = BannerConfigForm(block.data, files) | |
- else: | |
- form = BannerConfigForm() | |
+ form = BannerConfigForm(request.POST or None, request.FILES or None) | |
+ if form.is_valid(): | |
+ #image = form.files['image'] | |
+ #path = default_storage.save(os.path.join("cms/banners/", image.name), image) | |
+ #block.data = form.cleaned_data | |
+ #block.data['image'] = path | |
+ #block.save() | |
+ form.save() | |
+ return HttpResponseRedirect('../') | |
+ | |
+ #if not block.data == '': | |
+ #files = {} | |
+ #if block.data.has_key('image'): | |
+ #files['image'] = default_storage.open(block.data['image']) | |
+ #form = BannerConfigForm(block.data, files) | |
+ #else: | |
+ #form = BannerConfigForm() | |
return {'block_obj': block, 'form': form} | |
diff --git a/cms/context_processors.py b/cms/context_processors.py | |
index fa741d9..830d522 100644 | |
--- a/cms/context_processors.py | |
+++ b/cms/context_processors.py | |
@@ -1,5 +1,7 @@ | |
# -*- coding: utf-8 -*- | |
+from datetime import datetime | |
+ | |
from django.core.context_processors import request | |
from django.conf import settings | |
from cms.models import MenuItem, Link | |
@@ -28,3 +30,6 @@ def mitem_by_url(request): | |
return {'menu_item':mitem, 'breadcrumb_mitem':breadcrumb_mitem} | |
else: | |
return {} | |
+ | |
+def now_sec(request): | |
+ return {'now_sec': datetime.now().strftime('%s')} | |
diff --git a/cms/migrations/0018_auto__add_banner.py b/cms/migrations/0018_auto__add_banner.py | |
new file mode 100644 | |
index 0000000..0643f9a | |
--- /dev/null | |
+++ b/cms/migrations/0018_auto__add_banner.py | |
@@ -0,0 +1,158 @@ | |
+# encoding: utf-8 | |
+import datetime | |
+from south.db import db | |
+from south.v2 import SchemaMigration | |
+from django.db import models | |
+ | |
+class Migration(SchemaMigration): | |
+ | |
+ def forwards(self, orm): | |
+ | |
+ # Adding model 'Banner' | |
+ db.create_table('cms_banner', ( | |
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), | |
+ ('num_shows_left', self.gf('django.db.models.fields.IntegerField')(null=True)), | |
+ ('start_dt', self.gf('django.db.models.fields.DateTimeField')()), | |
+ ('stop_dt', self.gf('django.db.models.fields.DateTimeField')()), | |
+ ('banner', self.gf('django.db.models.fields.files.FileField')(max_length=100, null=True, blank=True)), | |
+ ('alt_text', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)), | |
+ ('html', self.gf('django.db.models.fields.CharField')(max_length=255)), | |
+ ('mode_hours', self.gf('django.db.models.fields.CharField')(default='111111111111111111111111', max_length=24)), | |
+ ('mode_weekday', self.gf('django.db.models.fields.CharField')(default='1111111', max_length=7)), | |
+ ('referals', self.gf('django.db.models.fields.IntegerField')(default=0)), | |
+ )) | |
+ db.send_create_signal('cms', ['Banner']) | |
+ | |
+ | |
+ def backwards(self, orm): | |
+ | |
+ # Deleting model 'Banner' | |
+ db.delete_table('cms_banner') | |
+ | |
+ | |
+ models = { | |
+ 'cms.article': { | |
+ 'Meta': {'object_name': 'Article'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {}), | |
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'blank': 'True'}), | |
+ 'list_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'cms_article_type'", 'to': "orm['cms.ListType']"}), | |
+ 'menu_items': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'cms_article_items'", 'symmetrical': 'False', 'to': "orm['cms.MenuItem']"}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'short': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'template': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ 'cms.banner': { | |
+ 'Meta': {'object_name': 'Banner'}, | |
+ 'alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), | |
+ 'banner': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), | |
+ 'html': ('django.db.models.fields.CharField', [], {'max_length': '255'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'mode_hours': ('django.db.models.fields.CharField', [], {'default': "'111111111111111111111111'", 'max_length': '24'}), | |
+ 'mode_weekday': ('django.db.models.fields.CharField', [], {'default': "'1111111'", 'max_length': '7'}), | |
+ 'num_shows_left': ('django.db.models.fields.IntegerField', [], {'null': 'True'}), | |
+ 'referals': ('django.db.models.fields.IntegerField', [], {'default': '0'}), | |
+ 'start_dt': ('django.db.models.fields.DateTimeField', [], {}), | |
+ 'stop_dt': ('django.db.models.fields.DateTimeField', [], {}) | |
+ }, | |
+ 'cms.block': { | |
+ 'Meta': {'object_name': 'Block'}, | |
+ 'data': ('cms.fields.PickledObjectField', [], {'default': "''", 'null': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'region': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'view': ('django.db.models.fields.CharField', [], {'default': "'default'", 'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'visible_on': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'blocks'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['cms.MenuItem']"}), | |
+ 'weight': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) | |
+ }, | |
+ 'cms.gallery': { | |
+ 'Meta': {'object_name': 'Gallery'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']", 'null': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), | |
+ 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['cms.Gallery']"}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) | |
+ }, | |
+ 'cms.image': { | |
+ 'Meta': {'object_name': 'Image'}, | |
+ 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['cms.Gallery']"}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}) | |
+ }, | |
+ 'cms.link': { | |
+ 'Meta': {'object_name': 'Link'}, | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'redirect': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'url': ('django.db.models.fields.CharField', [], {'max_length': '200'}) | |
+ }, | |
+ 'cms.listtype': { | |
+ 'Meta': {'object_name': 'ListType'}, | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ 'cms.menuitem': { | |
+ 'Meta': {'object_name': 'MenuItem'}, | |
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']", 'null': 'True', 'blank': 'True'}), | |
+ 'full_url': ('django.db.models.fields.CharField', [], {'max_length': '250', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['cms.MenuItem']"}), | |
+ 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) | |
+ }, | |
+ 'cms.news': { | |
+ 'Meta': {'object_name': 'News'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {}), | |
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | |
+ 'date': ('django.db.models.fields.DateTimeField', [], {}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'blank': 'True'}), | |
+ 'list_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'cms_news_type'", 'to': "orm['cms.ListType']"}), | |
+ 'menu_items': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'cms_news_items'", 'symmetrical': 'False', 'to': "orm['cms.MenuItem']"}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'short': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'template': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ 'cms.page': { | |
+ 'Meta': {'object_name': 'Page'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {}), | |
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'blank': 'True'}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'short': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'template': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ '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'}) | |
+ } | |
+ } | |
+ | |
+ complete_apps = ['cms'] | |
diff --git a/cms/migrations/0019_auto__chg_field_banner_referals.py b/cms/migrations/0019_auto__chg_field_banner_referals.py | |
new file mode 100644 | |
index 0000000..9022873 | |
--- /dev/null | |
+++ b/cms/migrations/0019_auto__chg_field_banner_referals.py | |
@@ -0,0 +1,146 @@ | |
+# encoding: utf-8 | |
+import datetime | |
+from south.db import db | |
+from south.v2 import SchemaMigration | |
+from django.db import models | |
+ | |
+class Migration(SchemaMigration): | |
+ | |
+ def forwards(self, orm): | |
+ | |
+ # Changing field 'Banner.referals' | |
+ db.alter_column('cms_banner', 'referals', self.gf('django.db.models.fields.IntegerField')(null=True)) | |
+ | |
+ | |
+ def backwards(self, orm): | |
+ | |
+ # Changing field 'Banner.referals' | |
+ db.alter_column('cms_banner', 'referals', self.gf('django.db.models.fields.IntegerField')()) | |
+ | |
+ | |
+ models = { | |
+ 'cms.article': { | |
+ 'Meta': {'object_name': 'Article'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {}), | |
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'blank': 'True'}), | |
+ 'list_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'cms_article_type'", 'to': "orm['cms.ListType']"}), | |
+ 'menu_items': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'cms_article_items'", 'symmetrical': 'False', 'to': "orm['cms.MenuItem']"}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'short': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'template': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ 'cms.banner': { | |
+ 'Meta': {'object_name': 'Banner'}, | |
+ 'alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), | |
+ 'banner': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), | |
+ 'html': ('django.db.models.fields.CharField', [], {'max_length': '255'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'mode_hours': ('django.db.models.fields.CharField', [], {'default': "'111111111111111111111111'", 'max_length': '24'}), | |
+ 'mode_weekday': ('django.db.models.fields.CharField', [], {'default': "'1111111'", 'max_length': '7'}), | |
+ 'num_shows_left': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'referals': ('django.db.models.fields.IntegerField', [], {'default': '0', 'null': 'True', 'blank': 'True'}), | |
+ 'start_dt': ('django.db.models.fields.DateTimeField', [], {}), | |
+ 'stop_dt': ('django.db.models.fields.DateTimeField', [], {}) | |
+ }, | |
+ 'cms.block': { | |
+ 'Meta': {'object_name': 'Block'}, | |
+ 'data': ('cms.fields.PickledObjectField', [], {'default': "''", 'null': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'region': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'view': ('django.db.models.fields.CharField', [], {'default': "'default'", 'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'visible_on': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'blocks'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['cms.MenuItem']"}), | |
+ 'weight': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) | |
+ }, | |
+ 'cms.gallery': { | |
+ 'Meta': {'object_name': 'Gallery'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']", 'null': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), | |
+ 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['cms.Gallery']"}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) | |
+ }, | |
+ 'cms.image': { | |
+ 'Meta': {'object_name': 'Image'}, | |
+ 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['cms.Gallery']"}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}) | |
+ }, | |
+ 'cms.link': { | |
+ 'Meta': {'object_name': 'Link'}, | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'redirect': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'url': ('django.db.models.fields.CharField', [], {'max_length': '200'}) | |
+ }, | |
+ 'cms.listtype': { | |
+ 'Meta': {'object_name': 'ListType'}, | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ 'cms.menuitem': { | |
+ 'Meta': {'object_name': 'MenuItem'}, | |
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']", 'null': 'True', 'blank': 'True'}), | |
+ 'full_url': ('django.db.models.fields.CharField', [], {'max_length': '250', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['cms.MenuItem']"}), | |
+ 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) | |
+ }, | |
+ 'cms.news': { | |
+ 'Meta': {'object_name': 'News'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {}), | |
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | |
+ 'date': ('django.db.models.fields.DateTimeField', [], {}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'blank': 'True'}), | |
+ 'list_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'cms_news_type'", 'to': "orm['cms.ListType']"}), | |
+ 'menu_items': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'cms_news_items'", 'symmetrical': 'False', 'to': "orm['cms.MenuItem']"}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'short': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'template': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ 'cms.page': { | |
+ 'Meta': {'object_name': 'Page'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {}), | |
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'blank': 'True'}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'short': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'template': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ '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'}) | |
+ } | |
+ } | |
+ | |
+ complete_apps = ['cms'] | |
diff --git a/cms/migrations/0020_auto__chg_field_banner_html.py b/cms/migrations/0020_auto__chg_field_banner_html.py | |
new file mode 100644 | |
index 0000000..414fa7e | |
--- /dev/null | |
+++ b/cms/migrations/0020_auto__chg_field_banner_html.py | |
@@ -0,0 +1,146 @@ | |
+# encoding: utf-8 | |
+import datetime | |
+from south.db import db | |
+from south.v2 import SchemaMigration | |
+from django.db import models | |
+ | |
+class Migration(SchemaMigration): | |
+ | |
+ def forwards(self, orm): | |
+ | |
+ # Changing field 'Banner.html' | |
+ db.alter_column('cms_banner', 'html', self.gf('django.db.models.fields.TextField')(max_length=255, null=True)) | |
+ | |
+ | |
+ def backwards(self, orm): | |
+ | |
+ # User chose to not deal with backwards NULL issues for 'Banner.html' | |
+ raise RuntimeError("Cannot reverse this migration. 'Banner.html' and its values cannot be restored.") | |
+ | |
+ | |
+ models = { | |
+ 'cms.article': { | |
+ 'Meta': {'object_name': 'Article'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {}), | |
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'blank': 'True'}), | |
+ 'list_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'cms_article_type'", 'to': "orm['cms.ListType']"}), | |
+ 'menu_items': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'cms_article_items'", 'symmetrical': 'False', 'to': "orm['cms.MenuItem']"}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'short': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'template': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ 'cms.banner': { | |
+ 'Meta': {'object_name': 'Banner'}, | |
+ 'alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), | |
+ 'banner': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), | |
+ 'html': ('django.db.models.fields.TextField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'mode_hours': ('django.db.models.fields.CharField', [], {'default': "'111111111111111111111111'", 'max_length': '24'}), | |
+ 'mode_weekday': ('django.db.models.fields.CharField', [], {'default': "'1111111'", 'max_length': '7'}), | |
+ 'num_shows_left': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'referals': ('django.db.models.fields.IntegerField', [], {'default': '0', 'null': 'True', 'blank': 'True'}), | |
+ 'start_dt': ('django.db.models.fields.DateTimeField', [], {}), | |
+ 'stop_dt': ('django.db.models.fields.DateTimeField', [], {}) | |
+ }, | |
+ 'cms.block': { | |
+ 'Meta': {'object_name': 'Block'}, | |
+ 'data': ('cms.fields.PickledObjectField', [], {'default': "''", 'null': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'region': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'view': ('django.db.models.fields.CharField', [], {'default': "'default'", 'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'visible_on': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'blocks'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['cms.MenuItem']"}), | |
+ 'weight': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) | |
+ }, | |
+ 'cms.gallery': { | |
+ 'Meta': {'object_name': 'Gallery'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']", 'null': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), | |
+ 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['cms.Gallery']"}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) | |
+ }, | |
+ 'cms.image': { | |
+ 'Meta': {'object_name': 'Image'}, | |
+ 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['cms.Gallery']"}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}) | |
+ }, | |
+ 'cms.link': { | |
+ 'Meta': {'object_name': 'Link'}, | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'redirect': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'url': ('django.db.models.fields.CharField', [], {'max_length': '200'}) | |
+ }, | |
+ 'cms.listtype': { | |
+ 'Meta': {'object_name': 'ListType'}, | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ 'cms.menuitem': { | |
+ 'Meta': {'object_name': 'MenuItem'}, | |
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']", 'null': 'True', 'blank': 'True'}), | |
+ 'full_url': ('django.db.models.fields.CharField', [], {'max_length': '250', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['cms.MenuItem']"}), | |
+ 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) | |
+ }, | |
+ 'cms.news': { | |
+ 'Meta': {'object_name': 'News'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {}), | |
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | |
+ 'date': ('django.db.models.fields.DateTimeField', [], {}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'blank': 'True'}), | |
+ 'list_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'cms_news_type'", 'to': "orm['cms.ListType']"}), | |
+ 'menu_items': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'cms_news_items'", 'symmetrical': 'False', 'to': "orm['cms.MenuItem']"}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'short': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'template': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ 'cms.page': { | |
+ 'Meta': {'object_name': 'Page'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {}), | |
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'blank': 'True'}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'short': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'template': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ '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'}) | |
+ } | |
+ } | |
+ | |
+ complete_apps = ['cms'] | |
diff --git a/cms/migrations/0021_auto__chg_field_banner_html.py b/cms/migrations/0021_auto__chg_field_banner_html.py | |
new file mode 100644 | |
index 0000000..12b97fc | |
--- /dev/null | |
+++ b/cms/migrations/0021_auto__chg_field_banner_html.py | |
@@ -0,0 +1,146 @@ | |
+# encoding: utf-8 | |
+import datetime | |
+from south.db import db | |
+from south.v2 import SchemaMigration | |
+from django.db import models | |
+ | |
+class Migration(SchemaMigration): | |
+ | |
+ def forwards(self, orm): | |
+ | |
+ # Changing field 'Banner.html' | |
+ db.alter_column('cms_banner', 'html', self.gf('django.db.models.fields.TextField')(null=True)) | |
+ | |
+ | |
+ def backwards(self, orm): | |
+ | |
+ # Changing field 'Banner.html' | |
+ db.alter_column('cms_banner', 'html', self.gf('django.db.models.fields.TextField')(max_length=255, null=True)) | |
+ | |
+ | |
+ models = { | |
+ 'cms.article': { | |
+ 'Meta': {'object_name': 'Article'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {}), | |
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'blank': 'True'}), | |
+ 'list_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'cms_article_type'", 'to': "orm['cms.ListType']"}), | |
+ 'menu_items': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'cms_article_items'", 'symmetrical': 'False', 'to': "orm['cms.MenuItem']"}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'short': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'template': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ 'cms.banner': { | |
+ 'Meta': {'object_name': 'Banner'}, | |
+ 'alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), | |
+ 'banner': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), | |
+ 'html': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'mode_hours': ('django.db.models.fields.CharField', [], {'default': "'111111111111111111111111'", 'max_length': '24'}), | |
+ 'mode_weekday': ('django.db.models.fields.CharField', [], {'default': "'1111111'", 'max_length': '7'}), | |
+ 'num_shows_left': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'referals': ('django.db.models.fields.IntegerField', [], {'default': '0', 'null': 'True', 'blank': 'True'}), | |
+ 'start_dt': ('django.db.models.fields.DateTimeField', [], {}), | |
+ 'stop_dt': ('django.db.models.fields.DateTimeField', [], {}) | |
+ }, | |
+ 'cms.block': { | |
+ 'Meta': {'object_name': 'Block'}, | |
+ 'data': ('cms.fields.PickledObjectField', [], {'default': "''", 'null': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'region': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'view': ('django.db.models.fields.CharField', [], {'default': "'default'", 'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'visible_on': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'blocks'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['cms.MenuItem']"}), | |
+ 'weight': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) | |
+ }, | |
+ 'cms.gallery': { | |
+ 'Meta': {'object_name': 'Gallery'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']", 'null': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), | |
+ 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['cms.Gallery']"}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) | |
+ }, | |
+ 'cms.image': { | |
+ 'Meta': {'object_name': 'Image'}, | |
+ 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['cms.Gallery']"}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}) | |
+ }, | |
+ 'cms.link': { | |
+ 'Meta': {'object_name': 'Link'}, | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'redirect': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'url': ('django.db.models.fields.CharField', [], {'max_length': '200'}) | |
+ }, | |
+ 'cms.listtype': { | |
+ 'Meta': {'object_name': 'ListType'}, | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ 'cms.menuitem': { | |
+ 'Meta': {'object_name': 'MenuItem'}, | |
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']", 'null': 'True', 'blank': 'True'}), | |
+ 'full_url': ('django.db.models.fields.CharField', [], {'max_length': '250', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['cms.MenuItem']"}), | |
+ 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) | |
+ }, | |
+ 'cms.news': { | |
+ 'Meta': {'object_name': 'News'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {}), | |
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | |
+ 'date': ('django.db.models.fields.DateTimeField', [], {}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'blank': 'True'}), | |
+ 'list_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'cms_news_type'", 'to': "orm['cms.ListType']"}), | |
+ 'menu_items': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'cms_news_items'", 'symmetrical': 'False', 'to': "orm['cms.MenuItem']"}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'short': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'template': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ 'cms.page': { | |
+ 'Meta': {'object_name': 'Page'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {}), | |
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'blank': 'True'}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'short': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'template': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ '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'}) | |
+ } | |
+ } | |
+ | |
+ complete_apps = ['cms'] | |
diff --git a/cms/migrations/0022_auto__add_field_banner_link.py b/cms/migrations/0022_auto__add_field_banner_link.py | |
new file mode 100644 | |
index 0000000..2d6d7fe | |
--- /dev/null | |
+++ b/cms/migrations/0022_auto__add_field_banner_link.py | |
@@ -0,0 +1,147 @@ | |
+# encoding: utf-8 | |
+import datetime | |
+from south.db import db | |
+from south.v2 import SchemaMigration | |
+from django.db import models | |
+ | |
+class Migration(SchemaMigration): | |
+ | |
+ def forwards(self, orm): | |
+ | |
+ # Adding field 'Banner.link' | |
+ db.add_column('cms_banner', 'link', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True), keep_default=False) | |
+ | |
+ | |
+ def backwards(self, orm): | |
+ | |
+ # Deleting field 'Banner.link' | |
+ db.delete_column('cms_banner', 'link') | |
+ | |
+ | |
+ models = { | |
+ 'cms.article': { | |
+ 'Meta': {'object_name': 'Article'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {}), | |
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'blank': 'True'}), | |
+ 'list_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'cms_article_type'", 'to': "orm['cms.ListType']"}), | |
+ 'menu_items': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'cms_article_items'", 'symmetrical': 'False', 'to': "orm['cms.MenuItem']"}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'short': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'template': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ 'cms.banner': { | |
+ 'Meta': {'object_name': 'Banner'}, | |
+ 'alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), | |
+ 'banner': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), | |
+ 'html': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'link': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), | |
+ 'mode_hours': ('django.db.models.fields.CharField', [], {'default': "'111111111111111111111111'", 'max_length': '24'}), | |
+ 'mode_weekday': ('django.db.models.fields.CharField', [], {'default': "'1111111'", 'max_length': '7'}), | |
+ 'num_shows_left': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'referals': ('django.db.models.fields.IntegerField', [], {'default': '0', 'null': 'True', 'blank': 'True'}), | |
+ 'start_dt': ('django.db.models.fields.DateTimeField', [], {}), | |
+ 'stop_dt': ('django.db.models.fields.DateTimeField', [], {}) | |
+ }, | |
+ 'cms.block': { | |
+ 'Meta': {'object_name': 'Block'}, | |
+ 'data': ('cms.fields.PickledObjectField', [], {'default': "''", 'null': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'region': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'view': ('django.db.models.fields.CharField', [], {'default': "'default'", 'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'visible_on': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'blocks'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['cms.MenuItem']"}), | |
+ 'weight': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) | |
+ }, | |
+ 'cms.gallery': { | |
+ 'Meta': {'object_name': 'Gallery'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']", 'null': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), | |
+ 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['cms.Gallery']"}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) | |
+ }, | |
+ 'cms.image': { | |
+ 'Meta': {'object_name': 'Image'}, | |
+ 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['cms.Gallery']"}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}) | |
+ }, | |
+ 'cms.link': { | |
+ 'Meta': {'object_name': 'Link'}, | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'redirect': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'url': ('django.db.models.fields.CharField', [], {'max_length': '200'}) | |
+ }, | |
+ 'cms.listtype': { | |
+ 'Meta': {'object_name': 'ListType'}, | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ 'cms.menuitem': { | |
+ 'Meta': {'object_name': 'MenuItem'}, | |
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']", 'null': 'True', 'blank': 'True'}), | |
+ 'full_url': ('django.db.models.fields.CharField', [], {'max_length': '250', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['cms.MenuItem']"}), | |
+ 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) | |
+ }, | |
+ 'cms.news': { | |
+ 'Meta': {'object_name': 'News'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {}), | |
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | |
+ 'date': ('django.db.models.fields.DateTimeField', [], {}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'blank': 'True'}), | |
+ 'list_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'cms_news_type'", 'to': "orm['cms.ListType']"}), | |
+ 'menu_items': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'cms_news_items'", 'symmetrical': 'False', 'to': "orm['cms.MenuItem']"}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'short': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'template': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ 'cms.page': { | |
+ 'Meta': {'object_name': 'Page'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {}), | |
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'blank': 'True'}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'short': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'template': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ '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'}) | |
+ } | |
+ } | |
+ | |
+ complete_apps = ['cms'] | |
diff --git a/cms/migrations/0023_auto__chg_field_banner_stop_dt__chg_field_banner_start_dt.py b/cms/migrations/0023_auto__chg_field_banner_stop_dt__chg_field_banner_start_dt.py | |
new file mode 100644 | |
index 0000000..be69f8b | |
--- /dev/null | |
+++ b/cms/migrations/0023_auto__chg_field_banner_stop_dt__chg_field_banner_start_dt.py | |
@@ -0,0 +1,153 @@ | |
+# encoding: utf-8 | |
+import datetime | |
+from south.db import db | |
+from south.v2 import SchemaMigration | |
+from django.db import models | |
+ | |
+class Migration(SchemaMigration): | |
+ | |
+ def forwards(self, orm): | |
+ | |
+ # Changing field 'Banner.stop_dt' | |
+ db.alter_column('cms_banner', 'stop_dt', self.gf('django.db.models.fields.DateField')()) | |
+ | |
+ # Changing field 'Banner.start_dt' | |
+ db.alter_column('cms_banner', 'start_dt', self.gf('django.db.models.fields.DateField')()) | |
+ | |
+ | |
+ def backwards(self, orm): | |
+ | |
+ # Changing field 'Banner.stop_dt' | |
+ db.alter_column('cms_banner', 'stop_dt', self.gf('django.db.models.fields.DateTimeField')()) | |
+ | |
+ # Changing field 'Banner.start_dt' | |
+ db.alter_column('cms_banner', 'start_dt', self.gf('django.db.models.fields.DateTimeField')()) | |
+ | |
+ | |
+ models = { | |
+ 'cms.article': { | |
+ 'Meta': {'object_name': 'Article'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {}), | |
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'blank': 'True'}), | |
+ 'list_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'cms_article_type'", 'to': "orm['cms.ListType']"}), | |
+ 'menu_items': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'cms_article_items'", 'symmetrical': 'False', 'to': "orm['cms.MenuItem']"}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'short': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'template': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ 'cms.banner': { | |
+ 'Meta': {'object_name': 'Banner'}, | |
+ 'alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), | |
+ 'banner': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), | |
+ 'html': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'link': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), | |
+ 'mode_hours': ('django.db.models.fields.CharField', [], {'default': "'111111111111111111111111'", 'max_length': '24'}), | |
+ 'mode_weekday': ('django.db.models.fields.CharField', [], {'default': "'1111111'", 'max_length': '7'}), | |
+ 'num_shows_left': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'referals': ('django.db.models.fields.IntegerField', [], {'default': '0', 'null': 'True', 'blank': 'True'}), | |
+ 'start_dt': ('django.db.models.fields.DateField', [], {}), | |
+ 'stop_dt': ('django.db.models.fields.DateField', [], {}) | |
+ }, | |
+ 'cms.block': { | |
+ 'Meta': {'object_name': 'Block'}, | |
+ 'data': ('cms.fields.PickledObjectField', [], {'default': "''", 'null': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'region': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'view': ('django.db.models.fields.CharField', [], {'default': "'default'", 'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'visible_on': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'blocks'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['cms.MenuItem']"}), | |
+ 'weight': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) | |
+ }, | |
+ 'cms.gallery': { | |
+ 'Meta': {'object_name': 'Gallery'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']", 'null': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), | |
+ 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['cms.Gallery']"}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) | |
+ }, | |
+ 'cms.image': { | |
+ 'Meta': {'object_name': 'Image'}, | |
+ 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['cms.Gallery']"}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}) | |
+ }, | |
+ 'cms.link': { | |
+ 'Meta': {'object_name': 'Link'}, | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'redirect': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'url': ('django.db.models.fields.CharField', [], {'max_length': '200'}) | |
+ }, | |
+ 'cms.listtype': { | |
+ 'Meta': {'object_name': 'ListType'}, | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ 'cms.menuitem': { | |
+ 'Meta': {'object_name': 'MenuItem'}, | |
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']", 'null': 'True', 'blank': 'True'}), | |
+ 'full_url': ('django.db.models.fields.CharField', [], {'max_length': '250', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['cms.MenuItem']"}), | |
+ 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}), | |
+ 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) | |
+ }, | |
+ 'cms.news': { | |
+ 'Meta': {'object_name': 'News'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {}), | |
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | |
+ 'date': ('django.db.models.fields.DateTimeField', [], {}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'blank': 'True'}), | |
+ 'list_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'cms_news_type'", 'to': "orm['cms.ListType']"}), | |
+ 'menu_items': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'cms_news_items'", 'symmetrical': 'False', 'to': "orm['cms.MenuItem']"}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'short': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'template': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ 'cms.page': { | |
+ 'Meta': {'object_name': 'Page'}, | |
+ 'body': ('django.db.models.fields.TextField', [], {}), | |
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), | |
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), | |
+ 'image': ('cms.fields.RemovableImageField', [], {'max_length': '100', 'blank': 'True'}), | |
+ 'publish': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), | |
+ 'short': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), | |
+ 'slug': ('django.db.models.fields.SlugField', [], {'db_index': 'True', 'max_length': '250', 'blank': 'True'}), | |
+ 'template': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), | |
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'}) | |
+ }, | |
+ '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'}) | |
+ } | |
+ } | |
+ | |
+ complete_apps = ['cms'] | |
diff --git a/cms/models.py b/cms/models.py | |
index 9db8312..e50bd02 100644 | |
--- a/cms/models.py | |
+++ b/cms/models.py | |
@@ -1,5 +1,8 @@ | |
# -*- coding: utf-8 -*- | |
+import os | |
+import re | |
+ | |
# Main Imports | |
from django.db import models | |
from django.db.models.base import ModelBase | |
@@ -28,6 +31,8 @@ from fields import RemovableImageField | |
from easy_thumbnails.files import get_thumbnailer | |
+RE_IMAGE_FMT = re.compile(r'(%s)$' % '|'.join(settings.IMAGE_FORMATS)) | |
+RE_FLASH_FMT = re.compile(r'(%s)$' % '|'.join(settings.FLASH_FORMATS)) | |
class BaseMovedModel(object): | |
""" Базовый класс упорядоченной модели """ | |
@@ -539,3 +544,66 @@ def gallery_connect(sender): | |
sender.gallery = property(gallery) | |
post_save.connect(Gallery._gallery_handler, sender=sender) | |
+ | |
+class Banner(models.Model): | |
+ num_shows_left = models.IntegerField(_('show times left'), | |
+ null=True, blank=True, | |
+ help_text=_('Leave blank to infinite')) # null=infinite, 0=stop | |
+ start_dt = models.DateField(_('start show at')) | |
+ stop_dt = models.DateField(_('stop show at')) | |
+ banner = models.FileField(_('upload banner'), upload_to='banners', null=True, blank=True) | |
+ alt_text = models.CharField(_('alt-text for image'), max_length=255, null=True, blank=True) | |
+ html = models.TextField(_('raw html shown'), | |
+ null=True, | |
+ blank=True, | |
+ help_text = _('Plain html shown. Requiered if no banner. Ignored otherwise')) | |
+ # TODO: do spec. fields-rendering with checkboxes later | |
+ mode_hours = models.CharField(_('show at daytimes'), | |
+ max_length=24, | |
+ default='111111111111111111111111', | |
+ help_text=_('bit-wise array, "1" is "on": "[0-1][1-2]...[23-24]"')) | |
+ mode_weekday = models.CharField(_('show at weekdays'), | |
+ max_length=7, | |
+ default='1111111', | |
+ help_text=_('bit-wise array, "1" in "on": "[Mon],[Tue]...[Sun]"')) | |
+ referals = models.IntegerField(null=True, blank=True, default=0) # just statictics | |
+ link = models.CharField(max_length=255, | |
+ null=True, blank=True, | |
+ help_text=_('If no link given -> no link in output')) | |
+ | |
+ def __unicode__(self): | |
+ if self.banner: | |
+ basename = os.path.basename(self.banner.name) | |
+ else: | |
+ basename = self.alt_text | |
+ return basename | |
+ | |
+ def save(self, *args, **kwargs): | |
+ if not self.banner and not self.html: | |
+ raise Exception('Provide eiher `html` or `file`') | |
+ if self.banner: | |
+ basename = os.path.basename(self.banner.name) | |
+ if RE_IMAGE_FMT.search(basename): | |
+ self.html = '<img src="%s" alt="%s">' % (self.banner.url, self.alt_text) | |
+ elif RE_FLASH_FMT.search(basename): | |
+ self.html = ''' | |
+ <object> | |
+ <param name="nobanner" value="%s"> | |
+ <embed src="%s" width="550" height="400"> | |
+ </embed> | |
+ </object>''' % (basename, self.banner.url) | |
+ else: | |
+ raise Exception('Unknown file format') | |
+ if self.link: | |
+ self.html = '<a href="%s">%s</a>' % (self.link, self.html) | |
+ | |
+ # hanlde some input errors | |
+ if len(self.mode_weekday)!=7: | |
+ mode_weekday = self.mode_weekday[:7] | |
+ mode_weekday.extend((7-len(mode_weekday))*['1']) | |
+ self.mode_weekday = mode_weekday | |
+ if len(self.mode_hours)!=24: | |
+ mode_hours = self.mode_hours[:24] | |
+ mode_hours.extend((24-len(mode_hours))*['1']) | |
+ self.mode_hours = mode_hours | |
+ super(Banner, self).save(*args, **kwargs) | |
diff --git a/cms/settings.py b/cms/settings.py | |
index c36e9bf..c22a8c5 100644 | |
--- a/cms/settings.py | |
+++ b/cms/settings.py | |
@@ -115,3 +115,4 @@ CMS_ADMIN_LINKS = [ | |
[_('Sites'), '/admin/sites/site/'], | |
[_('File Browser'), '/admin/filebrowser/browse/'], | |
] | |
+ | |
diff --git a/cms_admin/project_template/settings.py b/cms_admin/project_template/settings.py | |
index fced37a..b506161 100644 | |
--- a/cms_admin/project_template/settings.py | |
+++ b/cms_admin/project_template/settings.py | |
@@ -201,6 +201,9 @@ CMS_EXCLUDE_BLOCKS = ['News', 'Menu', 'Banner'] | |
REGIONS = () | |
+IMAGE_FORMATS = ['jpg', 'gif', 'png'] | |
+FLASH_FORMATS = ['swf'] | |
+ | |
### Import local settings ### | |
try: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment