Revision c1468bcc
b/cloudcms/admin.py | ||
---|---|---|
1 |
from django.contrib import admin |
|
2 |
from cloudcms import models |
|
3 |
|
|
4 |
|
|
5 |
class ApplicationAdmin(admin.ModelAdmin): |
|
6 |
raw_id_fields = ('logo', ) |
|
7 |
|
|
8 |
|
|
9 |
admin.site.register(models.Application, ApplicationAdmin) |
|
10 |
|
b/cloudcms/astakos_cms.py | ||
---|---|---|
1 |
from feincms.module.page.extensions.navigation import NavigationExtension, \ |
|
2 |
PagePretender |
|
3 |
from django.utils.translation import ugettext as _ |
|
4 |
|
|
5 |
ASTAKOS_NAVIGATION = ( |
|
6 |
('Profile', 'astakos-profile'), |
|
7 |
('Change password', 'astakos-profile') |
|
8 |
) |
|
9 |
|
|
10 |
class AstakosNavigationExtension(NavigationExtension): |
|
11 |
name = _('astakos pages') |
|
12 |
|
|
13 |
def children(self, page, **kwargs): |
|
14 |
from django.core.urlresolvers import reverse |
|
15 |
for title, url in dict(ASTAKOS_NAVIGATION).iteritems(): |
|
16 |
yield PagePretender(title=title, url='/im/profile') |
b/cloudcms/cms.py | ||
---|---|---|
1 |
import mptt |
|
2 |
|
|
3 |
from django import forms |
|
4 |
from django.db import models |
|
5 |
from django.utils.text import capfirst |
|
6 |
from django.utils.translation import ugettext_lazy as _ |
|
7 |
|
|
8 |
from feincms.module.page.models import Page |
|
9 |
from feincms.content.raw.models import RawContent |
|
10 |
from feincms.content.richtext.models import RichTextContent |
|
11 |
from feincms.content.image.models import ImageContent |
|
12 |
from feincms.content.application.models import ApplicationContent |
|
13 |
from feincms.module.page.extensions.navigation import NavigationExtension, \ |
|
14 |
PagePretender |
|
15 |
from feincms.content.application.models import reverse |
|
16 |
from feincms.content.medialibrary.v2 import MediaFileContent |
|
17 |
from feincms.content.section.models import SectionContent |
|
18 |
from feincms.content.table.models import TableContent |
|
19 |
from feincms.content.template.models import TemplateContent |
|
20 |
from feincms.content.video.models import VideoContent |
|
21 |
from feincms.content.richtext.models import RichTextContent |
|
22 |
|
|
23 |
from cloudcmsblog.models import Entry |
|
24 |
from cloudcms.content import * |
|
25 |
|
|
26 |
Page.register_extensions( |
|
27 |
'changedate', |
|
28 |
'datepublisher', |
|
29 |
'translations', |
|
30 |
'seo', |
|
31 |
'symlinks', |
|
32 |
'navigation', |
|
33 |
'sites', |
|
34 |
'titles' |
|
35 |
) |
|
36 |
|
|
37 |
# Feincms Page templates declaration |
|
38 |
TEMPLATES = [{ |
|
39 |
'key': 'basic', |
|
40 |
'title': 'Basic 2 columns template', |
|
41 |
'path': 'cms/pages/page.html', |
|
42 |
'regions': ( |
|
43 |
('main', 'Main region'), |
|
44 |
('sidebar', 'Sidebar', 'inherited'), |
|
45 |
), |
|
46 |
}, |
|
47 |
{ |
|
48 |
'key': 'twocolwide', |
|
49 |
'title': 'Basic 2 columns template (wider)', |
|
50 |
'path': 'cms/pages/twocolwide.html', |
|
51 |
'regions': ( |
|
52 |
('main', 'Main region'), |
|
53 |
('sidebar', 'Sidebar', 'inherited'), |
|
54 |
), |
|
55 |
}, |
|
56 |
{ |
|
57 |
'key': 'intro', |
|
58 |
'title': 'Intro page Template', |
|
59 |
'path': 'cms/pages/intro.html', |
|
60 |
'regions': ( |
|
61 |
('main', 'Main region'), |
|
62 |
('sidebar', 'Sidebar', 'inherited'), |
|
63 |
), |
|
64 |
}, |
|
65 |
{ |
|
66 |
'key': 'singlecol', |
|
67 |
'title': 'Basic 1 column template', |
|
68 |
'path': 'cms/pages/onecol.html', |
|
69 |
'regions': ( |
|
70 |
('main', 'Main region'), |
|
71 |
), |
|
72 |
}, |
|
73 |
{ |
|
74 |
'key': 'blog', |
|
75 |
'title': 'Blog template', |
|
76 |
'path': 'cms/pages/blog.html', |
|
77 |
'regions': ( |
|
78 |
('main', 'Main region'), |
|
79 |
('sidebar', 'Sidebar', 'inherited'), |
|
80 |
), |
|
81 |
}, |
|
82 |
] |
|
83 |
|
|
84 |
# register templates |
|
85 |
map(Page.register_templates, TEMPLATES) |
|
86 |
|
|
87 |
Page.create_content_type(RichTextContent) |
|
88 |
Page.create_content_type(RawContent) |
|
89 |
Page.create_content_type(SectionContent, TYPE_CHOICES=(('block', 'Block'),)) |
|
90 |
Page.create_content_type(TemplateContent) |
|
91 |
Page.create_content_type(TwitterFeed) |
|
92 |
Page.create_content_type(VideoContent) |
|
93 |
Page.create_content_type(VideoSection) |
|
94 |
Page.create_content_type(ImageContent, POSITION_CHOICES=( |
|
95 |
('default', 'Default position'), |
|
96 |
)) |
|
97 |
Page.create_content_type(MediaFileContent, TYPE_CHOICES=( |
|
98 |
('lightbox', 'lightbox'), |
|
99 |
('download', 'as download') |
|
100 |
)) |
|
101 |
Page.create_content_type(ApplicationContent, APPLICATIONS=( |
|
102 |
('cloudcmsblog', 'Cloud blog', {'urls': 'cloudcmsblog.urls'}),)) |
|
103 |
|
|
104 |
|
|
105 |
# cloudcms specific content registration |
|
106 |
Page.create_content_type(LoginForm) |
|
107 |
Page.create_content_type(AboutBlock) |
|
108 |
|
|
109 |
|
|
110 |
# Feincms specific registrations for our blog entry model |
|
111 |
Entry.register_regions( |
|
112 |
('main', _('Main content area')), |
|
113 |
('sidebar', _('Right column')), |
|
114 |
) |
|
115 |
Entry.create_content_type(RichTextContent, cleanse=False, regions=('main',)) |
|
116 |
Entry.create_content_type(TemplateContent) |
|
117 |
Entry.create_content_type(VideoContent) |
|
118 |
Entry.create_content_type(TwitterFeed) |
|
119 |
Entry.create_content_type(RawContent) |
|
120 |
Entry.create_content_type(SectionContent, TYPE_CHOICES=(('block', 'Block'),)) |
|
121 |
|
b/cloudcms/common_settings.py | ||
---|---|---|
1 |
CLOUDCMS_APPS = [ |
|
2 |
'cloudcms', |
|
3 |
'cloudcmsblog', |
|
4 |
'pagination', |
|
5 |
|
|
6 |
'django.contrib.auth', |
|
7 |
'django.contrib.contenttypes', |
|
8 |
'django.contrib.sessions', |
|
9 |
'django.contrib.sites', |
|
10 |
'django.contrib.messages', |
|
11 |
'django.contrib.admin', |
|
12 |
'django.contrib.admindocs', |
|
13 |
'django.contrib.sitemaps', |
|
14 |
|
|
15 |
'south', |
|
16 |
|
|
17 |
'feincms', |
|
18 |
'feincms.module.page', |
|
19 |
'feincms.module.medialibrary', |
|
20 |
] |
|
21 |
CLOUDCMS_MIDDLEWARES = [ |
|
22 |
'django.contrib.sessions.middleware.SessionMiddleware', |
|
23 |
'django.contrib.auth.middleware.AuthenticationMiddleware', |
|
24 |
'django.contrib.messages.middleware.MessageMiddleware', |
|
25 |
'django.middleware.csrf.CsrfViewMiddleware', |
|
26 |
'pagination.middleware.PaginationMiddleware' |
|
27 |
] |
|
28 |
CLOUDCMS_STATICFILES = { |
|
29 |
'cloudcms': '', |
|
30 |
'feincms': '' |
|
31 |
} |
|
32 |
CLOUDCMS_CONTEXT_PROCESSORS = [ |
|
33 |
'cloudcms.context_processors.application', |
|
34 |
'cloudcms.context_processors.cloudbar' |
|
35 |
] |
|
36 |
|
|
37 |
|
|
38 |
# Django settings |
|
39 |
SOUTH_MIGRATION_MODULES = { |
|
40 |
'page': 'cloudcms.migrate.page', |
|
41 |
'medialibrary': 'cloudcms.migrate.medialibrary', |
|
42 |
'cloudcmsblog': 'cloudcms.migrate.cloudcmsblog', |
|
43 |
} |
|
44 |
|
|
45 |
CLOUDBAR_URL = '/static/im/cloudbar/cloudbar.js' |
|
46 |
CLOUDBAR_ACTIVE_SERVICE = 'okeanos_cms' |
b/cloudcms/content.py | ||
---|---|---|
1 |
from django.contrib.markup.templatetags.markup import textile |
|
2 |
from django.db import models |
|
3 |
from django import forms |
|
4 |
from django.conf import settings |
|
5 |
from django.utils.translation import ugettext_lazy as _ |
|
6 |
from django.template.loader import render_to_string |
|
7 |
from django.utils import simplejson |
|
8 |
|
|
9 |
from feincms.admin.editor import ItemEditorForm |
|
10 |
from feincms.module.page.models import Page |
|
11 |
from feincms.module.medialibrary.models import MediaFile |
|
12 |
from feincms.content.medialibrary.models import MediaFileWidget |
|
13 |
from feincms.module.medialibrary.fields import MediaFileForeignKey |
|
14 |
|
|
15 |
|
|
16 |
DEFAULT_JQ_TWITTER_URL = settings.MEDIA_URL + 'cloudcms/' + 'js/' + 'twitter/' + \ |
|
17 |
'jquery.twitter.js' |
|
18 |
DEFAULT_LINKIFY_URL = settings.MEDIA_URL + 'cloudcms/' + 'js/' + 'twitter/' + \ |
|
19 |
'ba-linkify.js' |
|
20 |
DEFAULT_JQ_TIMEAGO_URL = settings.MEDIA_URL + 'cloudcms/' + 'js/' + 'twitter/' + \ |
|
21 |
'jquery.timeago.js' |
|
22 |
JQUERY_TWITTER_URL = getattr(settings, "JQUERY_TWITTER_URL", |
|
23 |
DEFAULT_JQ_TWITTER_URL) |
|
24 |
LINKIFY_JS_URL = getattr(settings, "LINKIFY_JS_URL", |
|
25 |
DEFAULT_LINKIFY_URL) |
|
26 |
JQUERY_TIMEAGO_URL = getattr(settings, "JQUERY_TIMEAGO_URL", |
|
27 |
DEFAULT_JQ_TIMEAGO_URL) |
|
28 |
|
|
29 |
|
|
30 |
class VideoSection(models.Model): |
|
31 |
section_title = models.CharField(max_length=200, blank=True) |
|
32 |
video_title = models.CharField(max_length=200, blank=True) |
|
33 |
video_link = models.CharField(max_length=200, blank=True) |
|
34 |
video_width = models.PositiveIntegerField(default=700) |
|
35 |
video_height = models.PositiveIntegerField(default=550) |
|
36 |
image = MediaFileForeignKey(MediaFile, blank=True, null=True, |
|
37 |
related_name="as_image_for_video_section") |
|
38 |
image_hover = MediaFileForeignKey(MediaFile, blank=True, null=True, |
|
39 |
related_name="as_hover_for_video_section") |
|
40 |
alt_text = models.TextField(null=True, blank=True) |
|
41 |
extra_url_params = models.CharField(max_length=200, blank=True) |
|
42 |
|
|
43 |
class Meta: |
|
44 |
abstract = True |
|
45 |
verbose_name = _('video section') |
|
46 |
verbose_name_plural = _('video sections') |
|
47 |
|
|
48 |
def render(self, **kwargs): |
|
49 |
return render_to_string(['content/videosection.html'], {'content': self}) |
|
50 |
|
|
51 |
|
|
52 |
class TwitterFeed(models.Model): |
|
53 |
title = models.CharField(max_length=200, blank=True) |
|
54 |
account = models.CharField(max_length=200, blank=True) |
|
55 |
nots = models.CharField(max_length=200, help_text="Ugly words", blank=True) |
|
56 |
query = models.CharField(max_length=200, blank=True, |
|
57 |
help_text="Filter query") |
|
58 |
tag = models.CharField(max_length=200, blank=True, help_text="Hashtag") |
|
59 |
limit = models.PositiveIntegerField(default=10) |
|
60 |
replies = models.BooleanField(default=True) |
|
61 |
retweets = models.BooleanField(default=True) |
|
62 |
avatar = models.BooleanField(default=False) |
|
63 |
extra_params = models.TextField(blank=True, |
|
64 |
help_text="Json object to append to " |
|
65 |
"JQuery-twitter-plugin settings. Change " |
|
66 |
"this only if you know what you are doing.") |
|
67 |
|
|
68 |
class Meta: |
|
69 |
abstract = True |
|
70 |
verbose_name = _('twitter feed') |
|
71 |
verbose_name_plural = _('twitter feeds') |
|
72 |
|
|
73 |
@property |
|
74 |
def media(self): |
|
75 |
return forms.Media(js=( |
|
76 |
LINKIFY_JS_URL, JQUERY_TWITTER_URL, JQUERY_TIMEAGO_URL |
|
77 |
)) |
|
78 |
|
|
79 |
def js_conf(self): |
|
80 |
conf = {} |
|
81 |
if self.account: |
|
82 |
conf['from'] = self.account |
|
83 |
|
|
84 |
for f in ['nots', 'query', 'tag', 'limit', 'replies', 'retweets', 'avatar']: |
|
85 |
if type(getattr(self, f)) == bool: |
|
86 |
conf[f] = getattr(self, f) |
|
87 |
|
|
88 |
if getattr(self, f): |
|
89 |
conf[f] = getattr(self, f) |
|
90 |
|
|
91 |
xtraconf = {} |
|
92 |
try: |
|
93 |
xtraconf = simplejson.loads(self.extra_params) |
|
94 |
except: |
|
95 |
pass |
|
96 |
|
|
97 |
conf.update(xtraconf) |
|
98 |
return simplejson.dumps(conf) |
|
99 |
|
|
100 |
|
|
101 |
def render(self, **kwargs): |
|
102 |
return render_to_string(['content/twitter_feed.html'], {'content': self}) |
|
103 |
|
|
104 |
|
|
105 |
class AboutBlock(models.Model): |
|
106 |
|
|
107 |
title = models.CharField(max_length=200, blank=False) |
|
108 |
content = models.TextField(blank=False) |
|
109 |
image = MediaFileForeignKey(MediaFile, blank=True, null=True) |
|
110 |
image_position = models.CharField(max_length=200, |
|
111 |
choices=(('top', 'Top'), ('left', 'Left'), ('right', 'Right'))) |
|
112 |
color = models.CharField(max_length=200, blank=False) |
|
113 |
offset_left = models.IntegerField(null=True, blank=True) |
|
114 |
offset_top = models.IntegerField(null=True, blank=True) |
|
115 |
|
|
116 |
class Meta: |
|
117 |
abstract = True |
|
118 |
verbose_name = _('about page block') |
|
119 |
verbose_name_plural = _('about page blocks') |
|
120 |
|
|
121 |
def render(self, **kwargs): |
|
122 |
return render_to_string(['content/about_block.html'], {'content': self}) |
|
123 |
|
|
124 |
|
|
125 |
class LoginForm(models.Model): |
|
126 |
""" |
|
127 |
Login form |
|
128 |
""" |
|
129 |
|
|
130 |
title = models.CharField(_('title'), max_length=200, blank=False) |
|
131 |
action_url = models.CharField(_('im url'), max_length=100, blank=False) |
|
132 |
display_forgot_password = models.BooleanField(default=False, null=False) |
|
133 |
next_url = models.CharField(max_length=255, null=True, blank=True) |
|
134 |
|
|
135 |
class Meta: |
|
136 |
abstract = True |
|
137 |
verbose_name = _('login form') |
|
138 |
verbose_name_plural = _('login forms') |
|
139 |
|
|
140 |
def render(self, **kwargs): |
|
141 |
return render_to_string(['content/login_form.html'], {'content': self}) |
|
142 |
|
b/cloudcms/context_processors.py | ||
---|---|---|
1 |
from django.conf import settings |
|
2 |
|
|
3 |
from cloudcms.models import Application |
|
4 |
|
|
5 |
def cloudbar(request): |
|
6 |
return { |
|
7 |
'CLOUDBAR_BASE_URL': getattr(settings, 'CLOUDBAR_BASE_URL', ''), |
|
8 |
'CLOUDBAR_ACTIVE_SERVICE': getattr(settings, |
|
9 |
'CLOUDBAR_ACTIVE_SERVICE', 'okeanos_cms'), |
|
10 |
} |
|
11 |
|
|
12 |
def application(request): |
|
13 |
try: |
|
14 |
return {'APP': Application.current()} |
|
15 |
except: |
|
16 |
return {'APP': None} |
|
17 |
|
b/cloudcms/migrate/cloudcmsblog/0001_initial.py | ||
---|---|---|
1 |
# encoding: utf-8 |
|
2 |
import datetime |
|
3 |
from south.db import db |
|
4 |
from south.v2 import SchemaMigration |
|
5 |
from django.db import models |
|
6 |
|
|
7 |
class Migration(SchemaMigration): |
|
8 |
|
|
9 |
def forwards(self, orm): |
|
10 |
|
|
11 |
# Adding model 'Category' |
|
12 |
db.create_table('cloudcmsblog_category', ( |
|
13 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
14 |
('ordering', self.gf('django.db.models.fields.SmallIntegerField')(default=0)), |
|
15 |
('display_on_menu', self.gf('django.db.models.fields.BooleanField')(default=False)), |
|
16 |
)) |
|
17 |
db.send_create_signal('cloudcmsblog', ['Category']) |
|
18 |
|
|
19 |
# Adding model 'CategoryTranslation' |
|
20 |
db.create_table('cloudcmsblog_categorytranslation', ( |
|
21 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
22 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='translations', to=orm['cloudcmsblog.Category'])), |
|
23 |
('language_code', self.gf('django.db.models.fields.CharField')(default='en', max_length=10)), |
|
24 |
('title', self.gf('django.db.models.fields.CharField')(max_length=100)), |
|
25 |
('slug', self.gf('django.db.models.fields.SlugField')(unique=True, max_length=50, db_index=True)), |
|
26 |
('description', self.gf('django.db.models.fields.CharField')(max_length=250, blank=True)), |
|
27 |
)) |
|
28 |
db.send_create_signal('cloudcmsblog', ['CategoryTranslation']) |
|
29 |
|
|
30 |
# Adding model 'Entry' |
|
31 |
db.create_table('cloudcmsblog_entry', ( |
|
32 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
33 |
('is_active', self.gf('django.db.models.fields.BooleanField')(default=True)), |
|
34 |
('is_featured', self.gf('django.db.models.fields.BooleanField')(default=False)), |
|
35 |
('title', self.gf('django.db.models.fields.CharField')(max_length=100)), |
|
36 |
('slug', self.gf('django.db.models.fields.SlugField')(max_length=100, db_index=True)), |
|
37 |
('author', self.gf('django.db.models.fields.related.ForeignKey')(related_name='blogentries', to=orm['auth.User'])), |
|
38 |
('language', self.gf('django.db.models.fields.CharField')(max_length=255)), |
|
39 |
('intro_text', self.gf('django.db.models.fields.TextField')(max_length=255, blank=True)), |
|
40 |
('image', self.gf('feincms.module.medialibrary.fields.MediaFileForeignKey')(to=orm['medialibrary.MediaFile'], null=True, blank=True)), |
|
41 |
('published_on', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now, null=True, blank=True)), |
|
42 |
('last_changed', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), |
|
43 |
)) |
|
44 |
db.send_create_signal('cloudcmsblog', ['Entry']) |
|
45 |
|
|
46 |
# Adding M2M table for field application on 'Entry' |
|
47 |
db.create_table('cloudcmsblog_entry_application', ( |
|
48 |
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), |
|
49 |
('entry', models.ForeignKey(orm['cloudcmsblog.entry'], null=False)), |
|
50 |
('application', models.ForeignKey(orm['cloudcms.application'], null=False)) |
|
51 |
)) |
|
52 |
db.create_unique('cloudcmsblog_entry_application', ['entry_id', 'application_id']) |
|
53 |
|
|
54 |
# Adding M2M table for field categories on 'Entry' |
|
55 |
db.create_table('cloudcmsblog_entry_categories', ( |
|
56 |
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), |
|
57 |
('entry', models.ForeignKey(orm['cloudcmsblog.entry'], null=False)), |
|
58 |
('category', models.ForeignKey(orm['cloudcmsblog.category'], null=False)) |
|
59 |
)) |
|
60 |
db.create_unique('cloudcmsblog_entry_categories', ['entry_id', 'category_id']) |
|
61 |
|
|
62 |
# Adding model 'RichTextContent' |
|
63 |
db.create_table('cloudcmsblog_entry_richtextcontent', ( |
|
64 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
65 |
('text', self.gf('django.db.models.fields.TextField')(blank=True)), |
|
66 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='richtextcontent_set', to=orm['cloudcmsblog.Entry'])), |
|
67 |
('region', self.gf('django.db.models.fields.CharField')(max_length=255)), |
|
68 |
('ordering', self.gf('django.db.models.fields.IntegerField')(default=0)), |
|
69 |
)) |
|
70 |
db.send_create_signal('cloudcmsblog', ['RichTextContent']) |
|
71 |
|
|
72 |
# Adding model 'TemplateContent' |
|
73 |
db.create_table('cloudcmsblog_entry_templatecontent', ( |
|
74 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
75 |
('filename', self.gf('django.db.models.fields.CharField')(max_length=100)), |
|
76 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='templatecontent_set', to=orm['cloudcmsblog.Entry'])), |
|
77 |
('region', self.gf('django.db.models.fields.CharField')(max_length=255)), |
|
78 |
('ordering', self.gf('django.db.models.fields.IntegerField')(default=0)), |
|
79 |
)) |
|
80 |
db.send_create_signal('cloudcmsblog', ['TemplateContent']) |
|
81 |
|
|
82 |
# Adding model 'VideoContent' |
|
83 |
db.create_table('cloudcmsblog_entry_videocontent', ( |
|
84 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
85 |
('video', self.gf('django.db.models.fields.URLField')(max_length=200)), |
|
86 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='videocontent_set', to=orm['cloudcmsblog.Entry'])), |
|
87 |
('region', self.gf('django.db.models.fields.CharField')(max_length=255)), |
|
88 |
('ordering', self.gf('django.db.models.fields.IntegerField')(default=0)), |
|
89 |
)) |
|
90 |
db.send_create_signal('cloudcmsblog', ['VideoContent']) |
|
91 |
|
|
92 |
# Adding model 'TwitterFeed' |
|
93 |
db.create_table('cloudcmsblog_entry_twitterfeed', ( |
|
94 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
95 |
('title', self.gf('django.db.models.fields.CharField')(max_length=200, blank=True)), |
|
96 |
('account', self.gf('django.db.models.fields.CharField')(max_length=200, blank=True)), |
|
97 |
('nots', self.gf('django.db.models.fields.CharField')(max_length=200, blank=True)), |
|
98 |
('query', self.gf('django.db.models.fields.CharField')(max_length=200, blank=True)), |
|
99 |
('tag', self.gf('django.db.models.fields.CharField')(max_length=200, blank=True)), |
|
100 |
('limit', self.gf('django.db.models.fields.PositiveIntegerField')(default=10)), |
|
101 |
('replies', self.gf('django.db.models.fields.BooleanField')(default=True)), |
|
102 |
('retweets', self.gf('django.db.models.fields.BooleanField')(default=True)), |
|
103 |
('avatar', self.gf('django.db.models.fields.BooleanField')(default=False)), |
|
104 |
('extra_params', self.gf('django.db.models.fields.TextField')(blank=True)), |
|
105 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='twitterfeed_set', to=orm['cloudcmsblog.Entry'])), |
|
106 |
('region', self.gf('django.db.models.fields.CharField')(max_length=255)), |
|
107 |
('ordering', self.gf('django.db.models.fields.IntegerField')(default=0)), |
|
108 |
)) |
|
109 |
db.send_create_signal('cloudcmsblog', ['TwitterFeed']) |
|
110 |
|
|
111 |
# Adding model 'RawContent' |
|
112 |
db.create_table('cloudcmsblog_entry_rawcontent', ( |
|
113 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
114 |
('text', self.gf('django.db.models.fields.TextField')(blank=True)), |
|
115 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='rawcontent_set', to=orm['cloudcmsblog.Entry'])), |
|
116 |
('region', self.gf('django.db.models.fields.CharField')(max_length=255)), |
|
117 |
('ordering', self.gf('django.db.models.fields.IntegerField')(default=0)), |
|
118 |
)) |
|
119 |
db.send_create_signal('cloudcmsblog', ['RawContent']) |
|
120 |
|
|
121 |
# Adding model 'SectionContent' |
|
122 |
db.create_table('cloudcmsblog_entry_sectioncontent', ( |
|
123 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
124 |
('title', self.gf('django.db.models.fields.CharField')(max_length=200, blank=True)), |
|
125 |
('richtext', self.gf('django.db.models.fields.TextField')(blank=True)), |
|
126 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='sectioncontent_set', to=orm['cloudcmsblog.Entry'])), |
|
127 |
('region', self.gf('django.db.models.fields.CharField')(max_length=255)), |
|
128 |
('ordering', self.gf('django.db.models.fields.IntegerField')(default=0)), |
|
129 |
('mediafile', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='cloudcmsblog_sectioncontent_set', null=True, to=orm['medialibrary.MediaFile'])), |
|
130 |
('type', self.gf('django.db.models.fields.CharField')(default='block', max_length=10)), |
|
131 |
)) |
|
132 |
db.send_create_signal('cloudcmsblog', ['SectionContent']) |
|
133 |
|
|
134 |
|
|
135 |
def backwards(self, orm): |
|
136 |
|
|
137 |
# Deleting model 'Category' |
|
138 |
db.delete_table('cloudcmsblog_category') |
|
139 |
|
|
140 |
# Deleting model 'CategoryTranslation' |
|
141 |
db.delete_table('cloudcmsblog_categorytranslation') |
|
142 |
|
|
143 |
# Deleting model 'Entry' |
|
144 |
db.delete_table('cloudcmsblog_entry') |
|
145 |
|
|
146 |
# Removing M2M table for field application on 'Entry' |
|
147 |
db.delete_table('cloudcmsblog_entry_application') |
|
148 |
|
|
149 |
# Removing M2M table for field categories on 'Entry' |
|
150 |
db.delete_table('cloudcmsblog_entry_categories') |
|
151 |
|
|
152 |
# Deleting model 'RichTextContent' |
|
153 |
db.delete_table('cloudcmsblog_entry_richtextcontent') |
|
154 |
|
|
155 |
# Deleting model 'TemplateContent' |
|
156 |
db.delete_table('cloudcmsblog_entry_templatecontent') |
|
157 |
|
|
158 |
# Deleting model 'VideoContent' |
|
159 |
db.delete_table('cloudcmsblog_entry_videocontent') |
|
160 |
|
|
161 |
# Deleting model 'TwitterFeed' |
|
162 |
db.delete_table('cloudcmsblog_entry_twitterfeed') |
|
163 |
|
|
164 |
# Deleting model 'RawContent' |
|
165 |
db.delete_table('cloudcmsblog_entry_rawcontent') |
|
166 |
|
|
167 |
# Deleting model 'SectionContent' |
|
168 |
db.delete_table('cloudcmsblog_entry_sectioncontent') |
|
169 |
|
|
170 |
|
|
171 |
models = { |
|
172 |
'auth.group': { |
|
173 |
'Meta': {'object_name': 'Group'}, |
|
174 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
175 |
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
|
176 |
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
|
177 |
}, |
|
178 |
'auth.permission': { |
|
179 |
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, |
|
180 |
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
|
181 |
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), |
|
182 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
183 |
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
|
184 |
}, |
|
185 |
'auth.user': { |
|
186 |
'Meta': {'object_name': 'User'}, |
|
187 |
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
|
188 |
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
|
189 |
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
|
190 |
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
|
191 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
192 |
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
|
193 |
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
|
194 |
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
|
195 |
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
|
196 |
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
|
197 |
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
|
198 |
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
|
199 |
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
|
200 |
}, |
|
201 |
'cloudcms.application': { |
|
202 |
'Meta': {'object_name': 'Application'}, |
|
203 |
'app_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
|
204 |
'code': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
|
205 |
'facebook_username': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
|
206 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
207 |
'linked_in_username': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), |
|
208 |
'logo': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}), |
|
209 |
'show_twitter_feed_on_top': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
|
210 |
'site': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['sites.Site']"}), |
|
211 |
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
|
212 |
'twitter_username': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) |
|
213 |
}, |
|
214 |
'cloudcmsblog.category': { |
|
215 |
'Meta': {'ordering': "['-ordering']", 'object_name': 'Category'}, |
|
216 |
'display_on_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
|
217 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
218 |
'ordering': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}) |
|
219 |
}, |
|
220 |
'cloudcmsblog.categorytranslation': { |
|
221 |
'Meta': {'ordering': "['title']", 'object_name': 'CategoryTranslation'}, |
|
222 |
'description': ('django.db.models.fields.CharField', [], {'max_length': '250', 'blank': 'True'}), |
|
223 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
224 |
'language_code': ('django.db.models.fields.CharField', [], {'default': "'en'", 'max_length': '10'}), |
|
225 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['cloudcmsblog.Category']"}), |
|
226 |
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'}), |
|
227 |
'title': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
|
228 |
}, |
|
229 |
'cloudcmsblog.entry': { |
|
230 |
'Meta': {'ordering': "['-published_on']", 'object_name': 'Entry'}, |
|
231 |
'application': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'blogentries'", 'symmetrical': 'False', 'to': "orm['cloudcms.Application']"}), |
|
232 |
'author': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'blogentries'", 'to': "orm['auth.User']"}), |
|
233 |
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'blogentries'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['cloudcmsblog.Category']"}), |
|
234 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
235 |
'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}), |
|
236 |
'intro_text': ('django.db.models.fields.TextField', [], {'max_length': '255', 'blank': 'True'}), |
|
237 |
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
|
238 |
'is_featured': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
|
239 |
'language': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
|
240 |
'last_changed': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
|
241 |
'published_on': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'null': 'True', 'blank': 'True'}), |
|
242 |
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'db_index': 'True'}), |
|
243 |
'title': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
|
244 |
}, |
|
245 |
'cloudcmsblog.rawcontent': { |
|
246 |
'Meta': {'ordering': "['ordering']", 'object_name': 'RawContent', 'db_table': "'cloudcmsblog_entry_rawcontent'"}, |
|
247 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
248 |
'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}), |
|
249 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rawcontent_set'", 'to': "orm['cloudcmsblog.Entry']"}), |
|
250 |
'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
|
251 |
'text': ('django.db.models.fields.TextField', [], {'blank': 'True'}) |
|
252 |
}, |
|
253 |
'cloudcmsblog.richtextcontent': { |
|
254 |
'Meta': {'ordering': "['ordering']", 'object_name': 'RichTextContent', 'db_table': "'cloudcmsblog_entry_richtextcontent'"}, |
|
255 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
256 |
'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}), |
|
257 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'richtextcontent_set'", 'to': "orm['cloudcmsblog.Entry']"}), |
|
258 |
'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
|
259 |
'text': ('django.db.models.fields.TextField', [], {'blank': 'True'}) |
|
260 |
}, |
|
261 |
'cloudcmsblog.sectioncontent': { |
|
262 |
'Meta': {'ordering': "['ordering']", 'object_name': 'SectionContent', 'db_table': "'cloudcmsblog_entry_sectioncontent'"}, |
|
263 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
264 |
'mediafile': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'cloudcmsblog_sectioncontent_set'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}), |
|
265 |
'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}), |
|
266 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'sectioncontent_set'", 'to': "orm['cloudcmsblog.Entry']"}), |
|
267 |
'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
|
268 |
'richtext': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
|
269 |
'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), |
|
270 |
'type': ('django.db.models.fields.CharField', [], {'default': "'block'", 'max_length': '10'}) |
|
271 |
}, |
|
272 |
'cloudcmsblog.templatecontent': { |
|
273 |
'Meta': {'ordering': "['ordering']", 'object_name': 'TemplateContent', 'db_table': "'cloudcmsblog_entry_templatecontent'"}, |
|
274 |
'filename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
|
275 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
276 |
'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}), |
|
277 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'templatecontent_set'", 'to': "orm['cloudcmsblog.Entry']"}), |
|
278 |
'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}) |
|
279 |
}, |
|
280 |
'cloudcmsblog.twitterfeed': { |
|
281 |
'Meta': {'ordering': "['ordering']", 'object_name': 'TwitterFeed', 'db_table': "'cloudcmsblog_entry_twitterfeed'"}, |
|
282 |
'account': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), |
|
283 |
'avatar': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
|
284 |
'extra_params': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
|
285 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
286 |
'limit': ('django.db.models.fields.PositiveIntegerField', [], {'default': '10'}), |
|
287 |
'nots': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), |
|
288 |
'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}), |
|
289 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'twitterfeed_set'", 'to': "orm['cloudcmsblog.Entry']"}), |
|
290 |
'query': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), |
|
291 |
'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
|
292 |
'replies': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
|
293 |
'retweets': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
|
294 |
'tag': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), |
|
295 |
'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}) |
|
296 |
}, |
|
297 |
'cloudcmsblog.videocontent': { |
|
298 |
'Meta': {'ordering': "['ordering']", 'object_name': 'VideoContent', 'db_table': "'cloudcmsblog_entry_videocontent'"}, |
|
299 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
300 |
'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}), |
|
301 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'videocontent_set'", 'to': "orm['cloudcmsblog.Entry']"}), |
|
302 |
'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
|
303 |
'video': ('django.db.models.fields.URLField', [], {'max_length': '200'}) |
|
304 |
}, |
|
305 |
'contenttypes.contenttype': { |
|
306 |
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
|
307 |
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
|
308 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
309 |
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
|
310 |
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
|
311 |
}, |
|
312 |
'medialibrary.category': { |
|
313 |
'Meta': {'ordering': "['parent__title', 'title']", 'object_name': 'Category'}, |
|
314 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
315 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['medialibrary.Category']"}), |
|
316 |
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '150', 'db_index': 'True'}), |
|
317 |
'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) |
|
318 |
}, |
|
319 |
'medialibrary.mediafile': { |
|
320 |
'Meta': {'object_name': 'MediaFile'}, |
|
321 |
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['medialibrary.Category']", 'null': 'True', 'blank': 'True'}), |
|
322 |
'copyright': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), |
|
323 |
'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
|
324 |
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255'}), |
|
325 |
'file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
|
326 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
327 |
'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}) |
|
328 |
}, |
|
329 |
'sites.site': { |
|
330 |
'Meta': {'ordering': "('domain',)", 'object_name': 'Site', 'db_table': "'django_site'"}, |
|
331 |
'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
|
332 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
333 |
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
|
334 |
} |
|
335 |
} |
|
336 |
|
|
337 |
complete_apps = ['cloudcmsblog'] |
b/cloudcms/migrate/medialibrary/0001_initial.py | ||
---|---|---|
1 |
# encoding: utf-8 |
|
2 |
import datetime |
|
3 |
from south.db import db |
|
4 |
from south.v2 import SchemaMigration |
|
5 |
from django.db import models |
|
6 |
|
|
7 |
class Migration(SchemaMigration): |
|
8 |
|
|
9 |
def forwards(self, orm): |
|
10 |
|
|
11 |
# Adding model 'Category' |
|
12 |
db.create_table('medialibrary_category', ( |
|
13 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
14 |
('title', self.gf('django.db.models.fields.CharField')(max_length=200)), |
|
15 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='children', null=True, to=orm['medialibrary.Category'])), |
|
16 |
('slug', self.gf('django.db.models.fields.SlugField')(max_length=150, db_index=True)), |
|
17 |
)) |
|
18 |
db.send_create_signal('medialibrary', ['Category']) |
|
19 |
|
|
20 |
# Adding model 'MediaFile' |
|
21 |
db.create_table('medialibrary_mediafile', ( |
|
22 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
23 |
('file', self.gf('django.db.models.fields.files.FileField')(max_length=255)), |
|
24 |
('type', self.gf('django.db.models.fields.CharField')(max_length=12)), |
|
25 |
('created', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)), |
|
26 |
('copyright', self.gf('django.db.models.fields.CharField')(max_length=200, blank=True)), |
|
27 |
('file_size', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)), |
|
28 |
)) |
|
29 |
db.send_create_signal('medialibrary', ['MediaFile']) |
|
30 |
|
|
31 |
# Adding M2M table for field categories on 'MediaFile' |
|
32 |
db.create_table('medialibrary_mediafile_categories', ( |
|
33 |
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), |
|
34 |
('mediafile', models.ForeignKey(orm['medialibrary.mediafile'], null=False)), |
|
35 |
('category', models.ForeignKey(orm['medialibrary.category'], null=False)) |
|
36 |
)) |
|
37 |
db.create_unique('medialibrary_mediafile_categories', ['mediafile_id', 'category_id']) |
|
38 |
|
|
39 |
# Adding model 'MediaFileTranslation' |
|
40 |
db.create_table('medialibrary_mediafiletranslation', ( |
|
41 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
42 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='translations', to=orm['medialibrary.MediaFile'])), |
|
43 |
('language_code', self.gf('django.db.models.fields.CharField')(default='en', max_length=10)), |
|
44 |
('caption', self.gf('django.db.models.fields.CharField')(max_length=200)), |
|
45 |
('description', self.gf('django.db.models.fields.TextField')(blank=True)), |
|
46 |
)) |
|
47 |
db.send_create_signal('medialibrary', ['MediaFileTranslation']) |
|
48 |
|
|
49 |
|
|
50 |
def backwards(self, orm): |
|
51 |
|
|
52 |
# Deleting model 'Category' |
|
53 |
db.delete_table('medialibrary_category') |
|
54 |
|
|
55 |
# Deleting model 'MediaFile' |
|
56 |
db.delete_table('medialibrary_mediafile') |
|
57 |
|
|
58 |
# Removing M2M table for field categories on 'MediaFile' |
|
59 |
db.delete_table('medialibrary_mediafile_categories') |
|
60 |
|
|
61 |
# Deleting model 'MediaFileTranslation' |
|
62 |
db.delete_table('medialibrary_mediafiletranslation') |
|
63 |
|
|
64 |
|
|
65 |
models = { |
|
66 |
'medialibrary.category': { |
|
67 |
'Meta': {'ordering': "['parent__title', 'title']", 'object_name': 'Category'}, |
|
68 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
69 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['medialibrary.Category']"}), |
|
70 |
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '150', 'db_index': 'True'}), |
|
71 |
'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) |
|
72 |
}, |
|
73 |
'medialibrary.mediafile': { |
|
74 |
'Meta': {'object_name': 'MediaFile'}, |
|
75 |
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['medialibrary.Category']", 'null': 'True', 'blank': 'True'}), |
|
76 |
'copyright': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), |
|
77 |
'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
|
78 |
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255'}), |
|
79 |
'file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
|
80 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
81 |
'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}) |
|
82 |
}, |
|
83 |
'medialibrary.mediafiletranslation': { |
|
84 |
'Meta': {'object_name': 'MediaFileTranslation'}, |
|
85 |
'caption': ('django.db.models.fields.CharField', [], {'max_length': '200'}), |
|
86 |
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
|
87 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
88 |
'language_code': ('django.db.models.fields.CharField', [], {'default': "'en'", 'max_length': '10'}), |
|
89 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['medialibrary.MediaFile']"}) |
|
90 |
} |
|
91 |
} |
|
92 |
|
|
93 |
complete_apps = ['medialibrary'] |
b/cloudcms/migrate/page/0001_initial.py | ||
---|---|---|
1 |
# encoding: utf-8 |
|
2 |
import datetime |
|
3 |
from south.db import db |
|
4 |
from south.v2 import SchemaMigration |
|
5 |
from django.db import models |
|
6 |
|
|
7 |
class Migration(SchemaMigration): |
|
8 |
|
|
9 |
def forwards(self, orm): |
|
10 |
|
|
11 |
# Adding model 'Page' |
|
12 |
db.create_table('page_page', ( |
|
13 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
14 |
('lft', self.gf('django.db.models.fields.PositiveIntegerField')(db_index=True)), |
|
15 |
('rght', self.gf('django.db.models.fields.PositiveIntegerField')(db_index=True)), |
|
16 |
('tree_id', self.gf('django.db.models.fields.PositiveIntegerField')(db_index=True)), |
|
17 |
('level', self.gf('django.db.models.fields.PositiveIntegerField')(db_index=True)), |
|
18 |
('active', self.gf('django.db.models.fields.BooleanField')(default=False)), |
|
19 |
('title', self.gf('django.db.models.fields.CharField')(max_length=200)), |
|
20 |
('slug', self.gf('django.db.models.fields.SlugField')(max_length=150, db_index=True)), |
|
21 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='children', null=True, to=orm['page.Page'])), |
|
22 |
('in_navigation', self.gf('django.db.models.fields.BooleanField')(default=False)), |
|
23 |
('override_url', self.gf('django.db.models.fields.CharField')(max_length=300, blank=True)), |
|
24 |
('redirect_to', self.gf('django.db.models.fields.CharField')(max_length=300, blank=True)), |
|
25 |
('_cached_url', self.gf('django.db.models.fields.CharField')(default='', max_length=300, db_index=True, blank=True)), |
|
26 |
('creation_date', self.gf('django.db.models.fields.DateTimeField')(null=True)), |
|
27 |
('modification_date', self.gf('django.db.models.fields.DateTimeField')(null=True)), |
|
28 |
('publication_date', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime(2012, 2, 22, 16, 0))), |
|
29 |
('publication_end_date', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)), |
|
30 |
('language', self.gf('django.db.models.fields.CharField')(default='en', max_length=10)), |
|
31 |
('translation_of', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='translations', null=True, to=orm['page.Page'])), |
|
32 |
('meta_keywords', self.gf('django.db.models.fields.TextField')(blank=True)), |
|
33 |
('meta_description', self.gf('django.db.models.fields.TextField')(blank=True)), |
|
34 |
('symlinked_page', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='page_page_symlinks', null=True, to=orm['page.Page'])), |
|
35 |
('navigation_extension', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)), |
|
36 |
('site', self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['sites.Site'])), |
|
37 |
('_content_title', self.gf('django.db.models.fields.TextField')(blank=True)), |
|
38 |
('_page_title', self.gf('django.db.models.fields.CharField')(max_length=100, blank=True)), |
|
39 |
('template_key', self.gf('django.db.models.fields.CharField')(default='basic', max_length=255)), |
|
40 |
)) |
|
41 |
db.send_create_signal('page', ['Page']) |
|
42 |
|
|
43 |
# Adding model 'RichTextContent' |
|
44 |
db.create_table('page_page_richtextcontent', ( |
|
45 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
46 |
('text', self.gf('django.db.models.fields.TextField')(blank=True)), |
|
47 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='richtextcontent_set', to=orm['page.Page'])), |
|
48 |
('region', self.gf('django.db.models.fields.CharField')(max_length=255)), |
|
49 |
('ordering', self.gf('django.db.models.fields.IntegerField')(default=0)), |
|
50 |
)) |
|
51 |
db.send_create_signal('page', ['RichTextContent']) |
|
52 |
|
|
53 |
# Adding model 'RawContent' |
|
54 |
db.create_table('page_page_rawcontent', ( |
|
55 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
56 |
('text', self.gf('django.db.models.fields.TextField')(blank=True)), |
|
57 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='rawcontent_set', to=orm['page.Page'])), |
|
58 |
('region', self.gf('django.db.models.fields.CharField')(max_length=255)), |
|
59 |
('ordering', self.gf('django.db.models.fields.IntegerField')(default=0)), |
|
60 |
)) |
|
61 |
db.send_create_signal('page', ['RawContent']) |
|
62 |
|
|
63 |
# Adding model 'SectionContent' |
|
64 |
db.create_table('page_page_sectioncontent', ( |
|
65 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
66 |
('title', self.gf('django.db.models.fields.CharField')(max_length=200, blank=True)), |
|
67 |
('richtext', self.gf('django.db.models.fields.TextField')(blank=True)), |
|
68 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='sectioncontent_set', to=orm['page.Page'])), |
|
69 |
('region', self.gf('django.db.models.fields.CharField')(max_length=255)), |
|
70 |
('ordering', self.gf('django.db.models.fields.IntegerField')(default=0)), |
|
71 |
('mediafile', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='page_sectioncontent_set', null=True, to=orm['medialibrary.MediaFile'])), |
|
72 |
('type', self.gf('django.db.models.fields.CharField')(default='block', max_length=10)), |
|
73 |
)) |
|
74 |
db.send_create_signal('page', ['SectionContent']) |
|
75 |
|
|
76 |
# Adding model 'TemplateContent' |
|
77 |
db.create_table('page_page_templatecontent', ( |
|
78 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
79 |
('filename', self.gf('django.db.models.fields.CharField')(max_length=100)), |
|
80 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='templatecontent_set', to=orm['page.Page'])), |
|
81 |
('region', self.gf('django.db.models.fields.CharField')(max_length=255)), |
|
82 |
('ordering', self.gf('django.db.models.fields.IntegerField')(default=0)), |
|
83 |
)) |
|
84 |
db.send_create_signal('page', ['TemplateContent']) |
|
85 |
|
|
86 |
# Adding model 'TwitterFeed' |
|
87 |
db.create_table('page_page_twitterfeed', ( |
|
88 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
89 |
('title', self.gf('django.db.models.fields.CharField')(max_length=200, blank=True)), |
|
90 |
('account', self.gf('django.db.models.fields.CharField')(max_length=200, blank=True)), |
|
91 |
('nots', self.gf('django.db.models.fields.CharField')(max_length=200, blank=True)), |
|
92 |
('query', self.gf('django.db.models.fields.CharField')(max_length=200, blank=True)), |
|
93 |
('tag', self.gf('django.db.models.fields.CharField')(max_length=200, blank=True)), |
|
94 |
('limit', self.gf('django.db.models.fields.PositiveIntegerField')(default=10)), |
|
95 |
('replies', self.gf('django.db.models.fields.BooleanField')(default=True)), |
|
96 |
('retweets', self.gf('django.db.models.fields.BooleanField')(default=True)), |
|
97 |
('avatar', self.gf('django.db.models.fields.BooleanField')(default=False)), |
|
98 |
('extra_params', self.gf('django.db.models.fields.TextField')(blank=True)), |
|
99 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='twitterfeed_set', to=orm['page.Page'])), |
|
100 |
('region', self.gf('django.db.models.fields.CharField')(max_length=255)), |
|
101 |
('ordering', self.gf('django.db.models.fields.IntegerField')(default=0)), |
|
102 |
)) |
|
103 |
db.send_create_signal('page', ['TwitterFeed']) |
|
104 |
|
|
105 |
# Adding model 'VideoContent' |
|
106 |
db.create_table('page_page_videocontent', ( |
|
107 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
108 |
('video', self.gf('django.db.models.fields.URLField')(max_length=200)), |
|
109 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='videocontent_set', to=orm['page.Page'])), |
|
110 |
('region', self.gf('django.db.models.fields.CharField')(max_length=255)), |
|
111 |
('ordering', self.gf('django.db.models.fields.IntegerField')(default=0)), |
|
112 |
)) |
|
113 |
db.send_create_signal('page', ['VideoContent']) |
|
114 |
|
|
115 |
# Adding model 'VideoSection' |
|
116 |
db.create_table('page_page_videosection', ( |
|
117 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
118 |
('section_title', self.gf('django.db.models.fields.CharField')(max_length=200, blank=True)), |
|
119 |
('video_title', self.gf('django.db.models.fields.CharField')(max_length=200, blank=True)), |
|
120 |
('video_link', self.gf('django.db.models.fields.CharField')(max_length=200, blank=True)), |
|
121 |
('video_width', self.gf('django.db.models.fields.PositiveIntegerField')(default=700)), |
|
122 |
('video_height', self.gf('django.db.models.fields.PositiveIntegerField')(default=550)), |
|
123 |
('image', self.gf('feincms.module.medialibrary.fields.MediaFileForeignKey')(blank=True, related_name='as_image_for_video_section', null=True, to=orm['medialibrary.MediaFile'])), |
|
124 |
('image_hover', self.gf('feincms.module.medialibrary.fields.MediaFileForeignKey')(blank=True, related_name='as_hover_for_video_section', null=True, to=orm['medialibrary.MediaFile'])), |
|
125 |
('alt_text', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), |
|
126 |
('extra_url_params', self.gf('django.db.models.fields.CharField')(max_length=200, blank=True)), |
|
127 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='videosection_set', to=orm['page.Page'])), |
|
128 |
('region', self.gf('django.db.models.fields.CharField')(max_length=255)), |
|
129 |
('ordering', self.gf('django.db.models.fields.IntegerField')(default=0)), |
|
130 |
)) |
|
131 |
db.send_create_signal('page', ['VideoSection']) |
|
132 |
|
|
133 |
# Adding model 'ImageContent' |
|
134 |
db.create_table('page_page_imagecontent', ( |
|
135 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
136 |
('image', self.gf('django.db.models.fields.files.ImageField')(max_length=100)), |
|
137 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='imagecontent_set', to=orm['page.Page'])), |
|
138 |
('region', self.gf('django.db.models.fields.CharField')(max_length=255)), |
|
139 |
('ordering', self.gf('django.db.models.fields.IntegerField')(default=0)), |
|
140 |
('position', self.gf('django.db.models.fields.CharField')(default='default', max_length=10)), |
|
141 |
)) |
|
142 |
db.send_create_signal('page', ['ImageContent']) |
|
143 |
|
|
144 |
# Adding model 'MediaFileContent' |
|
145 |
db.create_table('page_page_mediafilecontent', ( |
|
146 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
147 |
('mediafile', self.gf('feincms.module.medialibrary.fields.MediaFileForeignKey')(related_name='+', to=orm['medialibrary.MediaFile'])), |
|
148 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='mediafilecontent_set', to=orm['page.Page'])), |
|
149 |
('region', self.gf('django.db.models.fields.CharField')(max_length=255)), |
|
150 |
('ordering', self.gf('django.db.models.fields.IntegerField')(default=0)), |
|
151 |
('type', self.gf('django.db.models.fields.CharField')(default='lightbox', max_length=20)), |
|
152 |
)) |
|
153 |
db.send_create_signal('page', ['MediaFileContent']) |
|
154 |
|
|
155 |
# Adding model 'ApplicationContent' |
|
156 |
db.create_table('page_page_applicationcontent', ( |
|
157 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
158 |
('parameters', self.gf('feincms.contrib.fields.JSONField')(null=True)), |
|
159 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='applicationcontent_set', to=orm['page.Page'])), |
|
160 |
('region', self.gf('django.db.models.fields.CharField')(max_length=255)), |
|
161 |
('ordering', self.gf('django.db.models.fields.IntegerField')(default=0)), |
|
162 |
('urlconf_path', self.gf('django.db.models.fields.CharField')(max_length=100)), |
|
163 |
)) |
|
164 |
db.send_create_signal('page', ['ApplicationContent']) |
|
165 |
|
|
166 |
# Adding model 'LoginForm' |
|
167 |
db.create_table('page_page_loginform', ( |
|
168 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
169 |
('title', self.gf('django.db.models.fields.CharField')(max_length=200)), |
|
170 |
('action_url', self.gf('django.db.models.fields.CharField')(max_length=100)), |
|
171 |
('display_forgot_password', self.gf('django.db.models.fields.BooleanField')(default=False)), |
|
172 |
('next_url', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)), |
|
173 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='loginform_set', to=orm['page.Page'])), |
|
174 |
('region', self.gf('django.db.models.fields.CharField')(max_length=255)), |
|
175 |
('ordering', self.gf('django.db.models.fields.IntegerField')(default=0)), |
|
176 |
)) |
|
177 |
db.send_create_signal('page', ['LoginForm']) |
|
178 |
|
|
179 |
# Adding model 'AboutBlock' |
|
180 |
db.create_table('page_page_aboutblock', ( |
|
181 |
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
|
182 |
('title', self.gf('django.db.models.fields.CharField')(max_length=200)), |
|
183 |
('content', self.gf('django.db.models.fields.TextField')()), |
|
184 |
('image', self.gf('feincms.module.medialibrary.fields.MediaFileForeignKey')(to=orm['medialibrary.MediaFile'], null=True, blank=True)), |
|
185 |
('image_position', self.gf('django.db.models.fields.CharField')(max_length=200)), |
|
186 |
('color', self.gf('django.db.models.fields.CharField')(max_length=200)), |
|
187 |
('offset_left', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)), |
|
188 |
('offset_top', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)), |
|
189 |
('parent', self.gf('django.db.models.fields.related.ForeignKey')(related_name='aboutblock_set', to=orm['page.Page'])), |
|
190 |
('region', self.gf('django.db.models.fields.CharField')(max_length=255)), |
|
191 |
('ordering', self.gf('django.db.models.fields.IntegerField')(default=0)), |
|
192 |
)) |
|
193 |
db.send_create_signal('page', ['AboutBlock']) |
|
194 |
|
|
195 |
|
|
196 |
def backwards(self, orm): |
|
197 |
|
|
198 |
# Deleting model 'Page' |
|
199 |
db.delete_table('page_page') |
|
200 |
|
|
201 |
# Deleting model 'RichTextContent' |
|
202 |
db.delete_table('page_page_richtextcontent') |
|
203 |
|
|
204 |
# Deleting model 'RawContent' |
|
205 |
db.delete_table('page_page_rawcontent') |
|
206 |
|
|
207 |
# Deleting model 'SectionContent' |
|
208 |
db.delete_table('page_page_sectioncontent') |
|
209 |
|
|
210 |
# Deleting model 'TemplateContent' |
|
211 |
db.delete_table('page_page_templatecontent') |
|
212 |
|
|
213 |
# Deleting model 'TwitterFeed' |
|
214 |
db.delete_table('page_page_twitterfeed') |
|
215 |
|
|
216 |
# Deleting model 'VideoContent' |
|
217 |
db.delete_table('page_page_videocontent') |
|
218 |
|
|
219 |
# Deleting model 'VideoSection' |
|
220 |
db.delete_table('page_page_videosection') |
|
221 |
|
|
222 |
# Deleting model 'ImageContent' |
|
223 |
db.delete_table('page_page_imagecontent') |
|
224 |
|
|
225 |
# Deleting model 'MediaFileContent' |
|
226 |
db.delete_table('page_page_mediafilecontent') |
|
227 |
|
|
228 |
# Deleting model 'ApplicationContent' |
|
229 |
db.delete_table('page_page_applicationcontent') |
|
230 |
|
|
231 |
# Deleting model 'LoginForm' |
|
232 |
db.delete_table('page_page_loginform') |
|
233 |
|
|
234 |
# Deleting model 'AboutBlock' |
|
235 |
db.delete_table('page_page_aboutblock') |
|
236 |
|
|
237 |
|
|
238 |
models = { |
|
239 |
'medialibrary.category': { |
|
240 |
'Meta': {'ordering': "['parent__title', 'title']", 'object_name': 'Category'}, |
|
241 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
242 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['medialibrary.Category']"}), |
|
243 |
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '150', 'db_index': 'True'}), |
|
244 |
'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) |
|
245 |
}, |
|
246 |
'medialibrary.mediafile': { |
|
247 |
'Meta': {'object_name': 'MediaFile'}, |
|
248 |
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['medialibrary.Category']", 'null': 'True', 'blank': 'True'}), |
|
249 |
'copyright': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), |
|
250 |
'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
|
251 |
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255'}), |
|
252 |
'file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
|
253 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
254 |
'type': ('django.db.models.fields.CharField', [], {'max_length': '12'}) |
|
255 |
}, |
|
256 |
'page.aboutblock': { |
|
257 |
'Meta': {'ordering': "['ordering']", 'object_name': 'AboutBlock', 'db_table': "'page_page_aboutblock'"}, |
|
258 |
'color': ('django.db.models.fields.CharField', [], {'max_length': '200'}), |
|
259 |
'content': ('django.db.models.fields.TextField', [], {}), |
|
260 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
261 |
'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'to': "orm['medialibrary.MediaFile']", 'null': 'True', 'blank': 'True'}), |
|
262 |
'image_position': ('django.db.models.fields.CharField', [], {'max_length': '200'}), |
|
263 |
'offset_left': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
|
264 |
'offset_top': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
|
265 |
'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}), |
|
266 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'aboutblock_set'", 'to': "orm['page.Page']"}), |
|
267 |
'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
|
268 |
'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) |
|
269 |
}, |
|
270 |
'page.applicationcontent': { |
|
271 |
'Meta': {'ordering': "['ordering']", 'object_name': 'ApplicationContent', 'db_table': "'page_page_applicationcontent'"}, |
|
272 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
273 |
'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}), |
|
274 |
'parameters': ('feincms.contrib.fields.JSONField', [], {'null': 'True'}), |
|
275 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'applicationcontent_set'", 'to': "orm['page.Page']"}), |
|
276 |
'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
|
277 |
'urlconf_path': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
|
278 |
}, |
|
279 |
'page.imagecontent': { |
|
280 |
'Meta': {'ordering': "['ordering']", 'object_name': 'ImageContent', 'db_table': "'page_page_imagecontent'"}, |
|
281 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
282 |
'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}), |
|
283 |
'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}), |
|
284 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'imagecontent_set'", 'to': "orm['page.Page']"}), |
|
285 |
'position': ('django.db.models.fields.CharField', [], {'default': "'default'", 'max_length': '10'}), |
|
286 |
'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}) |
|
287 |
}, |
|
288 |
'page.loginform': { |
|
289 |
'Meta': {'ordering': "['ordering']", 'object_name': 'LoginForm', 'db_table': "'page_page_loginform'"}, |
|
290 |
'action_url': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
|
291 |
'display_forgot_password': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
|
292 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
293 |
'next_url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
|
294 |
'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}), |
|
295 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'loginform_set'", 'to': "orm['page.Page']"}), |
|
296 |
'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
|
297 |
'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}) |
|
298 |
}, |
|
299 |
'page.mediafilecontent': { |
|
300 |
'Meta': {'ordering': "['ordering']", 'object_name': 'MediaFileContent', 'db_table': "'page_page_mediafilecontent'"}, |
|
301 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
302 |
'mediafile': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'related_name': "'+'", 'to': "orm['medialibrary.MediaFile']"}), |
|
303 |
'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}), |
|
304 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'mediafilecontent_set'", 'to': "orm['page.Page']"}), |
|
305 |
'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
|
306 |
'type': ('django.db.models.fields.CharField', [], {'default': "'lightbox'", 'max_length': '20'}) |
|
307 |
}, |
|
308 |
'page.page': { |
|
309 |
'Meta': {'ordering': "['tree_id', 'lft']", 'object_name': 'Page'}, |
|
310 |
'_cached_url': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '300', 'db_index': 'True', 'blank': 'True'}), |
|
311 |
'_content_title': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
|
312 |
'_page_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}), |
|
313 |
'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
|
314 |
'creation_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), |
|
315 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
316 |
'in_navigation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
|
317 |
'language': ('django.db.models.fields.CharField', [], {'default': "'en'", 'max_length': '10'}), |
|
318 |
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
|
319 |
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
|
320 |
'meta_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
|
321 |
'meta_keywords': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
|
322 |
'modification_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True'}), |
|
323 |
'navigation_extension': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), |
|
324 |
'override_url': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), |
|
325 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['page.Page']"}), |
|
326 |
'publication_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 2, 22, 16, 0)'}), |
|
327 |
'publication_end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
|
328 |
'redirect_to': ('django.db.models.fields.CharField', [], {'max_length': '300', 'blank': 'True'}), |
|
329 |
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
|
330 |
'site': ('django.db.models.fields.related.ForeignKey', [], {'default': '1', 'to': "orm['sites.Site']"}), |
|
331 |
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '150', 'db_index': 'True'}), |
|
332 |
'symlinked_page': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'page_page_symlinks'", 'null': 'True', 'to': "orm['page.Page']"}), |
|
333 |
'template_key': ('django.db.models.fields.CharField', [], {'default': "'basic'", 'max_length': '255'}), |
|
334 |
'title': ('django.db.models.fields.CharField', [], {'max_length': '200'}), |
|
335 |
'translation_of': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'translations'", 'null': 'True', 'to': "orm['page.Page']"}), |
|
336 |
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
|
337 |
}, |
|
338 |
'page.rawcontent': { |
|
339 |
'Meta': {'ordering': "['ordering']", 'object_name': 'RawContent', 'db_table': "'page_page_rawcontent'"}, |
|
340 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
341 |
'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}), |
|
342 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rawcontent_set'", 'to': "orm['page.Page']"}), |
|
343 |
'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
|
344 |
'text': ('django.db.models.fields.TextField', [], {'blank': 'True'}) |
|
345 |
}, |
|
346 |
'page.richtextcontent': { |
|
347 |
'Meta': {'ordering': "['ordering']", 'object_name': 'RichTextContent', 'db_table': "'page_page_richtextcontent'"}, |
|
348 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
349 |
'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}), |
|
350 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'richtextcontent_set'", 'to': "orm['page.Page']"}), |
|
351 |
'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
|
352 |
'text': ('django.db.models.fields.TextField', [], {'blank': 'True'}) |
|
353 |
}, |
|
354 |
'page.sectioncontent': { |
|
355 |
'Meta': {'ordering': "['ordering']", 'object_name': 'SectionContent', 'db_table': "'page_page_sectioncontent'"}, |
|
356 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
357 |
'mediafile': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'page_sectioncontent_set'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}), |
|
358 |
'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}), |
|
359 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'sectioncontent_set'", 'to': "orm['page.Page']"}), |
|
360 |
'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
|
361 |
'richtext': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
|
362 |
'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), |
|
363 |
'type': ('django.db.models.fields.CharField', [], {'default': "'block'", 'max_length': '10'}) |
|
364 |
}, |
|
365 |
'page.templatecontent': { |
|
366 |
'Meta': {'ordering': "['ordering']", 'object_name': 'TemplateContent', 'db_table': "'page_page_templatecontent'"}, |
|
367 |
'filename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
|
368 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
369 |
'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}), |
|
370 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'templatecontent_set'", 'to': "orm['page.Page']"}), |
|
371 |
'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}) |
|
372 |
}, |
|
373 |
'page.twitterfeed': { |
|
374 |
'Meta': {'ordering': "['ordering']", 'object_name': 'TwitterFeed', 'db_table': "'page_page_twitterfeed'"}, |
|
375 |
'account': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), |
|
376 |
'avatar': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
|
377 |
'extra_params': ('django.db.models.fields.TextField', [], {'blank': 'True'}), |
|
378 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
379 |
'limit': ('django.db.models.fields.PositiveIntegerField', [], {'default': '10'}), |
|
380 |
'nots': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), |
|
381 |
'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}), |
|
382 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'twitterfeed_set'", 'to': "orm['page.Page']"}), |
|
383 |
'query': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), |
|
384 |
'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
|
385 |
'replies': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
|
386 |
'retweets': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
|
387 |
'tag': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), |
|
388 |
'title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}) |
|
389 |
}, |
|
390 |
'page.videocontent': { |
|
391 |
'Meta': {'ordering': "['ordering']", 'object_name': 'VideoContent', 'db_table': "'page_page_videocontent'"}, |
|
392 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
393 |
'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}), |
|
394 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'videocontent_set'", 'to': "orm['page.Page']"}), |
|
395 |
'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
|
396 |
'video': ('django.db.models.fields.URLField', [], {'max_length': '200'}) |
|
397 |
}, |
|
398 |
'page.videosection': { |
|
399 |
'Meta': {'ordering': "['ordering']", 'object_name': 'VideoSection', 'db_table': "'page_page_videosection'"}, |
|
400 |
'alt_text': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
|
401 |
'extra_url_params': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), |
|
402 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
403 |
'image': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_image_for_video_section'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}), |
|
404 |
'image_hover': ('feincms.module.medialibrary.fields.MediaFileForeignKey', [], {'blank': 'True', 'related_name': "'as_hover_for_video_section'", 'null': 'True', 'to': "orm['medialibrary.MediaFile']"}), |
|
405 |
'ordering': ('django.db.models.fields.IntegerField', [], {'default': '0'}), |
|
406 |
'parent': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'videosection_set'", 'to': "orm['page.Page']"}), |
|
407 |
'region': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
|
408 |
'section_title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), |
|
409 |
'video_height': ('django.db.models.fields.PositiveIntegerField', [], {'default': '550'}), |
|
410 |
'video_link': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), |
|
411 |
'video_title': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}), |
|
412 |
'video_width': ('django.db.models.fields.PositiveIntegerField', [], {'default': '700'}) |
|
413 |
}, |
|
414 |
'sites.site': { |
|
415 |
'Meta': {'ordering': "('domain',)", 'object_name': 'Site', 'db_table': "'django_site'"}, |
|
416 |
'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
|
417 |
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
|
418 |
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
|
419 |
} |
|
420 |
} |
|
421 |
|
|
422 |
complete_apps = ['page'] |
b/cloudcms/models.py | ||
---|---|---|
1 |
from django.db import models |
|
2 |
from django.conf import settings |
|
3 |
from django.contrib.sites import models as sites_models |
|
4 |
|
|
5 |
from feincms.module.medialibrary.fields import MediaFileForeignKey |
|
6 |
from feincms.module.medialibrary.models import MediaFile |
|
7 |
|
|
8 |
|
|
9 |
class Application(models.Model): |
|
10 |
code = models.CharField('Identifier', max_length=100, null=False, blank=False, |
|
11 |
help_text="Just a codename of the application, to be used in "\ |
|
12 |
"several places where no free text is allowed"\ |
|
13 |
"(e.g. urls, paths, etc)") |
|
14 |
title = models.CharField(max_length=255, null=False, blank=False, |
|
15 |
help_text="The title of the application") |
|
16 |
|
|
17 |
logo = MediaFileForeignKey(MediaFile, blank=True, null=True) |
|
18 |
site = models.ForeignKey(sites_models.Site) |
|
19 |
app_url = models.URLField(help_text="The url of the application UI (not "\ |
|
20 |
"the cms", verify_exists=False, blank=True, null=True) |
|
21 |
|
|
22 |
linked_in_username = models.CharField(max_length=255, blank=True) |
|
23 |
twitter_username = models.CharField(max_length=255, blank=True) |
|
24 |
facebook_username = models.CharField(max_length=255, blank=True) |
|
25 |
|
|
26 |
show_twitter_feed_on_top = models.BooleanField(default=False) |
|
27 |
|
|
28 |
@classmethod |
|
29 |
def current(cls): |
|
30 |
return cls.objects.get(site__pk=settings.SITE_ID) |
|
31 |
|
|
32 |
def __unicode__(self): |
|
33 |
return self.title |
|
34 |
|
|
35 |
# hook for feincms configuration, is this appropriate place ??? who knows |
|
36 |
from cloudcms.cms import * |
|
37 |
|
b/cloudcms/static/cloudcms/css/okeanos.css | ||
---|---|---|
1 |
body { |
|
2 |
background-color: #4085A5; |
|
3 |
background-position: 20px 34px; |
|
4 |
} |
b/cloudcms/static/cloudcms/css/servicesbar.css | ||
---|---|---|
1 |
/*! |
|
2 |
* Bootstrap @VERSION |
|
3 |
* |
|
4 |
* Copyright 2011 Twitter, Inc |
|
5 |
* Licensed under the Apache License v2.0 |
|
6 |
* http://www.apache.org/licenses/LICENSE-2.0 |
|
7 |
* |
|
8 |
* Designed and built with all the love in the world @twitter by @mdo and @fat. |
|
9 |
* Date: @DATE |
|
10 |
*/ |
|
11 |
/* Reset.less |
|
12 |
* Props to Eric Meyer (meyerweb.com) for his CSS reset file. We're using an adapted version here that cuts out some of the reset HTML elements we will never need here (i.e., dfn, samp, etc). |
|
13 |
* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */ |
|
14 |
html, body { |
|
15 |
margin: 0; |
|
16 |
padding: 0; |
|
17 |
} |
|
18 |
h1, |
|
19 |
h2, |
|
20 |
h3, |
|
21 |
h4, |
|
22 |
h5, |
|
23 |
h6, |
|
24 |
p, |
|
25 |
blockquote, |
|
26 |
pre, |
|
27 |
a, |
|
28 |
abbr, |
|
29 |
acronym, |
|
30 |
address, |
|
31 |
cite, |
|
32 |
code, |
|
33 |
del, |
|
34 |
dfn, |
|
35 |
em, |
|
36 |
img, |
|
37 |
q, |
|
38 |
s, |
|
39 |
samp, |
|
40 |
small, |
|
41 |
strike, |
|
42 |
strong, |
|
43 |
sub, |
|
44 |
sup, |
|
45 |
tt, |
|
46 |
var, |
|
47 |
dd, |
|
48 |
dl, |
|
49 |
dt, |
|
50 |
li, |
|
51 |
ol, |
|
52 |
ul, |
|
53 |
fieldset, |
|
54 |
form, |
|
55 |
label, |
|
56 |
legend, |
|
57 |
button, |
|
58 |
table, |
|
59 |
caption, |
|
60 |
tbody, |
|
61 |
tfoot, |
|
62 |
thead, |
|
63 |
tr, |
|
64 |
th, |
|
65 |
td { |
|
66 |
margin: 0; |
|
67 |
padding: 0; |
|
68 |
border: 0; |
|
69 |
font-weight: normal; |
|
70 |
font-style: normal; |
|
71 |
font-size: 100%; |
|
72 |
line-height: 1; |
|
73 |
font-family: inherit; |
|
74 |
} |
|
75 |
table { |
|
76 |
border-collapse: collapse; |
|
77 |
border-spacing: 0; |
|
78 |
} |
|
79 |
ol, ul { |
|
80 |
list-style: none; |
|
81 |
} |
|
82 |
q:before, |
|
83 |
q:after, |
|
84 |
blockquote:before, |
|
85 |
blockquote:after { |
|
86 |
content: ""; |
|
87 |
} |
|
88 |
html { |
|
89 |
overflow-y: scroll; |
|
90 |
font-size: 100%; |
|
91 |
-webkit-text-size-adjust: 100%; |
|
92 |
-ms-text-size-adjust: 100%; |
|
93 |
} |
|
94 |
a:focus { |
|
95 |
outline: thin dotted; |
|
96 |
} |
|
97 |
a:hover, a:active { |
|
98 |
outline: 0; |
|
99 |
} |
|
100 |
article, |
|
101 |
aside, |
|
102 |
details, |
|
103 |
figcaption, |
|
104 |
figure, |
|
105 |
footer, |
|
106 |
header, |
|
107 |
hgroup, |
|
108 |
nav, |
|
109 |
section { |
|
110 |
display: block; |
|
111 |
} |
|
112 |
audio, canvas, video { |
|
113 |
display: inline-block; |
|
114 |
*display: inline; |
|
115 |
*zoom: 1; |
|
116 |
} |
|
117 |
audio:not([controls]) { |
|
118 |
display: none; |
|
119 |
} |
|
120 |
sub, sup { |
|
121 |
font-size: 75%; |
|
122 |
line-height: 0; |
|
123 |
position: relative; |
|
124 |
vertical-align: baseline; |
|
125 |
} |
|
126 |
sup { |
|
127 |
top: -0.5em; |
|
128 |
} |
|
129 |
sub { |
|
130 |
bottom: -0.25em; |
|
131 |
} |
|
132 |
img { |
|
133 |
border: 0; |
|
134 |
-ms-interpolation-mode: bicubic; |
|
135 |
} |
|
136 |
button, |
|
137 |
input, |
|
138 |
select, |
|
139 |
textarea { |
|
140 |
font-size: 100%; |
|
141 |
margin: 0; |
|
142 |
vertical-align: baseline; |
|
143 |
*vertical-align: middle; |
|
144 |
} |
|
145 |
button, input { |
|
146 |
line-height: normal; |
|
147 |
*overflow: visible; |
|
148 |
} |
|
149 |
button::-moz-focus-inner, input::-moz-focus-inner { |
|
150 |
border: 0; |
|
151 |
padding: 0; |
|
152 |
} |
|
153 |
button, |
|
154 |
input[type="button"], |
|
155 |
input[type="reset"], |
|
156 |
input[type="submit"] { |
|
157 |
cursor: pointer; |
|
158 |
-webkit-appearance: button; |
|
159 |
} |
Also available in: Unified diff