Update TwitterFeed cms content type
authorKostas Papadimitriou <kpap@grnet.gr>
Mon, 9 Dec 2013 14:50:48 +0000 (16:50 +0200)
committerKostas Papadimitriou <kpap@grnet.gr>
Wed, 11 Dec 2013 08:18:19 +0000 (10:18 +0200)
using the official twitter embedded timelines API

cloudcms/content.py
cloudcms/migrate/page/0025_auto__del_field_twitterfeed_tag__del_field_twitterfeed_replies__del_fi.py [new file with mode: 0644]
cloudcms/migrate/page/0026_auto__add_field_twitterfeed_theme__add_field_twitterfeed_link_color__a.py [new file with mode: 0644]
cloudcms/migrate/page/0027_auto__add_field_twitterfeed_custom_timeline_id__add_field_twitterfeed_.py [new file with mode: 0644]
cloudcms/migrate/page/0028_auto__add_field_twitterfeed_height__add_field_twitterfeed_extra_attrib.py [new file with mode: 0644]
cloudcms/templates/content/twitter_feed.html

index 4a65fee..6ef7e1f 100644 (file)
@@ -39,6 +39,7 @@ from django.conf import settings
 from django.utils.translation import ugettext_lazy as _
 from django.template.loader import render_to_string
 from django.utils import simplejson
+from django.utils.html import mark_safe
 
 from feincms.admin.editor import ItemEditorForm
 from feincms.module.page.models import Page
@@ -47,18 +48,8 @@ from feincms.content.medialibrary.models import MediaFileWidget
 from feincms.module.medialibrary.fields import MediaFileForeignKey
 
 
-DEFAULT_JQ_TWITTER_URL = settings.MEDIA_URL + 'cloudcms/' + 'js/' + 'twitter/' + \
-                        'jquery.twitter.js'
-DEFAULT_LINKIFY_URL = settings.MEDIA_URL + 'cloudcms/' + 'js/' + 'twitter/' + \
-                        'ba-linkify.js'
-DEFAULT_JQ_TIMEAGO_URL = settings.MEDIA_URL + 'cloudcms/' + 'js/' + 'twitter/' + \
-                        'jquery.timeago.js'
-JQUERY_TWITTER_URL = getattr(settings, "JQUERY_TWITTER_URL",
-        DEFAULT_JQ_TWITTER_URL)
-LINKIFY_JS_URL = getattr(settings, "LINKIFY_JS_URL",
-        DEFAULT_LINKIFY_URL)
-JQUERY_TIMEAGO_URL = getattr(settings, "JQUERY_TIMEAGO_URL",
-        DEFAULT_JQ_TIMEAGO_URL)
+TWITTER_LOAD_CODE = getattr(settings, 'CLOUDCMS_TWITTER_LOAD_CODE',
+"""!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");""")
 
 class VideoSection(models.Model):
     section_title = models.CharField(max_length=200, blank=True)
@@ -82,57 +73,61 @@ class VideoSection(models.Model):
         return render_to_string(['content/videosection.html'], {'content': self})
 
 
+TWITTER_HELP_DESC = mark_safe("""
+See <a
+href="https://dev.twitter.com/docs/embedded-timelines">embedded timelines
+documentation</a>
+""")
+
 class TwitterFeed(models.Model):
     title = models.CharField(max_length=200, blank=True)
-    account = models.CharField(max_length=200, blank=True)
-    nots = models.CharField(max_length=200, help_text="Ugly words", blank=True)
-    query = models.CharField(max_length=200, blank=True,
-            help_text="Filter query")
-    tag = models.CharField(max_length=200, blank=True, help_text="Hashtag")
-    limit = models.PositiveIntegerField(default=10)
-    replies = models.BooleanField(default=True)
-    retweets = models.BooleanField(default=True)
-    avatar = models.BooleanField(default=False)
-    extra_params = models.TextField(blank=True,
-            help_text="Json object to append to "
-                      "JQuery-twitter-plugin settings. Change "
-                      "this only if you know what you are doing.")
+    widget_id = models.CharField(max_length=200, blank=True,
+                                 help_text= mark_safe(_("""
+Widget id from
+<a href=https://twitter.com/settings/widgets>Twitter widgets</a>
+""")))
+
+    limit = models.PositiveIntegerField(default=10,
+                                        help_text="Number of tweets to be displayed")
+    theme = models.CharField(max_length=200, blank=True, default="light",
+                             help_text=TWITTER_HELP_DESC)
+    link_color = models.CharField(max_length=200, blank=True, default="#F89A1C",
+                             help_text=TWITTER_HELP_DESC)
+    chrome = models.CharField(max_length=200, blank=True, default="noscrollbar nofooter noheader noborders",
+                             help_text=TWITTER_HELP_DESC)
+    screen_name = models.CharField(max_length=200, blank=True,
+                             help_text=TWITTER_HELP_DESC)
+    custom_timeline_id = models.CharField(max_length=200, blank=True,
+                             help_text=TWITTER_HELP_DESC)
+    favorites_screen_name = models.CharField(max_length=200, blank=True,
+                             help_text=TWITTER_HELP_DESC)
+    list_owner_screen_name = models.CharField(max_length=200, blank=True,
+                             help_text=TWITTER_HELP_DESC)
+    list_slug = models.CharField(max_length=200, blank=True,
+                             help_text=TWITTER_HELP_DESC)
+    aria_politeness = models.CharField(max_length=200, blank=True,
+                             help_text=TWITTER_HELP_DESC)
+    border_color = models.CharField(max_length=200, blank=True,
+                             help_text=TWITTER_HELP_DESC)
+    height = models.CharField(max_length=200, blank=True,
+                             help_text=TWITTER_HELP_DESC)
+    extra_attributes = models.TextField(blank=True,
+            help_text="Extra code to be applied within the html element")
+
+    code = models.TextField(blank=True,
+            help_text="Twitter loading code. "
+                      "Leave empty for default javascript code to be used.")
 
     class Meta:
         abstract = True
         verbose_name = _('twitter feed')
         verbose_name_plural = _('twitter feeds')
 
-    @property
-    def media(self):
-        return forms.Media(js=(
-                LINKIFY_JS_URL, JQUERY_TWITTER_URL, JQUERY_TIMEAGO_URL
-            ))
-
-    def js_conf(self):
-        conf = {}
-        if self.account:
-            conf['from'] = self.account
-
-        for f in ['nots', 'query', 'tag', 'limit', 'replies', 'retweets', 'avatar']:
-            if type(getattr(self, f)) == bool:
-                conf[f] = getattr(self, f)
-
-            if getattr(self, f):
-                conf[f] = getattr(self, f)
-
-        xtraconf = {}
-        try:
-            xtraconf = simplejson.loads(self.extra_params)
-        except:
-            pass
-
-        conf.update(xtraconf)
-        return simplejson.dumps(conf)
-
-
     def render(self, **kwargs):
-        return render_to_string(['content/twitter_feed.html'], {'content': self})
+        return render_to_string(['content/twitter_feed.html'], {
+            'content': self,
+            'load_code': self.code if self.code else "<script>%s</script>" % (TWITTER_LOAD_CODE)
+        })
 
 
 class AboutBlock(models.Model):
@@ -205,7 +200,7 @@ class TextileContent(models.Model):
 
     def render(self, **kwargs):
         return textile(self.content)
-    
+
 class IntroBlock(models.Model):
     title = models.CharField(_('title'), max_length=200, blank=False)
     content = models.TextField()
@@ -230,7 +225,7 @@ class BlockColor(models.Model):
 
     def render(self, **kwargs):
         return render_to_string(['content/block_with_color.html'], {'content': self})
-    
+
 
 class ClientDownload(models.Model):
 
@@ -251,13 +246,13 @@ class ClientDownload(models.Model):
 
 
 class StatsBlock(models.Model):
-    
+
     @property
     def media(self):
         return forms.Media(js=(
             settings.MEDIA_URL + 'cloudcms/' + 'js/' + 'service-stats.js',))
 
-    title = models.CharField(_('title'), max_length=200, blank=True)    
+    title = models.CharField(_('title'), max_length=200, blank=True)
     color = models.CharField(max_length=200, blank=True, null=True)
     running_vms = models.BooleanField(default=False, help_text = "ACTIVE VMs")
     spawned_vms = models.BooleanField(default=True, help_text= "All VMs")
@@ -276,7 +271,7 @@ class StatsBlock(models.Model):
     title_spawned_networks = models.CharField(max_length=255,blank=True, null=True)
     title_active_networks = models.CharField(max_length=255,blank=True, null=True)
     compute_url = models.CharField(max_length=255,blank=True, null=True)
-    
+
     class Meta:
         abstract = True
 
@@ -292,9 +287,9 @@ class IntroVideo(models.Model):
 
     image = MediaFileForeignKey(MediaFile, blank=True, null=True)
     youtube_id = models.CharField(max_length=255,blank=True, null=True)
-    
+
     class Meta:
         abstract = True
 
     def render(self, **kwargs):
-        return render_to_string(['content/intro_video.html'], {'content': self})        
+        return render_to_string(['content/intro_video.html'], {'content': self})
diff --git a/cloudcms/migrate/page/0025_auto__del_field_twitterfeed_tag__del_field_twitterfeed_replies__del_fi.py b/cloudcms/migrate/page/0025_auto__del_field_twitterfeed_tag__del_field_twitterfeed_replies__del_fi.py
new file mode 100644 (file)
index 0000000..fd6ba14
--- /dev/null
@@ -0,0 +1,363 @@
+# 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):
+        
+        # Deleting field 'TwitterFeed.tag'
+        db.delete_column('page_page_twitterfeed', 'tag')
+
+        # Deleting field 'TwitterFeed.replies'
+        db.delete_column('page_page_twitterfeed', 'replies')
+
+        # Deleting field 'TwitterFeed.query'
+        db.delete_column('page_page_twitterfeed', 'query')
+
+        # Deleting field 'TwitterFeed.account'
+        db.delete_column('page_page_twitterfeed', 'account')
+
+        # Deleting field 'TwitterFeed.nots'
+        db.delete_column('page_page_twitterfeed', 'nots')
+
+        # Deleting field 'TwitterFeed.avatar'
+        db.delete_column('page_page_twitterfeed', 'avatar')
+
+        # Deleting field 'TwitterFeed.extra_params'
+        db.delete_column('page_page_twitterfeed', 'extra_params')
+
+        # Deleting field 'TwitterFeed.retweets'
+        db.delete_column('page_page_twitterfeed', 'retweets')
+
+        # Adding field 'TwitterFeed.widget_id'
+        db.add_column('page_page_twitterfeed', 'widget_id', self.gf('django.db.models.fields.CharField')(default='', max_length=200, blank=True), keep_default=False)
+
+        # Adding field 'TwitterFeed.code'
+        db.add_column('page_page_twitterfeed', 'code', self.gf('django.db.models.fields.TextField')(default='', blank=True), keep_default=False)
+
+
+    def backwards(self, orm):
+        
+        # Adding field 'TwitterFeed.tag'
+        db.add_column('page_page_twitterfeed', 'tag', self.gf('django.db.models.fields.CharField')(default='', max_length=200, blank=True), keep_default=False)
+
+        # Adding field 'TwitterFeed.replies'
+        db.add_column('page_page_twitterfeed', 'replies', self.gf('django.db.models.fields.BooleanField')(default=True), keep_default=False)
+
+        # Adding field 'TwitterFeed.query'
+        db.add_column('page_page_twitterfeed', 'query', self.gf('django.db.models.fields.CharField')(default='', max_length=200, blank=True), keep_default=False)
+
+        # Adding field 'TwitterFeed.account'
+        db.add_column('page_page_twitterfeed', 'account', self.gf('django.db.models.fields.CharField')(default='', max_length=200, blank=True), keep_default=False)
+
+        # Adding field 'TwitterFeed.nots'
+        db.add_column('page_page_twitterfeed', 'nots', self.gf('django.db.models.fields.CharField')(default='', max_length=200, blank=True), keep_default=False)
+
+        # Adding field 'TwitterFeed.avatar'
+        db.add_column('page_page_twitterfeed', 'avatar', self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False)
+
+        # Adding field 'TwitterFeed.extra_params'
+        db.add_column('page_page_twitterfeed', 'extra_params', self.gf('django.db.models.fields.TextField')(default='', blank=True), keep_default=False)
+
+        # Adding field 'TwitterFeed.retweets'
+        db.add_column('page_page_twitterfeed', 'retweets', self.gf('django.db.models.fields.BooleanField')(default=True), keep_default=False)
+
+        # Deleting field 'TwitterFeed.widget_id'
+        db.delete_column('page_page_twitterfeed', 'widget_id')
+
+        # Deleting field 'TwitterFeed.code'
+        db.delete_column('page_page_twitterfeed', 'code')
+
+
+    models = {
+        'cloudcms.client': {
+            'Meta': {'object_name': 'Client'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'uid': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'medialibrary.category': {
+            'Meta': {'ordering': "['parent__title', 'title']", 'object_name': 'Category'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['medialibrary.Category']"}),
+            'slug': ('django.db.models.fields.SlugField', [], {'max_length': '150', 'db_index': 'True'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'medialibrary.mediafile': {
+            'Meta': {'ordering': "['-created']", 'object_name': 'MediaFile'},
+            'categories': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['medialibrary.Category']", 'null': 'True', 'blank': 'True'}),
+            'copyright': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 12, 9, 14, 2, 26, 287850)'}),
+            'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255'}),
+            'file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'})
+        },
+        'page.aboutblock': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'AboutBlock', 'db_table': "'page_page_aboutblock'"},
+            'color': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+            'content': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+            'image_position': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+            'offset_left': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'offset_top': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aboutblock_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'page.applicationcontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'ApplicationContent', 'db_table': "'page_page_applicationcontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parameters': ('feincms.contrib.fields.JSONField', [], {'null': 'True'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'applicationcontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'urlconf_path': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'page.blockcolor': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'BlockColor', 'db_table': "'page_page_blockcolor'"},
+            'color': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'content': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'blockcolor_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'page.clientdownload': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'ClientDownload', 'db_table': "'page_page_clientdownload'"},
+            'client': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cloudcms.Client']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'clientdownload_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.imagecontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'ImageContent', 'db_table': "'page_page_imagecontent'"},
+            'alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'imagecontent_set'", 'to': "orm['page.Page']"}),
+            'position': ('django.db.models.fields.CharField', [], {'default': "'default'", 'max_length': '10'}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.introblock': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'IntroBlock', 'db_table': "'page_page_introblock'"},
+            'class_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'content': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'introblock_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'page.introbutton': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'IntroButton', 'db_table': "'page_page_introbutton'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image_1': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_image1'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'image_2': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_image2'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'image_3': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_image3'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'link': ('django.db.models.fields.CharField', [], {'default': "'/welcome'", 'max_length': '255'}),
+            'link_title': ('django.db.models.fields.CharField', [], {'default': "'~okeanos'", 'max_length': '255'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'introbutton_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.introvideo': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'IntroVideo', 'db_table': "'page_page_introvideo'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'introvideo_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'youtube_id': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+        },
+        'page.latestentries': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'LatestEntries', 'db_table': "'page_page_latestentries'"},
+            'display_text': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'limit': ('django.db.models.fields.PositiveIntegerField', [], {'default': '3'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'latestentries_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.loginform': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'LoginForm', 'db_table': "'page_page_loginform'"},
+            'action_url': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'bottom_content': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'display_forgot_password': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'logged_in_content': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'next_url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'loginform_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'page.mediafilecontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'MediaFileContent', 'db_table': "'page_page_mediafilecontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'mediafile': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'related_name': "'+'", 'to': "orm['medialibrary.MediaFile']"}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'mediafilecontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'type': ('django.db.models.fields.CharField', [], {'default': "'lightbox'", 'max_length': '20'})
+        },
+        'page.page': {
+            'Meta': {'ordering': "['tree_id', 'lft']", 'object_name': 'Page'},
+            '_cached_url': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '300', 'db_index': 'True', 'blank': 'True'}),
+            '_content_title': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            '_page_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'creation_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'in_navigation': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'language': ('django.db.models.fields.CharField', [], {'default': "'en'", 'max_length': '10'}),
+            'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+            'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+            'meta_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'meta_keywords': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'modification_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'navigation_extension': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'override_url': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['page.Page']"}),
+            'publication_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 12, 9, 14, 0)'}),
+            'publication_end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'redirect_to': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+            'site': ('django.db.models.fields.related.ForeignKey', [], {'default': '1', 'to': "orm['sites.Site']"}),
+            'slug': ('django.db.models.fields.SlugField', [], {'max_length': '150', 'db_index': 'True'}),
+            'symlinked_page': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'page_page_symlinks'", 'null': 'True', 'to': "orm['page.Page']"}),
+            'template_key': ('django.db.models.fields.CharField', [], {'default': "'twocolwide'", 'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+            'translation_of': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'translations'", 'null': 'True', 'to': "orm['page.Page']"}),
+            'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'})
+        },
+        'page.rawcontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'RawContent', 'db_table': "'page_page_rawcontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rawcontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'text': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+        },
+        'page.resourceslist': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'ResourcesList', 'db_table': "'page_page_resourceslist'"},
+            'filter_title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'resourceslist_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.richtextcontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'RichTextContent', 'db_table': "'page_page_richtextcontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'richtextcontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'text': ('feincms.contrib.richtext.RichTextField', [], {'blank': 'True'})
+        },
+        'page.sectioncontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'SectionContent', 'db_table': "'page_page_sectioncontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'mediafile': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'sectioncontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'richtext': ('feincms.contrib.richtext.RichTextField', [], {'blank': 'True'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'default': "'block'", 'max_length': '10'})
+        },
+        'page.statsblock': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'StatsBlock', 'db_table': "'page_page_statsblock'"},
+            'active_networks': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'active_vms': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'color': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'compute_url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'statsblock_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'running_networks': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'running_vms': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'spawned_networks': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'spawned_vms': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'title_active_networks': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'title_active_vms': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'title_running_networks': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'title_running_vms': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'title_spawned_networks': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'title_spawned_vms': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+        },
+        'page.templatecontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'TemplateContent', 'db_table': "'page_page_templatecontent'"},
+            'filename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'templatecontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.textilecontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'TextileContent', 'db_table': "'page_page_textilecontent'"},
+            'content': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'textilecontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.twitterfeed': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'TwitterFeed', 'db_table': "'page_page_twitterfeed'"},
+            'code': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'limit': ('django.db.models.fields.PositiveIntegerField', [], {'default': '10'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'twitterfeed_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'widget_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'page.videocontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'VideoContent', 'db_table': "'page_page_videocontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'videocontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'video': ('django.db.models.fields.URLField', [], {'max_length': '200'})
+        },
+        'page.videosection': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'VideoSection', 'db_table': "'page_page_videosection'"},
+            'alt_text': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'extra_url_params': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_image_for_video_section'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'image_hover': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_hover_for_video_section'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'videosection_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'section_title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'video_height': ('django.db.models.fields.PositiveIntegerField', [], {'default': '550'}),
+            'video_link': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'video_title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'video_width': ('django.db.models.fields.PositiveIntegerField', [], {'default': '700'})
+        },
+        'sites.site': {
+            'Meta': {'ordering': "('domain',)", 'object_name': 'Site', 'db_table': "'django_site'"},
+            'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        }
+    }
+
+    complete_apps = ['page']
diff --git a/cloudcms/migrate/page/0026_auto__add_field_twitterfeed_theme__add_field_twitterfeed_link_color__a.py b/cloudcms/migrate/page/0026_auto__add_field_twitterfeed_theme__add_field_twitterfeed_link_color__a.py
new file mode 100644 (file)
index 0000000..fe85a4a
--- /dev/null
@@ -0,0 +1,345 @@
+# 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 'TwitterFeed.theme'
+        db.add_column('page_page_twitterfeed', 'theme', self.gf('django.db.models.fields.CharField')(default='light', max_length=200, blank=True), keep_default=False)
+
+        # Adding field 'TwitterFeed.link_color'
+        db.add_column('page_page_twitterfeed', 'link_color', self.gf('django.db.models.fields.CharField')(default='#F89A1C', max_length=200, blank=True), keep_default=False)
+
+        # Adding field 'TwitterFeed.chrome'
+        db.add_column('page_page_twitterfeed', 'chrome', self.gf('django.db.models.fields.CharField')(default='noscrollbar nofooter noheader noborders', max_length=200, blank=True), keep_default=False)
+
+        # Adding field 'TwitterFeed.screen_name'
+        db.add_column('page_page_twitterfeed', 'screen_name', self.gf('django.db.models.fields.CharField')(default='', max_length=200, blank=True), keep_default=False)
+
+        # Adding field 'TwitterFeed.aria_politeness'
+        db.add_column('page_page_twitterfeed', 'aria_politeness', self.gf('django.db.models.fields.CharField')(default='', max_length=200, blank=True), keep_default=False)
+
+        # Adding field 'TwitterFeed.border_color'
+        db.add_column('page_page_twitterfeed', 'border_color', self.gf('django.db.models.fields.CharField')(default='', max_length=200, blank=True), keep_default=False)
+
+
+    def backwards(self, orm):
+        
+        # Deleting field 'TwitterFeed.theme'
+        db.delete_column('page_page_twitterfeed', 'theme')
+
+        # Deleting field 'TwitterFeed.link_color'
+        db.delete_column('page_page_twitterfeed', 'link_color')
+
+        # Deleting field 'TwitterFeed.chrome'
+        db.delete_column('page_page_twitterfeed', 'chrome')
+
+        # Deleting field 'TwitterFeed.screen_name'
+        db.delete_column('page_page_twitterfeed', 'screen_name')
+
+        # Deleting field 'TwitterFeed.aria_politeness'
+        db.delete_column('page_page_twitterfeed', 'aria_politeness')
+
+        # Deleting field 'TwitterFeed.border_color'
+        db.delete_column('page_page_twitterfeed', 'border_color')
+
+
+    models = {
+        'cloudcms.client': {
+            'Meta': {'object_name': 'Client'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'uid': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'medialibrary.category': {
+            'Meta': {'ordering': "['parent__title', 'title']", 'object_name': 'Category'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['medialibrary.Category']"}),
+            'slug': ('django.db.models.fields.SlugField', [], {'max_length': '150', 'db_index': 'True'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'medialibrary.mediafile': {
+            'Meta': {'ordering': "['-created']", 'object_name': 'MediaFile'},
+            'categories': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['medialibrary.Category']", 'null': 'True', 'blank': 'True'}),
+            'copyright': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 12, 9, 14, 12, 55, 101636)'}),
+            'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255'}),
+            'file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'})
+        },
+        'page.aboutblock': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'AboutBlock', 'db_table': "'page_page_aboutblock'"},
+            'color': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+            'content': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+            'image_position': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+            'offset_left': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'offset_top': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aboutblock_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'page.applicationcontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'ApplicationContent', 'db_table': "'page_page_applicationcontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parameters': ('feincms.contrib.fields.JSONField', [], {'null': 'True'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'applicationcontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'urlconf_path': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'page.blockcolor': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'BlockColor', 'db_table': "'page_page_blockcolor'"},
+            'color': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'content': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'blockcolor_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'page.clientdownload': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'ClientDownload', 'db_table': "'page_page_clientdownload'"},
+            'client': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cloudcms.Client']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'clientdownload_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.imagecontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'ImageContent', 'db_table': "'page_page_imagecontent'"},
+            'alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'imagecontent_set'", 'to': "orm['page.Page']"}),
+            'position': ('django.db.models.fields.CharField', [], {'default': "'default'", 'max_length': '10'}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.introblock': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'IntroBlock', 'db_table': "'page_page_introblock'"},
+            'class_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'content': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'introblock_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'page.introbutton': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'IntroButton', 'db_table': "'page_page_introbutton'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image_1': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_image1'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'image_2': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_image2'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'image_3': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_image3'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'link': ('django.db.models.fields.CharField', [], {'default': "'/welcome'", 'max_length': '255'}),
+            'link_title': ('django.db.models.fields.CharField', [], {'default': "'~okeanos'", 'max_length': '255'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'introbutton_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.introvideo': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'IntroVideo', 'db_table': "'page_page_introvideo'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'introvideo_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'youtube_id': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+        },
+        'page.latestentries': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'LatestEntries', 'db_table': "'page_page_latestentries'"},
+            'display_text': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'limit': ('django.db.models.fields.PositiveIntegerField', [], {'default': '3'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'latestentries_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.loginform': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'LoginForm', 'db_table': "'page_page_loginform'"},
+            'action_url': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'bottom_content': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'display_forgot_password': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'logged_in_content': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'next_url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'loginform_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'page.mediafilecontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'MediaFileContent', 'db_table': "'page_page_mediafilecontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'mediafile': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'related_name': "'+'", 'to': "orm['medialibrary.MediaFile']"}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'mediafilecontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'type': ('django.db.models.fields.CharField', [], {'default': "'lightbox'", 'max_length': '20'})
+        },
+        'page.page': {
+            'Meta': {'ordering': "['tree_id', 'lft']", 'object_name': 'Page'},
+            '_cached_url': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '300', 'db_index': 'True', 'blank': 'True'}),
+            '_content_title': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            '_page_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'creation_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'in_navigation': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'language': ('django.db.models.fields.CharField', [], {'default': "'en'", 'max_length': '10'}),
+            'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+            'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+            'meta_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'meta_keywords': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'modification_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'navigation_extension': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'override_url': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['page.Page']"}),
+            'publication_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 12, 9, 14, 10)'}),
+            'publication_end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'redirect_to': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+            'site': ('django.db.models.fields.related.ForeignKey', [], {'default': '1', 'to': "orm['sites.Site']"}),
+            'slug': ('django.db.models.fields.SlugField', [], {'max_length': '150', 'db_index': 'True'}),
+            'symlinked_page': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'page_page_symlinks'", 'null': 'True', 'to': "orm['page.Page']"}),
+            'template_key': ('django.db.models.fields.CharField', [], {'default': "'twocolwide'", 'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+            'translation_of': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'translations'", 'null': 'True', 'to': "orm['page.Page']"}),
+            'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'})
+        },
+        'page.rawcontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'RawContent', 'db_table': "'page_page_rawcontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rawcontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'text': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+        },
+        'page.resourceslist': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'ResourcesList', 'db_table': "'page_page_resourceslist'"},
+            'filter_title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'resourceslist_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.richtextcontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'RichTextContent', 'db_table': "'page_page_richtextcontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'richtextcontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'text': ('feincms.contrib.richtext.RichTextField', [], {'blank': 'True'})
+        },
+        'page.sectioncontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'SectionContent', 'db_table': "'page_page_sectioncontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'mediafile': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'sectioncontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'richtext': ('feincms.contrib.richtext.RichTextField', [], {'blank': 'True'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'default': "'block'", 'max_length': '10'})
+        },
+        'page.statsblock': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'StatsBlock', 'db_table': "'page_page_statsblock'"},
+            'active_networks': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'active_vms': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'color': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'compute_url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'statsblock_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'running_networks': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'running_vms': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'spawned_networks': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'spawned_vms': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'title_active_networks': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'title_active_vms': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'title_running_networks': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'title_running_vms': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'title_spawned_networks': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'title_spawned_vms': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+        },
+        'page.templatecontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'TemplateContent', 'db_table': "'page_page_templatecontent'"},
+            'filename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'templatecontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.textilecontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'TextileContent', 'db_table': "'page_page_textilecontent'"},
+            'content': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'textilecontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.twitterfeed': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'TwitterFeed', 'db_table': "'page_page_twitterfeed'"},
+            'aria_politeness': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'border_color': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'chrome': ('django.db.models.fields.CharField', [], {'default': "'noscrollbar nofooter noheader noborders'", 'max_length': '200', 'blank': 'True'}),
+            'code': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'limit': ('django.db.models.fields.PositiveIntegerField', [], {'default': '10'}),
+            'link_color': ('django.db.models.fields.CharField', [], {'default': "'#F89A1C'", 'max_length': '200', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'twitterfeed_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'screen_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'theme': ('django.db.models.fields.CharField', [], {'default': "'light'", 'max_length': '200', 'blank': 'True'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'widget_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'page.videocontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'VideoContent', 'db_table': "'page_page_videocontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'videocontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'video': ('django.db.models.fields.URLField', [], {'max_length': '200'})
+        },
+        'page.videosection': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'VideoSection', 'db_table': "'page_page_videosection'"},
+            'alt_text': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'extra_url_params': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_image_for_video_section'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'image_hover': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_hover_for_video_section'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'videosection_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'section_title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'video_height': ('django.db.models.fields.PositiveIntegerField', [], {'default': '550'}),
+            'video_link': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'video_title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'video_width': ('django.db.models.fields.PositiveIntegerField', [], {'default': '700'})
+        },
+        'sites.site': {
+            'Meta': {'ordering': "('domain',)", 'object_name': 'Site', 'db_table': "'django_site'"},
+            'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        }
+    }
+
+    complete_apps = ['page']
diff --git a/cloudcms/migrate/page/0027_auto__add_field_twitterfeed_custom_timeline_id__add_field_twitterfeed_.py b/cloudcms/migrate/page/0027_auto__add_field_twitterfeed_custom_timeline_id__add_field_twitterfeed_.py
new file mode 100644 (file)
index 0000000..b0d42fd
--- /dev/null
@@ -0,0 +1,337 @@
+# 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 'TwitterFeed.custom_timeline_id'
+        db.add_column('page_page_twitterfeed', 'custom_timeline_id', self.gf('django.db.models.fields.CharField')(default='', max_length=200, blank=True), keep_default=False)
+
+        # Adding field 'TwitterFeed.favorites_screen_name'
+        db.add_column('page_page_twitterfeed', 'favorites_screen_name', self.gf('django.db.models.fields.CharField')(default='', max_length=200, blank=True), keep_default=False)
+
+        # Adding field 'TwitterFeed.list_owner_screen_name'
+        db.add_column('page_page_twitterfeed', 'list_owner_screen_name', self.gf('django.db.models.fields.CharField')(default='', max_length=200, blank=True), keep_default=False)
+
+        # Adding field 'TwitterFeed.list_slug'
+        db.add_column('page_page_twitterfeed', 'list_slug', self.gf('django.db.models.fields.CharField')(default='', max_length=200, blank=True), keep_default=False)
+
+
+    def backwards(self, orm):
+        
+        # Deleting field 'TwitterFeed.custom_timeline_id'
+        db.delete_column('page_page_twitterfeed', 'custom_timeline_id')
+
+        # Deleting field 'TwitterFeed.favorites_screen_name'
+        db.delete_column('page_page_twitterfeed', 'favorites_screen_name')
+
+        # Deleting field 'TwitterFeed.list_owner_screen_name'
+        db.delete_column('page_page_twitterfeed', 'list_owner_screen_name')
+
+        # Deleting field 'TwitterFeed.list_slug'
+        db.delete_column('page_page_twitterfeed', 'list_slug')
+
+
+    models = {
+        'cloudcms.client': {
+            'Meta': {'object_name': 'Client'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'uid': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'medialibrary.category': {
+            'Meta': {'ordering': "['parent__title', 'title']", 'object_name': 'Category'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['medialibrary.Category']"}),
+            'slug': ('django.db.models.fields.SlugField', [], {'max_length': '150', 'db_index': 'True'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'medialibrary.mediafile': {
+            'Meta': {'ordering': "['-created']", 'object_name': 'MediaFile'},
+            'categories': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['medialibrary.Category']", 'null': 'True', 'blank': 'True'}),
+            'copyright': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 12, 9, 14, 18, 18, 68932)'}),
+            'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255'}),
+            'file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'})
+        },
+        'page.aboutblock': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'AboutBlock', 'db_table': "'page_page_aboutblock'"},
+            'color': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+            'content': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+            'image_position': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+            'offset_left': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'offset_top': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aboutblock_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'page.applicationcontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'ApplicationContent', 'db_table': "'page_page_applicationcontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parameters': ('feincms.contrib.fields.JSONField', [], {'null': 'True'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'applicationcontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'urlconf_path': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'page.blockcolor': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'BlockColor', 'db_table': "'page_page_blockcolor'"},
+            'color': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'content': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'blockcolor_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'page.clientdownload': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'ClientDownload', 'db_table': "'page_page_clientdownload'"},
+            'client': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cloudcms.Client']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'clientdownload_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.imagecontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'ImageContent', 'db_table': "'page_page_imagecontent'"},
+            'alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'imagecontent_set'", 'to': "orm['page.Page']"}),
+            'position': ('django.db.models.fields.CharField', [], {'default': "'default'", 'max_length': '10'}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.introblock': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'IntroBlock', 'db_table': "'page_page_introblock'"},
+            'class_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'content': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'introblock_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'page.introbutton': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'IntroButton', 'db_table': "'page_page_introbutton'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image_1': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_image1'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'image_2': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_image2'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'image_3': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_image3'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'link': ('django.db.models.fields.CharField', [], {'default': "'/welcome'", 'max_length': '255'}),
+            'link_title': ('django.db.models.fields.CharField', [], {'default': "'~okeanos'", 'max_length': '255'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'introbutton_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.introvideo': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'IntroVideo', 'db_table': "'page_page_introvideo'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'introvideo_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'youtube_id': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+        },
+        'page.latestentries': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'LatestEntries', 'db_table': "'page_page_latestentries'"},
+            'display_text': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'limit': ('django.db.models.fields.PositiveIntegerField', [], {'default': '3'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'latestentries_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.loginform': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'LoginForm', 'db_table': "'page_page_loginform'"},
+            'action_url': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'bottom_content': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'display_forgot_password': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'logged_in_content': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'next_url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'loginform_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'page.mediafilecontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'MediaFileContent', 'db_table': "'page_page_mediafilecontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'mediafile': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'related_name': "'+'", 'to': "orm['medialibrary.MediaFile']"}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'mediafilecontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'type': ('django.db.models.fields.CharField', [], {'default': "'lightbox'", 'max_length': '20'})
+        },
+        'page.page': {
+            'Meta': {'ordering': "['tree_id', 'lft']", 'object_name': 'Page'},
+            '_cached_url': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '300', 'db_index': 'True', 'blank': 'True'}),
+            '_content_title': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            '_page_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'creation_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'in_navigation': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'language': ('django.db.models.fields.CharField', [], {'default': "'en'", 'max_length': '10'}),
+            'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+            'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+            'meta_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'meta_keywords': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'modification_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'navigation_extension': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'override_url': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['page.Page']"}),
+            'publication_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 12, 9, 14, 15)'}),
+            'publication_end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'redirect_to': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+            'site': ('django.db.models.fields.related.ForeignKey', [], {'default': '1', 'to': "orm['sites.Site']"}),
+            'slug': ('django.db.models.fields.SlugField', [], {'max_length': '150', 'db_index': 'True'}),
+            'symlinked_page': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'page_page_symlinks'", 'null': 'True', 'to': "orm['page.Page']"}),
+            'template_key': ('django.db.models.fields.CharField', [], {'default': "'twocolwide'", 'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+            'translation_of': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'translations'", 'null': 'True', 'to': "orm['page.Page']"}),
+            'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'})
+        },
+        'page.rawcontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'RawContent', 'db_table': "'page_page_rawcontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rawcontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'text': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+        },
+        'page.resourceslist': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'ResourcesList', 'db_table': "'page_page_resourceslist'"},
+            'filter_title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'resourceslist_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.richtextcontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'RichTextContent', 'db_table': "'page_page_richtextcontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'richtextcontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'text': ('feincms.contrib.richtext.RichTextField', [], {'blank': 'True'})
+        },
+        'page.sectioncontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'SectionContent', 'db_table': "'page_page_sectioncontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'mediafile': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'sectioncontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'richtext': ('feincms.contrib.richtext.RichTextField', [], {'blank': 'True'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'default': "'block'", 'max_length': '10'})
+        },
+        'page.statsblock': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'StatsBlock', 'db_table': "'page_page_statsblock'"},
+            'active_networks': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'active_vms': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'color': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'compute_url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'statsblock_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'running_networks': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'running_vms': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'spawned_networks': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'spawned_vms': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'title_active_networks': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'title_active_vms': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'title_running_networks': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'title_running_vms': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'title_spawned_networks': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'title_spawned_vms': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+        },
+        'page.templatecontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'TemplateContent', 'db_table': "'page_page_templatecontent'"},
+            'filename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'templatecontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.textilecontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'TextileContent', 'db_table': "'page_page_textilecontent'"},
+            'content': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'textilecontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.twitterfeed': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'TwitterFeed', 'db_table': "'page_page_twitterfeed'"},
+            'aria_politeness': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'border_color': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'chrome': ('django.db.models.fields.CharField', [], {'default': "'noscrollbar nofooter noheader noborders'", 'max_length': '200', 'blank': 'True'}),
+            'code': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'custom_timeline_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'favorites_screen_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'limit': ('django.db.models.fields.PositiveIntegerField', [], {'default': '10'}),
+            'link_color': ('django.db.models.fields.CharField', [], {'default': "'#F89A1C'", 'max_length': '200', 'blank': 'True'}),
+            'list_owner_screen_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'list_slug': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'twitterfeed_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'screen_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'theme': ('django.db.models.fields.CharField', [], {'default': "'light'", 'max_length': '200', 'blank': 'True'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'widget_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'page.videocontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'VideoContent', 'db_table': "'page_page_videocontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'videocontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'video': ('django.db.models.fields.URLField', [], {'max_length': '200'})
+        },
+        'page.videosection': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'VideoSection', 'db_table': "'page_page_videosection'"},
+            'alt_text': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'extra_url_params': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_image_for_video_section'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'image_hover': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_hover_for_video_section'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'videosection_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'section_title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'video_height': ('django.db.models.fields.PositiveIntegerField', [], {'default': '550'}),
+            'video_link': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'video_title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'video_width': ('django.db.models.fields.PositiveIntegerField', [], {'default': '700'})
+        },
+        'sites.site': {
+            'Meta': {'ordering': "('domain',)", 'object_name': 'Site', 'db_table': "'django_site'"},
+            'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        }
+    }
+
+    complete_apps = ['page']
diff --git a/cloudcms/migrate/page/0028_auto__add_field_twitterfeed_height__add_field_twitterfeed_extra_attrib.py b/cloudcms/migrate/page/0028_auto__add_field_twitterfeed_height__add_field_twitterfeed_extra_attrib.py
new file mode 100644 (file)
index 0000000..a0d788d
--- /dev/null
@@ -0,0 +1,327 @@
+# 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 'TwitterFeed.height'
+        db.add_column('page_page_twitterfeed', 'height', self.gf('django.db.models.fields.CharField')(default='', max_length=200, blank=True), keep_default=False)
+
+        # Adding field 'TwitterFeed.extra_attributes'
+        db.add_column('page_page_twitterfeed', 'extra_attributes', self.gf('django.db.models.fields.TextField')(default='', blank=True), keep_default=False)
+
+
+    def backwards(self, orm):
+        
+        # Deleting field 'TwitterFeed.height'
+        db.delete_column('page_page_twitterfeed', 'height')
+
+        # Deleting field 'TwitterFeed.extra_attributes'
+        db.delete_column('page_page_twitterfeed', 'extra_attributes')
+
+
+    models = {
+        'cloudcms.client': {
+            'Meta': {'object_name': 'Client'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'uid': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'medialibrary.category': {
+            'Meta': {'ordering': "['parent__title', 'title']", 'object_name': 'Category'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['medialibrary.Category']"}),
+            'slug': ('django.db.models.fields.SlugField', [], {'max_length': '150', 'db_index': 'True'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'medialibrary.mediafile': {
+            'Meta': {'ordering': "['-created']", 'object_name': 'MediaFile'},
+            'categories': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['medialibrary.Category']", 'null': 'True', 'blank': 'True'}),
+            'copyright': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 12, 9, 14, 27, 26, 730738)'}),
+            'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255'}),
+            'file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '12'})
+        },
+        'page.aboutblock': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'AboutBlock', 'db_table': "'page_page_aboutblock'"},
+            'color': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+            'content': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+            'image_position': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+            'offset_left': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'offset_top': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aboutblock_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'page.applicationcontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'ApplicationContent', 'db_table': "'page_page_applicationcontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parameters': ('feincms.contrib.fields.JSONField', [], {'null': 'True'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'applicationcontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'urlconf_path': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'page.blockcolor': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'BlockColor', 'db_table': "'page_page_blockcolor'"},
+            'color': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'content': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'blockcolor_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'page.clientdownload': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'ClientDownload', 'db_table': "'page_page_clientdownload'"},
+            'client': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cloudcms.Client']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'clientdownload_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.imagecontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'ImageContent', 'db_table': "'page_page_imagecontent'"},
+            'alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'imagecontent_set'", 'to': "orm['page.Page']"}),
+            'position': ('django.db.models.fields.CharField', [], {'default': "'default'", 'max_length': '10'}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.introblock': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'IntroBlock', 'db_table': "'page_page_introblock'"},
+            'class_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'content': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'introblock_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'page.introbutton': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'IntroButton', 'db_table': "'page_page_introbutton'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image_1': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_image1'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'image_2': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_image2'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'image_3': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_image3'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'link': ('django.db.models.fields.CharField', [], {'default': "'/welcome'", 'max_length': '255'}),
+            'link_title': ('django.db.models.fields.CharField', [], {'default': "'~okeanos'", 'max_length': '255'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'introbutton_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.introvideo': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'IntroVideo', 'db_table': "'page_page_introvideo'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'introvideo_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'youtube_id': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+        },
+        'page.latestentries': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'LatestEntries', 'db_table': "'page_page_latestentries'"},
+            'display_text': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'limit': ('django.db.models.fields.PositiveIntegerField', [], {'default': '3'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'latestentries_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.loginform': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'LoginForm', 'db_table': "'page_page_loginform'"},
+            'action_url': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'bottom_content': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'display_forgot_password': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'logged_in_content': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'next_url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'loginform_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'page.mediafilecontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'MediaFileContent', 'db_table': "'page_page_mediafilecontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'mediafile': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'related_name': "'+'", 'to': "orm['medialibrary.MediaFile']"}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'mediafilecontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'type': ('django.db.models.fields.CharField', [], {'default': "'lightbox'", 'max_length': '20'})
+        },
+        'page.page': {
+            'Meta': {'ordering': "['tree_id', 'lft']", 'object_name': 'Page'},
+            '_cached_url': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '300', 'db_index': 'True', 'blank': 'True'}),
+            '_content_title': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            '_page_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+            'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'creation_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'in_navigation': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'language': ('django.db.models.fields.CharField', [], {'default': "'en'", 'max_length': '10'}),
+            'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+            'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+            'meta_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'meta_keywords': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'modification_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}),
+            'navigation_extension': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'override_url': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['page.Page']"}),
+            'publication_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 12, 9, 14, 25)'}),
+            'publication_end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'redirect_to': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}),
+            'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+            'site': ('django.db.models.fields.related.ForeignKey', [], {'default': '1', 'to': "orm['sites.Site']"}),
+            'slug': ('django.db.models.fields.SlugField', [], {'max_length': '150', 'db_index': 'True'}),
+            'symlinked_page': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'page_page_symlinks'", 'null': 'True', 'to': "orm['page.Page']"}),
+            'template_key': ('django.db.models.fields.CharField', [], {'default': "'twocolwide'", 'max_length': '255'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+            'translation_of': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'translations'", 'null': 'True', 'to': "orm['page.Page']"}),
+            'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'})
+        },
+        'page.rawcontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'RawContent', 'db_table': "'page_page_rawcontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rawcontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'text': ('django.db.models.fields.TextField', [], {'blank': 'True'})
+        },
+        'page.resourceslist': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'ResourcesList', 'db_table': "'page_page_resourceslist'"},
+            'filter_title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'resourceslist_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.richtextcontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'RichTextContent', 'db_table': "'page_page_richtextcontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'richtextcontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'text': ('feincms.contrib.richtext.RichTextField', [], {'blank': 'True'})
+        },
+        'page.sectioncontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'SectionContent', 'db_table': "'page_page_sectioncontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'mediafile': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'sectioncontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'richtext': ('feincms.contrib.richtext.RichTextField', [], {'blank': 'True'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'default': "'block'", 'max_length': '10'})
+        },
+        'page.statsblock': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'StatsBlock', 'db_table': "'page_page_statsblock'"},
+            'active_networks': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'active_vms': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'color': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'compute_url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'statsblock_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'running_networks': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'running_vms': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'spawned_networks': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'spawned_vms': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'title_active_networks': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'title_active_vms': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'title_running_networks': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'title_running_vms': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'title_spawned_networks': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'title_spawned_vms': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+        },
+        'page.templatecontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'TemplateContent', 'db_table': "'page_page_templatecontent'"},
+            'filename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'templatecontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.textilecontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'TextileContent', 'db_table': "'page_page_textilecontent'"},
+            'content': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'textilecontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'page.twitterfeed': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'TwitterFeed', 'db_table': "'page_page_twitterfeed'"},
+            'aria_politeness': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'border_color': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'chrome': ('django.db.models.fields.CharField', [], {'default': "'noscrollbar nofooter noheader noborders'", 'max_length': '200', 'blank': 'True'}),
+            'code': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'custom_timeline_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'extra_attributes': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+            'favorites_screen_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'height': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'limit': ('django.db.models.fields.PositiveIntegerField', [], {'default': '10'}),
+            'link_color': ('django.db.models.fields.CharField', [], {'default': "'#F89A1C'", 'max_length': '200', 'blank': 'True'}),
+            'list_owner_screen_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'list_slug': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'twitterfeed_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'screen_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'theme': ('django.db.models.fields.CharField', [], {'default': "'light'", 'max_length': '200', 'blank': 'True'}),
+            'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'widget_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'})
+        },
+        'page.videocontent': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'VideoContent', 'db_table': "'page_page_videocontent'"},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'videocontent_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'video': ('django.db.models.fields.URLField', [], {'max_length': '200'})
+        },
+        'page.videosection': {
+            'Meta': {'ordering': "['ordering']", 'object_name': 'VideoSection', 'db_table': "'page_page_videosection'"},
+            'alt_text': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'extra_url_params': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_image_for_video_section'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'image_hover': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_hover_for_video_section'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}),
+            'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+            'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'videosection_set'", 'to': "orm['page.Page']"}),
+            'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'section_title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'video_height': ('django.db.models.fields.PositiveIntegerField', [], {'default': '550'}),
+            'video_link': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'video_title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+            'video_width': ('django.db.models.fields.PositiveIntegerField', [], {'default': '700'})
+        },
+        'sites.site': {
+            'Meta': {'ordering': "('domain',)", 'object_name': 'Site', 'db_table': "'django_site'"},
+            'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        }
+    }
+
+    complete_apps = ['page']
index b177bb5..772f16a 100644 (file)
@@ -1,33 +1,25 @@
+{{ load_code|safe }}
 
-<script id="feeds-template-{{ content.pk }}" type="text/x-jquery-tmpl">
-    <li><b>${Name}</b> (${ReleaseYear})</li>
-</script>
-<script>
-    $(document).ready(function(){
-        var el = $("#twitter_feeds_section_{{ content.pk }}");
-        $.twitter({{ content.js_conf|safe}}, function(tweets){
-            $.each(tweets.results, function(i,t){
-                var tweet = $('<li>');
-                var date = $('<p class="date">');
-                var text = $('<p class="text">');
-                
-                text.html(linkify(t.text));
-                date.html('<a href="https://twitter.com/#!/' + t.from_user + 
-                '">' + $.timeago(new Date(t.created_at)) + 
-                '</a>');
-
-                tweet.append(date);
-                tweet.append(text);
-                el.append(tweet);
-            })
-        })
-
-    })
-</script>
 <div class="follow">
     {% if content.title %}
         <h3>{{ content.title|safe }}</h3>
     {% endif %}
-    <ul id="twitter_feeds_section_{{ content.pk }}">
-    </ul>
+
+    <a id="twitter-timeline-{{ content.id }}" 
+       class="twitter-timeline"
+       data-widget-id="{{ content.widget_id }}" 
+       data-chrome="{{ content.chrome }}" 
+       data-tweet-limit="{{ content.limit }}"
+       data-theme="{{ content.theme }}"
+       data-link-color="{{ content.link_color }}"
+       {% if content.border_color %} data-border-color="{{ content.link_color }}"{% endif %}
+       {% if content.aria_politeness %} data-aria-polite="{{ content.aria_politeness }}"{% endif %}
+       {% if content.screen_name %} data-screen-name="{{ content.screen_name }}"{% endif %}
+       {% if content.custom_timeline_id %} data-custom-timeline-id="{{ content.custom_timeline_id }}"{% endif %}
+       {% if content.favorites_screen_name %} data-favorites-screen-name="{{ content.favorites_screen_name }}"{% endif %}
+       {% if content.list_owner_screen_name %} data-list-owner-screen-name="{{ content.list_owner_screen_name }}"{% endif %}
+       {% if content.list_slug %} data-list-slug="{{ content.list_slug }}"{% endif %}
+       {% if content.height %} height="{{ content.height }}"{% endif %}
+       {% if content.extra_attributes %}{{ content.extra_attributes }}{% endif %}
+    ></a>
 </div>