parent
f5c7df61a1
commit
0ba8029c4e
74 changed files with 5897 additions and 147 deletions
@ -0,0 +1,5 @@ |
||||
#!/usr/bin/env python |
||||
# -*- coding: utf-8 -*- |
||||
__author__ = 'Iacopo Spalletti' |
||||
__email__ = 'i.spalletti@nephila.it' |
||||
__version__ = '0.4.0.post1' |
||||
@ -0,0 +1,98 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from admin_enhancer.admin import EnhancedModelAdminMixin |
||||
from cms.admin.placeholderadmin import PlaceholderAdminMixin, FrontendEditableAdminMixin |
||||
from copy import deepcopy |
||||
from django.contrib import admin |
||||
from django.conf import settings |
||||
from django.contrib.auth import get_user_model |
||||
from parler.admin import TranslatableAdmin |
||||
|
||||
from aldryn_apphooks_config.admin import BaseAppHookConfig, ModelAppHookConfig |
||||
|
||||
|
||||
from .forms import PostAdminForm |
||||
from .models import Post, BlogCategory, BlogConfig |
||||
from .settings import get_setting |
||||
|
||||
|
||||
class BlogCategoryAdmin(EnhancedModelAdminMixin, TranslatableAdmin): |
||||
def get_prepopulated_fields(self, request, obj=None): |
||||
return {'slug': ('name',)} |
||||
|
||||
class Media: |
||||
css = { |
||||
'all': ('%sblog/css/%s' % (settings.STATIC_URL, |
||||
'blog_admin.css'),) |
||||
} |
||||
|
||||
|
||||
class PostAdmin(EnhancedModelAdminMixin, FrontendEditableAdminMixin, |
||||
PlaceholderAdminMixin, TranslatableAdmin, admin.ModelAdmin): |
||||
form = PostAdminForm |
||||
list_display = ['title', 'author', 'date_published', 'date_published_end'] |
||||
date_hierarchy = 'date_published' |
||||
raw_id_fields = ['author'] |
||||
frontend_editable_fields = ('title', 'abstract', 'post_text') |
||||
enhance_exclude = ('main_image', 'tags') |
||||
_fieldsets = [ |
||||
(None, { |
||||
'fields': [('title', 'categories', 'publish'), 'abstract'] |
||||
}), |
||||
('Info', { |
||||
'fields': (['slug', 'tags'], |
||||
('date_published', 'date_published_end', 'enable_comments')), |
||||
'classes': ('collapse',) |
||||
}), |
||||
('Immagine', { |
||||
'fields': (('main_image', 'main_image_thumbnail', 'main_image_full'),), |
||||
'classes': ('collapse',) |
||||
}), |
||||
('SEO', { |
||||
'fields': [('meta_description', 'meta_title', 'meta_keywords')], |
||||
'classes': ('collapse',) |
||||
}), |
||||
] |
||||
|
||||
def get_fieldsets(self, request, obj=None): |
||||
fsets = deepcopy(self._fieldsets) |
||||
if not get_setting('USE_PLACEHOLDER'): |
||||
fsets[0][1]['fields'].append('post_text') |
||||
if get_setting('MULTISITE'): |
||||
fsets[1][1]['fields'][0].append('sites') |
||||
if request.user.is_superuser: |
||||
fsets[1][1]['fields'][0].append('author') |
||||
return fsets |
||||
|
||||
def get_prepopulated_fields(self, request, obj=None): |
||||
return {'slug': ('title',)} |
||||
|
||||
def save_model(self, request, obj, form, change): |
||||
if not obj.author_id and get_setting('AUTHOR_DEFAULT'): |
||||
if get_setting('AUTHOR_DEFAULT') is True: |
||||
user = request.user |
||||
else: |
||||
user = get_user_model().objects.get(username=get_setting('AUTHOR_DEFAULT')) |
||||
obj.author = user |
||||
super(PostAdmin, self).save_model(request, obj, form, change) |
||||
|
||||
class Media: |
||||
css = { |
||||
'all': ('%sblog/css/%s' % (settings.STATIC_URL, |
||||
'blog_admin.css'),) |
||||
} |
||||
|
||||
|
||||
class BlogConfigAdmin( |
||||
PlaceholderAdminMixin, |
||||
BaseAppHookConfig, |
||||
TranslatableAdmin |
||||
): |
||||
def get_config_fields(self): |
||||
return ( |
||||
'app_title', 'category_slug', |
||||
'paginate_by' ) |
||||
|
||||
admin.site.register(BlogConfig, BlogConfigAdmin) |
||||
|
||||
admin.site.register(BlogCategory, BlogCategoryAdmin) |
||||
admin.site.register(Post, PostAdmin) |
||||
@ -0,0 +1,15 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from aldryn_apphooks_config.app_base import CMSConfigApp |
||||
from cms.apphook_pool import apphook_pool |
||||
from django.utils.translation import ugettext_lazy as _ |
||||
|
||||
from .models import BlogConfig |
||||
|
||||
|
||||
class BlogApp(CMSConfigApp): |
||||
app_config = BlogConfig |
||||
name = _('Blog') |
||||
urls = ['blog.urls'] |
||||
app_name = 'blog' |
||||
|
||||
apphook_pool.register(BlogApp) |
||||
@ -0,0 +1,82 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
from __future__ import unicode_literals |
||||
|
||||
from django import forms |
||||
from django.conf import settings |
||||
from django.db import models |
||||
from django.utils.translation import ugettext_lazy as _ |
||||
|
||||
from aldryn_apphooks_config.utils import setup_config |
||||
from aldryn_apphooks_config.models import AppHookConfig |
||||
from app_data import AppDataForm |
||||
from parler.models import TranslatableModel |
||||
from parler.models import TranslatedFields |
||||
|
||||
from cms.models.fields import PlaceholderField |
||||
|
||||
|
||||
class BlogConfig(TranslatableModel, AppHookConfig): |
||||
"""Adds some translatable, per-app-instance fields.""" |
||||
translations = TranslatedFields( |
||||
app_title=models.CharField(_('application title'), max_length=234), |
||||
) |
||||
|
||||
category_slug = models.CharField( |
||||
_('Category slug'), |
||||
blank=True, |
||||
max_length=255, |
||||
help_text=_('Only category to display')) |
||||
|
||||
# blog_PAGINATE_BY |
||||
paginate_by = models.PositiveIntegerField( |
||||
_('Paginate size'), |
||||
blank=False, |
||||
default=5, |
||||
help_text=_('When paginating list views, how many articles per page?'), |
||||
) |
||||
|
||||
placeholder_base_top = PlaceholderField( |
||||
'newsblog_base_top', |
||||
related_name='blog_base_top', |
||||
) |
||||
|
||||
placeholder_base_sidebar = PlaceholderField( |
||||
'newsblog_base_sidebar', |
||||
related_name='blog_base_sidebar', |
||||
) |
||||
|
||||
placeholder_list_top = PlaceholderField( |
||||
'newsblog_list_top', |
||||
related_name='blog_list_top', |
||||
) |
||||
|
||||
placeholder_list_footer = PlaceholderField( |
||||
'newsblog_list_footer', |
||||
related_name='blog_list_footer', |
||||
) |
||||
|
||||
placeholder_detail_top = PlaceholderField( |
||||
'newsblog_detail_top', |
||||
related_name='blog_detail_top', |
||||
) |
||||
|
||||
placeholder_detail_bottom = PlaceholderField( |
||||
'newsblog_detail_bottom', |
||||
related_name='blog_detail_bottom', |
||||
) |
||||
|
||||
placeholder_detail_footer = PlaceholderField( |
||||
'newsblog_detail_footer', |
||||
related_name='blog_detail_footer', |
||||
) |
||||
|
||||
def get_app_title(self): |
||||
return getattr(self, 'app_title', _('untitled')) |
||||
|
||||
|
||||
class BlogConfigForm(AppDataForm): |
||||
default_published = forms.BooleanField( |
||||
label=_(u'Post published by default'), required=False, |
||||
initial=getattr(settings, 'BLOG_DEFAULT_PUBLISHED', True)) |
||||
setup_config(BlogConfigForm, BlogConfig) |
||||
@ -0,0 +1,113 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django.utils.translation import ugettext_lazy as _ |
||||
|
||||
from cms.models.pluginmodel import CMSPlugin |
||||
from cms.plugin_base import CMSPluginBase |
||||
from cms.plugin_pool import plugin_pool |
||||
|
||||
from .models import AuthorEntriesPlugin, LatestPostsPlugin, Post, BlogCategory |
||||
from .forms import LatestEntriesForm |
||||
from .settings import get_setting |
||||
|
||||
|
||||
class BlogPlugin(CMSPluginBase): |
||||
module = 'Blog' |
||||
|
||||
|
||||
class BlogLatestEntriesPlugin(BlogPlugin): |
||||
""" |
||||
Non cached plugin which returns the latest posts taking into account the |
||||
user / toolbar state |
||||
""" |
||||
render_template = 'blog/plugins/latest_entries.html' |
||||
name = _('Latest Blog Articles') |
||||
model = LatestPostsPlugin |
||||
form = LatestEntriesForm |
||||
filter_horizontal = ('categories',) |
||||
cache = False |
||||
|
||||
def render(self, context, instance, placeholder): |
||||
context = super(BlogLatestEntriesPlugin, self).render(context, instance, placeholder) |
||||
context['posts_list'] = instance.get_posts(context['request']) |
||||
|
||||
if instance.categories.exists(): |
||||
context['category'] = instance.categories.all()[0].slug |
||||
else: |
||||
context['category'] = "all" |
||||
|
||||
context['TRUNCWORDS_COUNT'] = get_setting('POSTS_LIST_TRUNCWORDS_COUNT') |
||||
return context |
||||
|
||||
|
||||
class BlogLatestEntriesPluginCached(BlogPlugin): |
||||
""" |
||||
Cached plugin which returns the latest published posts |
||||
""" |
||||
render_template = 'blog/plugins/latest_entries.html' |
||||
name = _('Latest Blog Articles') |
||||
model = LatestPostsPlugin |
||||
form = LatestEntriesForm |
||||
filter_horizontal = ('categories',) |
||||
|
||||
def render(self, context, instance, placeholder): |
||||
context = super(BlogLatestEntriesPluginCached, self).render(context, instance, placeholder) |
||||
context['posts_list'] = instance.get_posts() |
||||
context['TRUNCWORDS_COUNT'] = get_setting('POSTS_LIST_TRUNCWORDS_COUNT') |
||||
return context |
||||
|
||||
|
||||
class BlogAuthorPostsPlugin(BlogPlugin): |
||||
module = _('Blog') |
||||
name = _('Author Blog Articles') |
||||
model = AuthorEntriesPlugin |
||||
form = LatestEntriesForm |
||||
render_template = 'blog/plugins/authors.html' |
||||
filter_horizontal = ['authors'] |
||||
|
||||
def render(self, context, instance, placeholder): |
||||
context = super(BlogAuthorPostsPlugin, self).render(context, instance, placeholder) |
||||
context['authors_list'] = instance.get_authors() |
||||
return context |
||||
|
||||
|
||||
class BlogTagsPlugin(BlogPlugin): |
||||
module = _('Blog') |
||||
name = _('Tags') |
||||
model = CMSPlugin |
||||
render_template = 'blog/plugins/tags.html' |
||||
|
||||
def render(self, context, instance, placeholder): |
||||
context = super(BlogTagsPlugin, self).render(context, instance, placeholder) |
||||
context['tags'] = Post.objects.tag_cloud(queryset=Post.objects.published()) |
||||
return context |
||||
|
||||
|
||||
class BlogCategoryPlugin(BlogPlugin): |
||||
module = _('Blog') |
||||
name = _('Categories') |
||||
model = CMSPlugin |
||||
render_template = 'blog/plugins/categories.html' |
||||
|
||||
def render(self, context, instance, placeholder): |
||||
context = super(BlogCategoryPlugin, self).render(context, instance, placeholder) |
||||
context['categories'] = BlogCategory.objects.all() |
||||
return context |
||||
|
||||
|
||||
class BlogArchivePlugin(BlogPlugin): |
||||
module = _('Blog') |
||||
name = _('Archive') |
||||
model = CMSPlugin |
||||
render_template = 'blog/plugins/archive.html' |
||||
|
||||
def render(self, context, instance, placeholder): |
||||
context = super(BlogArchivePlugin, self).render(context, instance, placeholder) |
||||
context['dates'] = Post.objects.get_months(queryset=Post.objects.published()) |
||||
return context |
||||
|
||||
|
||||
plugin_pool.register_plugin(BlogLatestEntriesPlugin) |
||||
plugin_pool.register_plugin(BlogAuthorPostsPlugin) |
||||
plugin_pool.register_plugin(BlogTagsPlugin) |
||||
plugin_pool.register_plugin(BlogArchivePlugin) |
||||
plugin_pool.register_plugin(BlogCategoryPlugin) |
||||
@ -0,0 +1,48 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from cms.toolbar_base import CMSToolbar |
||||
from cms.toolbar_pool import toolbar_pool |
||||
from django.core.urlresolvers import reverse |
||||
from django.utils.translation import ugettext_lazy as _ |
||||
|
||||
|
||||
from .models import BLOG_CURRENT_POST_IDENTIFIER |
||||
|
||||
|
||||
@toolbar_pool.register |
||||
class BlogToolbar(CMSToolbar): |
||||
|
||||
def populate(self): |
||||
# TODO: Readd if not self.is_current_app condition when CMS 3.0.4 is released |
||||
if not self.request.user.has_perm('blog.add_post'): |
||||
return # pragma: no cover |
||||
admin_menu = self.toolbar.get_or_create_menu('blog', _('Blog')) |
||||
url = reverse('admin:blog_post_changelist') |
||||
admin_menu.add_modal_item(_('Post list'), url=url) |
||||
url = reverse('admin:blog_post_add') |
||||
admin_menu.add_modal_item(_('Add post'), url=url) |
||||
|
||||
current_post = getattr(self.request, BLOG_CURRENT_POST_IDENTIFIER, None) |
||||
if current_post and self.request.user.has_perm('blog.change_post'): # pragma: no cover |
||||
admin_menu.add_modal_item(_('Edit Post'), reverse( |
||||
'admin:blog_post_change', args=(current_post.pk,)), |
||||
active=True) |
||||
|
||||
def post_template_populate(self): |
||||
current_post = getattr(self.request, BLOG_CURRENT_POST_IDENTIFIER, None) |
||||
if current_post and self.request.user.has_perm('blog.change_post'): # pragma: no cover |
||||
# removing page meta menu, if present, to avoid confusion |
||||
try: # pragma: no cover |
||||
import djangocms_page_meta |
||||
menu = self.request.toolbar.get_or_create_menu('page') |
||||
pagemeta = menu.get_or_create_menu('pagemeta', 'meta') |
||||
menu.remove_item(pagemeta) |
||||
except ImportError: |
||||
pass |
||||
# removing page tags menu, if present, to avoid confusion |
||||
try: # pragma: no cover |
||||
import djangocms_page_tags |
||||
menu = self.request.toolbar.get_or_create_menu('page') |
||||
pagetags = menu.get_or_create_menu('pagetags', 'tags') |
||||
menu.remove_item(pagetags) |
||||
except ImportError: |
||||
pass |
||||
@ -0,0 +1,187 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from operator import itemgetter |
||||
from heapq import nlargest |
||||
from itertools import repeat, ifilter |
||||
|
||||
|
||||
class Counter(dict): |
||||
""" |
||||
Dict subclass for counting hashable objects. Sometimes called a bag |
||||
or multiset. Elements are stored as dictionary keys and their counts |
||||
are stored as dictionary values. |
||||
|
||||
>>> Counter('zyzygy') |
||||
Counter({'y': 3, 'z': 2, 'g': 1}) |
||||
""" |
||||
|
||||
def __init__(self, iterable=None, **kwds): |
||||
""" |
||||
Create a new, empty Counter object. And if given, count elements |
||||
from an input iterable. Or, initialize the count from another mapping |
||||
of elements to their counts. |
||||
|
||||
>>> c = Counter() # a new, empty counter |
||||
>>> c = Counter('gallahad') # a new counter from an iterable |
||||
>>> c = Counter({'a': 4, 'b': 2}) # a new counter from a mapping |
||||
>>> c = Counter(a=4, b=2) # a new counter from keyword args |
||||
|
||||
""" |
||||
self.update(iterable, **kwds) |
||||
|
||||
def __missing__(self, key): |
||||
return 0 |
||||
|
||||
def most_common(self, n=None): |
||||
"""List the n most common elements and their counts from the most |
||||
common to the least. If n is None, then list all element counts. |
||||
|
||||
>>> Counter('abracadabra').most_common(3) |
||||
[('a', 5), ('r', 2), ('b', 2)] |
||||
|
||||
""" |
||||
if n is None: |
||||
return sorted(self.iteritems(), key=itemgetter(1), reverse=True) |
||||
return nlargest(n, self.iteritems(), key=itemgetter(1)) |
||||
|
||||
def elements(self): |
||||
"""Iterator over elements repeating each as many times as its count. |
||||
|
||||
>>> c = Counter('ABCABC') |
||||
>>> sorted(c.elements()) |
||||
['A', 'A', 'B', 'B', 'C', 'C'] |
||||
|
||||
If an element's count has been set to zero or is a negative number, |
||||
elements() will ignore it. |
||||
|
||||
""" |
||||
for elem, count in self.iteritems(): |
||||
for _ in repeat(None, count): |
||||
yield elem |
||||
|
||||
# Override dict methods where the meaning changes for Counter objects. |
||||
|
||||
@classmethod |
||||
def fromkeys(cls, iterable, v=None): |
||||
raise NotImplementedError( |
||||
'Counter.fromkeys() is undefined. Use Counter(iterable) instead.') |
||||
|
||||
def update(self, iterable=None, **kwds): |
||||
"""Like dict.update() but add counts instead of replacing them. |
||||
|
||||
Source can be an iterable, a dictionary, or another Counter instance. |
||||
|
||||
>>> c = Counter('which') |
||||
>>> c.update('witch') # add elements from another iterable |
||||
>>> d = Counter('watch') |
||||
>>> c.update(d) # add elements from another counter |
||||
>>> c['h'] # four 'h' in which, witch, and watch |
||||
4 |
||||
|
||||
""" |
||||
if iterable is not None: |
||||
if hasattr(iterable, 'iteritems'): |
||||
if self: |
||||
self_get = self.get |
||||
for elem, count in iterable.iteritems(): |
||||
self[elem] = self_get(elem, 0) + count |
||||
else: |
||||
dict.update(self, iterable) # fast path when counter is empty |
||||
else: |
||||
self_get = self.get |
||||
for elem in iterable: |
||||
self[elem] = self_get(elem, 0) + 1 |
||||
if kwds: |
||||
self.update(kwds) |
||||
|
||||
def copy(self): |
||||
'Like dict.copy() but returns a Counter instance instead of a dict.' |
||||
return Counter(self) |
||||
|
||||
def __delitem__(self, elem): |
||||
'Like dict.__delitem__() but does not raise KeyError for missing values.' |
||||
if elem in self: |
||||
dict.__delitem__(self, elem) |
||||
|
||||
def __repr__(self): |
||||
if not self: |
||||
return '%s()' % self.__class__.__name__ |
||||
items = ', '.join(map('%r: %r'.__mod__, self.most_common())) |
||||
return '%s({%s})' % (self.__class__.__name__, items) |
||||
|
||||
# Multiset-style mathematical operations discussed in: |
||||
# Knuth TAOCP Volume II section 4.6.3 exercise 19 |
||||
# and at http://en.wikipedia.org/wiki/Multiset |
||||
# |
||||
# Outputs guaranteed to only include positive counts. |
||||
# |
||||
# To strip negative and zero counts, add-in an empty counter: |
||||
# c += Counter() |
||||
|
||||
def __add__(self, other): |
||||
"""Add counts from two counters. |
||||
|
||||
>>> Counter('abbb') + Counter('bcc') |
||||
Counter({'b': 4, 'c': 2, 'a': 1}) |
||||
|
||||
|
||||
""" |
||||
if not isinstance(other, Counter): |
||||
return NotImplemented |
||||
result = Counter() |
||||
for elem in set(self) | set(other): |
||||
newcount = self[elem] + other[elem] |
||||
if newcount > 0: |
||||
result[elem] = newcount |
||||
return result |
||||
|
||||
def __sub__(self, other): |
||||
""" Subtract count, but keep only results with positive counts. |
||||
|
||||
>>> Counter('abbbc') - Counter('bccd') |
||||
Counter({'b': 2, 'a': 1}) |
||||
|
||||
""" |
||||
if not isinstance(other, Counter): |
||||
return NotImplemented |
||||
result = Counter() |
||||
for elem in set(self) | set(other): |
||||
newcount = self[elem] - other[elem] |
||||
if newcount > 0: |
||||
result[elem] = newcount |
||||
return result |
||||
|
||||
def __or__(self, other): |
||||
"""Union is the maximum of value in either of the input counters. |
||||
|
||||
>>> Counter('abbb') | Counter('bcc') |
||||
Counter({'b': 3, 'c': 2, 'a': 1}) |
||||
|
||||
""" |
||||
if not isinstance(other, Counter): |
||||
return NotImplemented |
||||
_max = max |
||||
result = Counter() |
||||
for elem in set(self) | set(other): |
||||
newcount = _max(self[elem], other[elem]) |
||||
if newcount > 0: |
||||
result[elem] = newcount |
||||
return result |
||||
|
||||
def __and__(self, other): |
||||
""" Intersection is the minimum of corresponding counts. |
||||
|
||||
>>> Counter('abbb') & Counter('bcc') |
||||
Counter({'b': 1}) |
||||
|
||||
""" |
||||
if not isinstance(other, Counter): |
||||
return NotImplemented |
||||
_min = min |
||||
result = Counter() |
||||
if len(self) < len(other): |
||||
self, other = other, self |
||||
for elem in ifilter(self.__contains__, other): |
||||
newcount = _min(self[elem], other[elem]) |
||||
if newcount > 0: |
||||
result[elem] = newcount |
||||
return result |
||||
@ -0,0 +1,34 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django.contrib.sites.models import Site |
||||
from django.contrib.syndication.views import Feed |
||||
from django.core.urlresolvers import reverse |
||||
from django.utils.translation import ugettext as _ |
||||
|
||||
from .models import Post |
||||
|
||||
|
||||
class LatestEntriesFeed(Feed): |
||||
|
||||
def link(self): |
||||
return reverse('blog:posts-latest') |
||||
|
||||
def title(self): |
||||
return _('Blog articles on %(site_name)s') % {'site_name': Site.objects.get_current().name} |
||||
|
||||
def items(self, obj=None): |
||||
return Post.objects.published().order_by('-date_published')[:10] |
||||
|
||||
def item_title(self, item): |
||||
return item.safe_translation_getter('title') |
||||
|
||||
def item_description(self, item): |
||||
return item.safe_translation_getter('abstract') |
||||
|
||||
|
||||
class TagFeed(LatestEntriesFeed): |
||||
|
||||
def get_object(self, request, tag): |
||||
return tag # pragma: no cover |
||||
|
||||
def items(self, obj=None): |
||||
return Post.objects.published().filter(tags__slug=obj)[:10] |
||||
@ -0,0 +1,33 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django import forms |
||||
from django.conf import settings |
||||
from parler.forms import TranslatableModelForm |
||||
from taggit_autosuggest.widgets import TagAutoSuggest |
||||
|
||||
from .models import Post |
||||
|
||||
|
||||
class LatestEntriesForm(forms.ModelForm): |
||||
|
||||
def __init__(self, *args, **kwargs): |
||||
super(LatestEntriesForm, self).__init__(*args, **kwargs) |
||||
|
||||
class Media: |
||||
css = { |
||||
'all': ('%sblog/css/%s' % (settings.STATIC_URL, |
||||
'blog_admin.css'),) |
||||
} |
||||
|
||||
|
||||
class PostAdminForm(TranslatableModelForm): |
||||
|
||||
def __init__(self, *args, **kwargs): |
||||
super(PostAdminForm, self).__init__(*args, **kwargs) |
||||
original_attrs = self.fields['meta_description'].widget.attrs |
||||
original_attrs['maxlength'] = 160 |
||||
self.fields['meta_description'].widget = forms.TextInput(original_attrs) |
||||
self.fields['meta_title'].max_length = 70 |
||||
|
||||
class Meta: |
||||
model = Post |
||||
exclude = () |
||||
Binary file not shown.
@ -0,0 +1,279 @@ |
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER |
||||
# This file is distributed under the same license as the PACKAGE package. |
||||
# |
||||
# Translators: |
||||
# Bashar Al-Abdulhadi, 2014 |
||||
msgid "" |
||||
msgstr "" |
||||
"Project-Id-Version: djangocms-blog\n" |
||||
"Report-Msgid-Bugs-To: \n" |
||||
"POT-Creation-Date: 2014-11-30 12:49+0100\n" |
||||
"PO-Revision-Date: 2014-11-30 11:49+0000\n" |
||||
"Last-Translator: yakky <i.spalletti@nephila.it>\n" |
||||
"Language-Team: Arabic (http://www.transifex.com/projects/p/djangocms-blog/language/ar/)\n" |
||||
"MIME-Version: 1.0\n" |
||||
"Content-Type: text/plain; charset=UTF-8\n" |
||||
"Content-Transfer-Encoding: 8bit\n" |
||||
"Language: ar\n" |
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" |
||||
"X-Generator: Lokalize 1.5\n" |
||||
|
||||
#: cms_app.py:8 cms_plugins.py:32 cms_plugins.py:45 cms_plugins.py:56 |
||||
#: cms_plugins.py:67 cms_toolbar.py:18 |
||||
msgid "Blog" |
||||
msgstr "المدونة" |
||||
|
||||
#: cms_plugins.py:20 |
||||
msgid "Latest Blog Articles" |
||||
msgstr "آخر مواضيع المدونة" |
||||
|
||||
#: cms_plugins.py:33 |
||||
msgid "Author Blog Articles" |
||||
msgstr "ناشر مواضيع المدونة" |
||||
|
||||
#: cms_plugins.py:46 templates/djangocms_blog/plugins/tags.html:4 |
||||
msgid "Tags" |
||||
msgstr "علامات" |
||||
|
||||
#: cms_plugins.py:57 templates/djangocms_blog/plugins/categories.html:4 |
||||
msgid "Categories" |
||||
msgstr "الأقسام" |
||||
|
||||
#: cms_plugins.py:68 templates/djangocms_blog/post_list.html:12 |
||||
#: templates/djangocms_blog/plugins/archive.html:4 |
||||
msgid "Archive" |
||||
msgstr "الأرشيف" |
||||
|
||||
#: cms_toolbar.py:20 |
||||
msgid "Post list" |
||||
msgstr "قائمة المواضيع" |
||||
|
||||
#: cms_toolbar.py:22 |
||||
msgid "Add post" |
||||
msgstr "إضافة موضوع" |
||||
|
||||
#: cms_toolbar.py:26 |
||||
msgid "Edit Post" |
||||
msgstr "التعديل على موضوع" |
||||
|
||||
#: feeds.py:16 |
||||
#, python-format |
||||
msgid "Blog articles on %(site_name)s" |
||||
msgstr "مواضيع المدونة على %(site_name)s" |
||||
|
||||
#: models.py:31 |
||||
msgid "parent" |
||||
msgstr "" |
||||
|
||||
#: models.py:33 |
||||
msgid "created at" |
||||
msgstr "" |
||||
|
||||
#: models.py:34 |
||||
msgid "modified at" |
||||
msgstr "" |
||||
|
||||
#: models.py:37 |
||||
msgid "name" |
||||
msgstr "" |
||||
|
||||
#: models.py:38 models.py:105 |
||||
msgid "slug" |
||||
msgstr "" |
||||
|
||||
#: models.py:45 |
||||
msgid "blog category" |
||||
msgstr "" |
||||
|
||||
#: models.py:46 |
||||
msgid "blog categories" |
||||
msgstr "" |
||||
|
||||
#: models.py:70 |
||||
msgid "Author" |
||||
msgstr "" |
||||
|
||||
#: models.py:75 |
||||
msgid "Published Since" |
||||
msgstr "" |
||||
|
||||
#: models.py:77 |
||||
msgid "Published Until" |
||||
msgstr "" |
||||
|
||||
#: models.py:79 |
||||
msgid "Publish" |
||||
msgstr "" |
||||
|
||||
#: models.py:80 |
||||
msgid "category" |
||||
msgstr "" |
||||
|
||||
#: models.py:82 |
||||
msgid "Main image" |
||||
msgstr "" |
||||
|
||||
#: models.py:85 |
||||
msgid "Main image thumbnail" |
||||
msgstr "" |
||||
|
||||
#: models.py:89 |
||||
msgid "Main image full" |
||||
msgstr "" |
||||
|
||||
#: models.py:93 |
||||
msgid "Enable comments on post" |
||||
msgstr "" |
||||
|
||||
#: models.py:96 |
||||
msgid "Site(s)" |
||||
msgstr "" |
||||
|
||||
#: models.py:98 |
||||
msgid "" |
||||
"Select sites in which to show the post. If none is set it will be visible in" |
||||
" all the configured sites." |
||||
msgstr "" |
||||
|
||||
#: models.py:104 |
||||
msgid "Title" |
||||
msgstr "" |
||||
|
||||
#: models.py:106 |
||||
msgid "Abstract" |
||||
msgstr "" |
||||
|
||||
#: models.py:107 |
||||
msgid "Post meta description" |
||||
msgstr "" |
||||
|
||||
#: models.py:109 |
||||
msgid "Post meta keywords" |
||||
msgstr "" |
||||
|
||||
#: models.py:111 |
||||
msgid "Post meta title" |
||||
msgstr "" |
||||
|
||||
#: models.py:112 |
||||
msgid "used in title tag and social sharing" |
||||
msgstr "" |
||||
|
||||
#: models.py:115 |
||||
msgid "Text" |
||||
msgstr "" |
||||
|
||||
#: models.py:178 |
||||
msgid "blog article" |
||||
msgstr "" |
||||
|
||||
#: models.py:179 |
||||
msgid "blog articles" |
||||
msgstr "" |
||||
|
||||
#: models.py:222 models.py:250 |
||||
msgid "Articles" |
||||
msgstr "" |
||||
|
||||
#: models.py:223 |
||||
msgid "The number of latests articles to be displayed." |
||||
msgstr "" |
||||
|
||||
#: models.py:225 |
||||
msgid "Show only the blog articles tagged with chosen tags." |
||||
msgstr "" |
||||
|
||||
#: models.py:227 |
||||
msgid "Show only the blog articles tagged with chosen categories." |
||||
msgstr "" |
||||
|
||||
#: models.py:246 templates/djangocms_blog/plugins/authors.html:3 |
||||
msgid "Authors" |
||||
msgstr "" |
||||
|
||||
#: models.py:251 |
||||
msgid "The number of author articles to be displayed." |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/post_detail.html:18 |
||||
#: templates/djangocms_blog/includes/blog_item.html:11 |
||||
msgid "by" |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:11 |
||||
msgid "Articles by" |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:13 |
||||
msgid "Tag" |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:14 |
||||
msgid "Category" |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:21 |
||||
#: templates/djangocms_blog/plugins/archive.html:27 |
||||
#: templates/djangocms_blog/plugins/authors.html:15 |
||||
#: templates/djangocms_blog/plugins/categories.html:16 |
||||
#: templates/djangocms_blog/plugins/latest_entries.html:7 |
||||
#: templates/djangocms_blog/plugins/tags.html:16 |
||||
msgid "No article found." |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:24 |
||||
msgid "Back" |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:30 |
||||
msgid "previous" |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:33 |
||||
msgid "Page" |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:33 |
||||
msgid "of" |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:36 |
||||
msgid "next" |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/includes/blog_item.html:46 |
||||
msgid "read more" |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/plugins/archive.html:18 |
||||
#: templates/djangocms_blog/plugins/authors.html:10 |
||||
#: templates/djangocms_blog/plugins/categories.html:11 |
||||
#: templates/djangocms_blog/plugins/tags.html:11 |
||||
#, python-format |
||||
msgid "1 article" |
||||
msgid_plural "%(articles)s articles" |
||||
msgstr[0] "" |
||||
msgstr[1] "" |
||||
msgstr[2] "" |
||||
msgstr[3] "" |
||||
msgstr[4] "" |
||||
msgstr[5] "" |
||||
|
||||
#: templates/djangocms_blog/plugins/archive.html:19 |
||||
#: templates/djangocms_blog/plugins/authors.html:11 |
||||
#: templates/djangocms_blog/plugins/categories.html:12 |
||||
#: templates/djangocms_blog/plugins/tags.html:12 |
||||
msgid "0 articles" |
||||
msgstr "" |
||||
|
||||
#~ msgid "blog post" |
||||
#~ msgstr "blog post" |
||||
|
||||
#~ msgid "Posts" |
||||
#~ msgstr "Posts" |
||||
|
||||
#~ msgid "Entries by" |
||||
#~ msgstr "Entries by" |
||||
|
||||
#~ msgid "No entry found." |
||||
#~ msgstr "No entry found." |
||||
Binary file not shown.
@ -0,0 +1,275 @@ |
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER |
||||
# This file is distributed under the same license as the PACKAGE package. |
||||
# |
||||
# Translators: |
||||
# Christoph Reimers <christoph@superservice-international.com>, 2014 |
||||
msgid "" |
||||
msgstr "" |
||||
"Project-Id-Version: djangocms-blog\n" |
||||
"Report-Msgid-Bugs-To: \n" |
||||
"POT-Creation-Date: 2014-11-30 12:49+0100\n" |
||||
"PO-Revision-Date: 2014-11-30 17:34+0000\n" |
||||
"Last-Translator: Christoph Reimers <christoph@superservice-international.com>\n" |
||||
"Language-Team: German (http://www.transifex.com/projects/p/djangocms-blog/language/de/)\n" |
||||
"MIME-Version: 1.0\n" |
||||
"Content-Type: text/plain; charset=UTF-8\n" |
||||
"Content-Transfer-Encoding: 8bit\n" |
||||
"Language: de\n" |
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
||||
"X-Generator: Lokalize 1.5\n" |
||||
|
||||
#: cms_app.py:8 cms_plugins.py:32 cms_plugins.py:45 cms_plugins.py:56 |
||||
#: cms_plugins.py:67 cms_toolbar.py:18 |
||||
msgid "Blog" |
||||
msgstr "Blog" |
||||
|
||||
#: cms_plugins.py:20 |
||||
msgid "Latest Blog Articles" |
||||
msgstr "Letzte Blog-Einträge" |
||||
|
||||
#: cms_plugins.py:33 |
||||
msgid "Author Blog Articles" |
||||
msgstr "Autoren Blog-Artikel" |
||||
|
||||
#: cms_plugins.py:46 templates/djangocms_blog/plugins/tags.html:4 |
||||
msgid "Tags" |
||||
msgstr "Tags" |
||||
|
||||
#: cms_plugins.py:57 templates/djangocms_blog/plugins/categories.html:4 |
||||
msgid "Categories" |
||||
msgstr "Kategorien" |
||||
|
||||
#: cms_plugins.py:68 templates/djangocms_blog/post_list.html:12 |
||||
#: templates/djangocms_blog/plugins/archive.html:4 |
||||
msgid "Archive" |
||||
msgstr "Archiv" |
||||
|
||||
#: cms_toolbar.py:20 |
||||
msgid "Post list" |
||||
msgstr "Post Liste" |
||||
|
||||
#: cms_toolbar.py:22 |
||||
msgid "Add post" |
||||
msgstr "Post hinzufügen" |
||||
|
||||
#: cms_toolbar.py:26 |
||||
msgid "Edit Post" |
||||
msgstr "Post bearbeiten" |
||||
|
||||
#: feeds.py:16 |
||||
#, python-format |
||||
msgid "Blog articles on %(site_name)s" |
||||
msgstr "Blog-Artikel auf %(site_name)s" |
||||
|
||||
#: models.py:31 |
||||
msgid "parent" |
||||
msgstr "übergeordnetes Element" |
||||
|
||||
#: models.py:33 |
||||
msgid "created at" |
||||
msgstr "erstellt am" |
||||
|
||||
#: models.py:34 |
||||
msgid "modified at" |
||||
msgstr "bearbeitet am" |
||||
|
||||
#: models.py:37 |
||||
msgid "name" |
||||
msgstr "Name" |
||||
|
||||
#: models.py:38 models.py:105 |
||||
msgid "slug" |
||||
msgstr "slug" |
||||
|
||||
#: models.py:45 |
||||
msgid "blog category" |
||||
msgstr "Blog-Kategorie" |
||||
|
||||
#: models.py:46 |
||||
msgid "blog categories" |
||||
msgstr "Blog-Kategorien" |
||||
|
||||
#: models.py:70 |
||||
msgid "Author" |
||||
msgstr "Autor" |
||||
|
||||
#: models.py:75 |
||||
msgid "Published Since" |
||||
msgstr "Veröffentlicht seit" |
||||
|
||||
#: models.py:77 |
||||
msgid "Published Until" |
||||
msgstr "Veröffentlicht bis" |
||||
|
||||
#: models.py:79 |
||||
msgid "Publish" |
||||
msgstr "Veröffentlichen" |
||||
|
||||
#: models.py:80 |
||||
msgid "category" |
||||
msgstr "Kategorie" |
||||
|
||||
#: models.py:82 |
||||
msgid "Main image" |
||||
msgstr "Haupt-Bild" |
||||
|
||||
#: models.py:85 |
||||
msgid "Main image thumbnail" |
||||
msgstr "Haupt-Bild Vorschau" |
||||
|
||||
#: models.py:89 |
||||
msgid "Main image full" |
||||
msgstr "volles Haupt-Bild" |
||||
|
||||
#: models.py:93 |
||||
msgid "Enable comments on post" |
||||
msgstr "Kommentare einschalten" |
||||
|
||||
#: models.py:96 |
||||
msgid "Site(s)" |
||||
msgstr "Seite(n)" |
||||
|
||||
#: models.py:98 |
||||
msgid "" |
||||
"Select sites in which to show the post. If none is set it will be visible in" |
||||
" all the configured sites." |
||||
msgstr "Wähle Seiten aus, auf welchen der Post angezeigt wird. Ohne Auswahl sichtbar auf allen konfigurierten Seiten." |
||||
|
||||
#: models.py:104 |
||||
msgid "Title" |
||||
msgstr "Titel" |
||||
|
||||
#: models.py:106 |
||||
msgid "Abstract" |
||||
msgstr "Auszug" |
||||
|
||||
#: models.py:107 |
||||
msgid "Post meta description" |
||||
msgstr "Post Meta-Description" |
||||
|
||||
#: models.py:109 |
||||
msgid "Post meta keywords" |
||||
msgstr "Post Meta-Keywords" |
||||
|
||||
#: models.py:111 |
||||
msgid "Post meta title" |
||||
msgstr "Post Meta-Titel" |
||||
|
||||
#: models.py:112 |
||||
msgid "used in title tag and social sharing" |
||||
msgstr "Wird im Titel-Tag und für das soziale Teilen genutzt" |
||||
|
||||
#: models.py:115 |
||||
msgid "Text" |
||||
msgstr "Text" |
||||
|
||||
#: models.py:178 |
||||
msgid "blog article" |
||||
msgstr "Blog-Artikel" |
||||
|
||||
#: models.py:179 |
||||
msgid "blog articles" |
||||
msgstr "Blog-Artikel" |
||||
|
||||
#: models.py:222 models.py:250 |
||||
msgid "Articles" |
||||
msgstr "Artikel" |
||||
|
||||
#: models.py:223 |
||||
msgid "The number of latests articles to be displayed." |
||||
msgstr "Anzahl der anzuzeigenden letzten Artikel" |
||||
|
||||
#: models.py:225 |
||||
msgid "Show only the blog articles tagged with chosen tags." |
||||
msgstr "Nur die Blog-Einträge mit dem ausgewählten Tag anzeigen" |
||||
|
||||
#: models.py:227 |
||||
msgid "Show only the blog articles tagged with chosen categories." |
||||
msgstr "Nur die Blog-Einträge der ausgewählten Kategorie anzeigen" |
||||
|
||||
#: models.py:246 templates/djangocms_blog/plugins/authors.html:3 |
||||
msgid "Authors" |
||||
msgstr "Authoren" |
||||
|
||||
#: models.py:251 |
||||
msgid "The number of author articles to be displayed." |
||||
msgstr "Die Anzahl der anzuzeigenden Autoren-Artikel" |
||||
|
||||
#: templates/djangocms_blog/post_detail.html:18 |
||||
#: templates/djangocms_blog/includes/blog_item.html:11 |
||||
msgid "by" |
||||
msgstr "von" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:11 |
||||
msgid "Articles by" |
||||
msgstr "Artikel von" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:13 |
||||
msgid "Tag" |
||||
msgstr "Tag" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:14 |
||||
msgid "Category" |
||||
msgstr "Kategorie" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:21 |
||||
#: templates/djangocms_blog/plugins/archive.html:27 |
||||
#: templates/djangocms_blog/plugins/authors.html:15 |
||||
#: templates/djangocms_blog/plugins/categories.html:16 |
||||
#: templates/djangocms_blog/plugins/latest_entries.html:7 |
||||
#: templates/djangocms_blog/plugins/tags.html:16 |
||||
msgid "No article found." |
||||
msgstr "Kein Artikel gefunden." |
||||
|
||||
#: templates/djangocms_blog/post_list.html:24 |
||||
msgid "Back" |
||||
msgstr "Zurück" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:30 |
||||
msgid "previous" |
||||
msgstr "vorheriger" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:33 |
||||
msgid "Page" |
||||
msgstr "Seite" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:33 |
||||
msgid "of" |
||||
msgstr "von" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:36 |
||||
msgid "next" |
||||
msgstr "nächste" |
||||
|
||||
#: templates/djangocms_blog/includes/blog_item.html:46 |
||||
msgid "read more" |
||||
msgstr "weiterlesen" |
||||
|
||||
#: templates/djangocms_blog/plugins/archive.html:18 |
||||
#: templates/djangocms_blog/plugins/authors.html:10 |
||||
#: templates/djangocms_blog/plugins/categories.html:11 |
||||
#: templates/djangocms_blog/plugins/tags.html:11 |
||||
#, python-format |
||||
msgid "1 article" |
||||
msgid_plural "%(articles)s articles" |
||||
msgstr[0] "Ein Artikel" |
||||
msgstr[1] "%(articles)s Artikel" |
||||
|
||||
#: templates/djangocms_blog/plugins/archive.html:19 |
||||
#: templates/djangocms_blog/plugins/authors.html:11 |
||||
#: templates/djangocms_blog/plugins/categories.html:12 |
||||
#: templates/djangocms_blog/plugins/tags.html:12 |
||||
msgid "0 articles" |
||||
msgstr "0 Artikel" |
||||
|
||||
#~ msgid "blog post" |
||||
#~ msgstr "blog post" |
||||
|
||||
#~ msgid "Posts" |
||||
#~ msgstr "Posts" |
||||
|
||||
#~ msgid "Entries by" |
||||
#~ msgstr "Entries by" |
||||
|
||||
#~ msgid "No entry found." |
||||
#~ msgstr "No entry found." |
||||
Binary file not shown.
@ -0,0 +1,276 @@ |
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER |
||||
# This file is distributed under the same license as the PACKAGE package. |
||||
# |
||||
# Iacopo Spalletti, 2014. |
||||
msgid "" |
||||
msgstr "" |
||||
"Project-Id-Version: \n" |
||||
"Report-Msgid-Bugs-To: \n" |
||||
"POT-Creation-Date: 2014-11-30 12:50+0100\n" |
||||
"PO-Revision-Date: 2014-03-05 18:09+0100\n" |
||||
"Last-Translator: Iacopo Spalletti\n" |
||||
"Language-Team: Italian <i.spalletti@nephila.it>\n" |
||||
"Language: it\n" |
||||
"MIME-Version: 1.0\n" |
||||
"Content-Type: text/plain; charset=UTF-8\n" |
||||
"Content-Transfer-Encoding: 8bit\n" |
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
||||
"X-Generator: Lokalize 1.5\n" |
||||
|
||||
#: cms_app.py:8 cms_plugins.py:32 cms_plugins.py:45 cms_plugins.py:56 |
||||
#: cms_plugins.py:67 cms_toolbar.py:18 |
||||
msgid "Blog" |
||||
msgstr "Blog" |
||||
|
||||
#: cms_plugins.py:20 |
||||
msgid "Latest Blog Articles" |
||||
msgstr "Latest Blog Articles" |
||||
|
||||
#: cms_plugins.py:33 |
||||
msgid "Author Blog Articles" |
||||
msgstr "Author Blog Articles" |
||||
|
||||
#: cms_plugins.py:46 templates/djangocms_blog/plugins/tags.html:4 |
||||
msgid "Tags" |
||||
msgstr "Tags" |
||||
|
||||
#: cms_plugins.py:57 templates/djangocms_blog/plugins/categories.html:4 |
||||
msgid "Categories" |
||||
msgstr "Categories" |
||||
|
||||
#: cms_plugins.py:68 templates/djangocms_blog/post_list.html:12 |
||||
#: templates/djangocms_blog/plugins/archive.html:4 |
||||
msgid "Archive" |
||||
msgstr "Archive" |
||||
|
||||
#: cms_toolbar.py:20 |
||||
msgid "Post list" |
||||
msgstr "Post list" |
||||
|
||||
#: cms_toolbar.py:22 |
||||
msgid "Add post" |
||||
msgstr "Add post" |
||||
|
||||
#: cms_toolbar.py:26 |
||||
msgid "Edit Post" |
||||
msgstr "" |
||||
|
||||
#: feeds.py:16 |
||||
#, python-format |
||||
msgid "Blog articles on %(site_name)s" |
||||
msgstr "Blog articles on %(site_name)s" |
||||
|
||||
#: models.py:31 |
||||
msgid "parent" |
||||
msgstr "parent" |
||||
|
||||
#: models.py:33 |
||||
msgid "created at" |
||||
msgstr "created at" |
||||
|
||||
#: models.py:34 |
||||
msgid "modified at" |
||||
msgstr "modified at" |
||||
|
||||
#: models.py:37 |
||||
msgid "name" |
||||
msgstr "name" |
||||
|
||||
#: models.py:38 models.py:105 |
||||
msgid "slug" |
||||
msgstr "slug" |
||||
|
||||
#: models.py:45 |
||||
msgid "blog category" |
||||
msgstr "blog category" |
||||
|
||||
#: models.py:46 |
||||
msgid "blog categories" |
||||
msgstr "blog categories" |
||||
|
||||
#: models.py:70 |
||||
msgid "Author" |
||||
msgstr "Author" |
||||
|
||||
#: models.py:75 |
||||
msgid "Published Since" |
||||
msgstr "Published Since" |
||||
|
||||
#: models.py:77 |
||||
msgid "Published Until" |
||||
msgstr "Published Until" |
||||
|
||||
#: models.py:79 |
||||
msgid "Publish" |
||||
msgstr "Publish" |
||||
|
||||
#: models.py:80 |
||||
msgid "category" |
||||
msgstr "category" |
||||
|
||||
#: models.py:82 |
||||
msgid "Main image" |
||||
msgstr "Main image" |
||||
|
||||
#: models.py:85 |
||||
msgid "Main image thumbnail" |
||||
msgstr "Main image thumbnail" |
||||
|
||||
#: models.py:89 |
||||
msgid "Main image full" |
||||
msgstr "Main image full" |
||||
|
||||
#: models.py:93 |
||||
msgid "Enable comments on post" |
||||
msgstr "" |
||||
|
||||
#: models.py:96 |
||||
msgid "Site(s)" |
||||
msgstr "" |
||||
|
||||
#: models.py:98 |
||||
msgid "" |
||||
"Select sites in which to show the post. If none is set it will be visible in " |
||||
"all the configured sites." |
||||
msgstr "" |
||||
|
||||
#: models.py:104 |
||||
msgid "Title" |
||||
msgstr "Title" |
||||
|
||||
#: models.py:106 |
||||
msgid "Abstract" |
||||
msgstr "" |
||||
|
||||
#: models.py:107 |
||||
msgid "Post meta description" |
||||
msgstr "Post meta description" |
||||
|
||||
#: models.py:109 |
||||
#, fuzzy |
||||
msgid "Post meta keywords" |
||||
msgstr "Post meta description" |
||||
|
||||
#: models.py:111 |
||||
#, fuzzy |
||||
msgid "Post meta title" |
||||
msgstr "Post meta description" |
||||
|
||||
#: models.py:112 |
||||
msgid "used in title tag and social sharing" |
||||
msgstr "" |
||||
|
||||
#: models.py:115 |
||||
msgid "Text" |
||||
msgstr "Text" |
||||
|
||||
#: models.py:178 |
||||
msgid "blog article" |
||||
msgstr "blog article" |
||||
|
||||
#: models.py:179 |
||||
msgid "blog articles" |
||||
msgstr "blog articles" |
||||
|
||||
#: models.py:222 models.py:250 |
||||
msgid "Articles" |
||||
msgstr "Articles" |
||||
|
||||
#: models.py:223 |
||||
msgid "The number of latests articles to be displayed." |
||||
msgstr "The number of latests articles to be displayed." |
||||
|
||||
#: models.py:225 |
||||
msgid "Show only the blog articles tagged with chosen tags." |
||||
msgstr "Show only the blog articles tagged with chosen tags." |
||||
|
||||
#: models.py:227 |
||||
msgid "Show only the blog articles tagged with chosen categories." |
||||
msgstr "Show only the blog articles tagged with chosen categories." |
||||
|
||||
#: models.py:246 templates/djangocms_blog/plugins/authors.html:3 |
||||
msgid "Authors" |
||||
msgstr "Authors" |
||||
|
||||
#: models.py:251 |
||||
msgid "The number of author articles to be displayed." |
||||
msgstr "The number of author articles to be displayed." |
||||
|
||||
#: templates/djangocms_blog/post_detail.html:18 |
||||
#: templates/djangocms_blog/includes/blog_item.html:11 |
||||
msgid "by" |
||||
msgstr "by" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:11 |
||||
msgid "Articles by" |
||||
msgstr "Articles by" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:13 |
||||
msgid "Tag" |
||||
msgstr "Tag" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:14 |
||||
msgid "Category" |
||||
msgstr "Category" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:21 |
||||
#: templates/djangocms_blog/plugins/archive.html:27 |
||||
#: templates/djangocms_blog/plugins/authors.html:15 |
||||
#: templates/djangocms_blog/plugins/categories.html:16 |
||||
#: templates/djangocms_blog/plugins/latest_entries.html:7 |
||||
#: templates/djangocms_blog/plugins/tags.html:16 |
||||
msgid "No article found." |
||||
msgstr "No article found." |
||||
|
||||
#: templates/djangocms_blog/post_list.html:24 |
||||
msgid "Back" |
||||
msgstr "Back" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:30 |
||||
msgid "previous" |
||||
msgstr "previous" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:33 |
||||
msgid "Page" |
||||
msgstr "Page" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:33 |
||||
msgid "of" |
||||
msgstr "of" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:36 |
||||
msgid "next" |
||||
msgstr "next" |
||||
|
||||
#: templates/djangocms_blog/includes/blog_item.html:46 |
||||
msgid "read more" |
||||
msgstr "read more" |
||||
|
||||
#: templates/djangocms_blog/plugins/archive.html:18 |
||||
#: templates/djangocms_blog/plugins/authors.html:10 |
||||
#: templates/djangocms_blog/plugins/categories.html:11 |
||||
#: templates/djangocms_blog/plugins/tags.html:11 |
||||
#, python-format |
||||
msgid "1 article" |
||||
msgid_plural "%(articles)s articles" |
||||
msgstr[0] "1 article" |
||||
msgstr[1] "%(articles)s articles" |
||||
|
||||
#: templates/djangocms_blog/plugins/archive.html:19 |
||||
#: templates/djangocms_blog/plugins/authors.html:11 |
||||
#: templates/djangocms_blog/plugins/categories.html:12 |
||||
#: templates/djangocms_blog/plugins/tags.html:12 |
||||
msgid "0 articles" |
||||
msgstr "0 articles" |
||||
|
||||
#~ msgid "blog post" |
||||
#~ msgstr "blog post" |
||||
|
||||
#~ msgid "Posts" |
||||
#~ msgstr "Posts" |
||||
|
||||
#~ msgid "Entries by" |
||||
#~ msgstr "Entries by" |
||||
|
||||
#~ msgid "No entry found." |
||||
#~ msgstr "No entry found." |
||||
Binary file not shown.
@ -0,0 +1,276 @@ |
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER |
||||
# This file is distributed under the same license as the PACKAGE package. |
||||
# |
||||
# Translators: |
||||
# Iacopo Spalletti, 2014 |
||||
# yakky <i.spalletti@nephila.it>, 2014 |
||||
msgid "" |
||||
msgstr "" |
||||
"Project-Id-Version: djangocms-blog\n" |
||||
"Report-Msgid-Bugs-To: \n" |
||||
"POT-Creation-Date: 2014-11-30 12:49+0100\n" |
||||
"PO-Revision-Date: 2014-11-30 11:51+0000\n" |
||||
"Last-Translator: yakky <i.spalletti@nephila.it>\n" |
||||
"Language-Team: Italian (http://www.transifex.com/projects/p/djangocms-blog/language/it/)\n" |
||||
"MIME-Version: 1.0\n" |
||||
"Content-Type: text/plain; charset=UTF-8\n" |
||||
"Content-Transfer-Encoding: 8bit\n" |
||||
"Language: it\n" |
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
||||
"X-Generator: Lokalize 1.5\n" |
||||
|
||||
#: cms_app.py:8 cms_plugins.py:32 cms_plugins.py:45 cms_plugins.py:56 |
||||
#: cms_plugins.py:67 cms_toolbar.py:18 |
||||
msgid "Blog" |
||||
msgstr "Blog" |
||||
|
||||
#: cms_plugins.py:20 |
||||
msgid "Latest Blog Articles" |
||||
msgstr "Ultimi articoli" |
||||
|
||||
#: cms_plugins.py:33 |
||||
msgid "Author Blog Articles" |
||||
msgstr "Articoli per autore" |
||||
|
||||
#: cms_plugins.py:46 templates/djangocms_blog/plugins/tags.html:4 |
||||
msgid "Tags" |
||||
msgstr "Tag" |
||||
|
||||
#: cms_plugins.py:57 templates/djangocms_blog/plugins/categories.html:4 |
||||
msgid "Categories" |
||||
msgstr "Categorie" |
||||
|
||||
#: cms_plugins.py:68 templates/djangocms_blog/post_list.html:12 |
||||
#: templates/djangocms_blog/plugins/archive.html:4 |
||||
msgid "Archive" |
||||
msgstr "Archivio" |
||||
|
||||
#: cms_toolbar.py:20 |
||||
msgid "Post list" |
||||
msgstr "Lista degli articoli" |
||||
|
||||
#: cms_toolbar.py:22 |
||||
msgid "Add post" |
||||
msgstr "Aggiungi articolo" |
||||
|
||||
#: cms_toolbar.py:26 |
||||
msgid "Edit Post" |
||||
msgstr "Modifica articolo" |
||||
|
||||
#: feeds.py:16 |
||||
#, python-format |
||||
msgid "Blog articles on %(site_name)s" |
||||
msgstr "Articoli del blog su %(site_name)s" |
||||
|
||||
#: models.py:31 |
||||
msgid "parent" |
||||
msgstr "superiore" |
||||
|
||||
#: models.py:33 |
||||
msgid "created at" |
||||
msgstr "creato il" |
||||
|
||||
#: models.py:34 |
||||
msgid "modified at" |
||||
msgstr "modificato il" |
||||
|
||||
#: models.py:37 |
||||
msgid "name" |
||||
msgstr "nome" |
||||
|
||||
#: models.py:38 models.py:105 |
||||
msgid "slug" |
||||
msgstr "slug" |
||||
|
||||
#: models.py:45 |
||||
msgid "blog category" |
||||
msgstr "categoria del blog" |
||||
|
||||
#: models.py:46 |
||||
msgid "blog categories" |
||||
msgstr "categorie del blog" |
||||
|
||||
#: models.py:70 |
||||
msgid "Author" |
||||
msgstr "Autore" |
||||
|
||||
#: models.py:75 |
||||
msgid "Published Since" |
||||
msgstr "Pubblicato il" |
||||
|
||||
#: models.py:77 |
||||
msgid "Published Until" |
||||
msgstr "fino al" |
||||
|
||||
#: models.py:79 |
||||
msgid "Publish" |
||||
msgstr "Pubblicato" |
||||
|
||||
#: models.py:80 |
||||
msgid "category" |
||||
msgstr "categoria" |
||||
|
||||
#: models.py:82 |
||||
msgid "Main image" |
||||
msgstr "Immagine" |
||||
|
||||
#: models.py:85 |
||||
msgid "Main image thumbnail" |
||||
msgstr "Dimensione miniatura" |
||||
|
||||
#: models.py:89 |
||||
msgid "Main image full" |
||||
msgstr "Dimensione piena" |
||||
|
||||
#: models.py:93 |
||||
msgid "Enable comments on post" |
||||
msgstr "Abilita commenti sul post" |
||||
|
||||
#: models.py:96 |
||||
msgid "Site(s)" |
||||
msgstr "Sito/i" |
||||
|
||||
#: models.py:98 |
||||
msgid "" |
||||
"Select sites in which to show the post. If none is set it will be visible in" |
||||
" all the configured sites." |
||||
msgstr "Seleziona i siti in cui deve apparire l'articolo. Se non è selezionato nessun sito, l'articolo comparirà in tutti i siti configurati." |
||||
|
||||
#: models.py:104 |
||||
msgid "Title" |
||||
msgstr "Titolo" |
||||
|
||||
#: models.py:106 |
||||
msgid "Abstract" |
||||
msgstr "Riassunto" |
||||
|
||||
#: models.py:107 |
||||
msgid "Post meta description" |
||||
msgstr "Descrizione SEO dell'articolo" |
||||
|
||||
#: models.py:109 |
||||
msgid "Post meta keywords" |
||||
msgstr "Keyword SEO dell'articolo" |
||||
|
||||
#: models.py:111 |
||||
msgid "Post meta title" |
||||
msgstr "Titolo SEO dell'articolo" |
||||
|
||||
#: models.py:112 |
||||
msgid "used in title tag and social sharing" |
||||
msgstr "Usato nel tag title e nei titoli per le condivisioni sui social network" |
||||
|
||||
#: models.py:115 |
||||
msgid "Text" |
||||
msgstr "Test" |
||||
|
||||
#: models.py:178 |
||||
msgid "blog article" |
||||
msgstr "articolo del blog" |
||||
|
||||
#: models.py:179 |
||||
msgid "blog articles" |
||||
msgstr "articoli del blog" |
||||
|
||||
#: models.py:222 models.py:250 |
||||
msgid "Articles" |
||||
msgstr "Articoli" |
||||
|
||||
#: models.py:223 |
||||
msgid "The number of latests articles to be displayed." |
||||
msgstr "Il numero di articoli da mostrare." |
||||
|
||||
#: models.py:225 |
||||
msgid "Show only the blog articles tagged with chosen tags." |
||||
msgstr "Mostra solo gli articoli marcati con i tag selezionati." |
||||
|
||||
#: models.py:227 |
||||
msgid "Show only the blog articles tagged with chosen categories." |
||||
msgstr "Mostra solo gli articoli marcati con i categorie selezionati." |
||||
|
||||
#: models.py:246 templates/djangocms_blog/plugins/authors.html:3 |
||||
msgid "Authors" |
||||
msgstr "Autori" |
||||
|
||||
#: models.py:251 |
||||
msgid "The number of author articles to be displayed." |
||||
msgstr "Numero di elementi per autore da mostrare." |
||||
|
||||
#: templates/djangocms_blog/post_detail.html:18 |
||||
#: templates/djangocms_blog/includes/blog_item.html:11 |
||||
msgid "by" |
||||
msgstr "di" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:11 |
||||
msgid "Articles by" |
||||
msgstr "Articoli di" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:13 |
||||
msgid "Tag" |
||||
msgstr "Tag" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:14 |
||||
msgid "Category" |
||||
msgstr "Categoria" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:21 |
||||
#: templates/djangocms_blog/plugins/archive.html:27 |
||||
#: templates/djangocms_blog/plugins/authors.html:15 |
||||
#: templates/djangocms_blog/plugins/categories.html:16 |
||||
#: templates/djangocms_blog/plugins/latest_entries.html:7 |
||||
#: templates/djangocms_blog/plugins/tags.html:16 |
||||
msgid "No article found." |
||||
msgstr "Nessun articolo trovato." |
||||
|
||||
#: templates/djangocms_blog/post_list.html:24 |
||||
msgid "Back" |
||||
msgstr "Indietro" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:30 |
||||
msgid "previous" |
||||
msgstr "precedente" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:33 |
||||
msgid "Page" |
||||
msgstr "Pagina" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:33 |
||||
msgid "of" |
||||
msgstr "di" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:36 |
||||
msgid "next" |
||||
msgstr "successivo" |
||||
|
||||
#: templates/djangocms_blog/includes/blog_item.html:46 |
||||
msgid "read more" |
||||
msgstr "leggi" |
||||
|
||||
#: templates/djangocms_blog/plugins/archive.html:18 |
||||
#: templates/djangocms_blog/plugins/authors.html:10 |
||||
#: templates/djangocms_blog/plugins/categories.html:11 |
||||
#: templates/djangocms_blog/plugins/tags.html:11 |
||||
#, python-format |
||||
msgid "1 article" |
||||
msgid_plural "%(articles)s articles" |
||||
msgstr[0] "1 articolo" |
||||
msgstr[1] "%(articles)s articoli" |
||||
|
||||
#: templates/djangocms_blog/plugins/archive.html:19 |
||||
#: templates/djangocms_blog/plugins/authors.html:11 |
||||
#: templates/djangocms_blog/plugins/categories.html:12 |
||||
#: templates/djangocms_blog/plugins/tags.html:12 |
||||
msgid "0 articles" |
||||
msgstr "0 articoli" |
||||
|
||||
#~ msgid "blog post" |
||||
#~ msgstr "blog post" |
||||
|
||||
#~ msgid "Posts" |
||||
#~ msgstr "Posts" |
||||
|
||||
#~ msgid "Entries by" |
||||
#~ msgstr "Entries by" |
||||
|
||||
#~ msgid "No entry found." |
||||
#~ msgstr "No entry found." |
||||
Binary file not shown.
@ -0,0 +1,274 @@ |
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER |
||||
# This file is distributed under the same license as the PACKAGE package. |
||||
# |
||||
# Translators: |
||||
msgid "" |
||||
msgstr "" |
||||
"Project-Id-Version: djangocms-blog\n" |
||||
"Report-Msgid-Bugs-To: \n" |
||||
"POT-Creation-Date: 2014-11-30 12:49+0100\n" |
||||
"PO-Revision-Date: 2014-11-30 11:49+0000\n" |
||||
"Last-Translator: yakky <i.spalletti@nephila.it>\n" |
||||
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/djangocms-blog/language/pt_BR/)\n" |
||||
"MIME-Version: 1.0\n" |
||||
"Content-Type: text/plain; charset=UTF-8\n" |
||||
"Content-Transfer-Encoding: 8bit\n" |
||||
"Language: pt_BR\n" |
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n" |
||||
"X-Generator: Lokalize 1.5\n" |
||||
|
||||
#: cms_app.py:8 cms_plugins.py:32 cms_plugins.py:45 cms_plugins.py:56 |
||||
#: cms_plugins.py:67 cms_toolbar.py:18 |
||||
msgid "Blog" |
||||
msgstr "" |
||||
|
||||
#: cms_plugins.py:20 |
||||
msgid "Latest Blog Articles" |
||||
msgstr "" |
||||
|
||||
#: cms_plugins.py:33 |
||||
msgid "Author Blog Articles" |
||||
msgstr "" |
||||
|
||||
#: cms_plugins.py:46 templates/djangocms_blog/plugins/tags.html:4 |
||||
msgid "Tags" |
||||
msgstr "" |
||||
|
||||
#: cms_plugins.py:57 templates/djangocms_blog/plugins/categories.html:4 |
||||
msgid "Categories" |
||||
msgstr "" |
||||
|
||||
#: cms_plugins.py:68 templates/djangocms_blog/post_list.html:12 |
||||
#: templates/djangocms_blog/plugins/archive.html:4 |
||||
msgid "Archive" |
||||
msgstr "" |
||||
|
||||
#: cms_toolbar.py:20 |
||||
msgid "Post list" |
||||
msgstr "" |
||||
|
||||
#: cms_toolbar.py:22 |
||||
msgid "Add post" |
||||
msgstr "" |
||||
|
||||
#: cms_toolbar.py:26 |
||||
msgid "Edit Post" |
||||
msgstr "" |
||||
|
||||
#: feeds.py:16 |
||||
#, python-format |
||||
msgid "Blog articles on %(site_name)s" |
||||
msgstr "" |
||||
|
||||
#: models.py:31 |
||||
msgid "parent" |
||||
msgstr "" |
||||
|
||||
#: models.py:33 |
||||
msgid "created at" |
||||
msgstr "" |
||||
|
||||
#: models.py:34 |
||||
msgid "modified at" |
||||
msgstr "" |
||||
|
||||
#: models.py:37 |
||||
msgid "name" |
||||
msgstr "" |
||||
|
||||
#: models.py:38 models.py:105 |
||||
msgid "slug" |
||||
msgstr "" |
||||
|
||||
#: models.py:45 |
||||
msgid "blog category" |
||||
msgstr "" |
||||
|
||||
#: models.py:46 |
||||
msgid "blog categories" |
||||
msgstr "" |
||||
|
||||
#: models.py:70 |
||||
msgid "Author" |
||||
msgstr "" |
||||
|
||||
#: models.py:75 |
||||
msgid "Published Since" |
||||
msgstr "" |
||||
|
||||
#: models.py:77 |
||||
msgid "Published Until" |
||||
msgstr "" |
||||
|
||||
#: models.py:79 |
||||
msgid "Publish" |
||||
msgstr "" |
||||
|
||||
#: models.py:80 |
||||
msgid "category" |
||||
msgstr "" |
||||
|
||||
#: models.py:82 |
||||
msgid "Main image" |
||||
msgstr "" |
||||
|
||||
#: models.py:85 |
||||
msgid "Main image thumbnail" |
||||
msgstr "" |
||||
|
||||
#: models.py:89 |
||||
msgid "Main image full" |
||||
msgstr "" |
||||
|
||||
#: models.py:93 |
||||
msgid "Enable comments on post" |
||||
msgstr "" |
||||
|
||||
#: models.py:96 |
||||
msgid "Site(s)" |
||||
msgstr "" |
||||
|
||||
#: models.py:98 |
||||
msgid "" |
||||
"Select sites in which to show the post. If none is set it will be visible in" |
||||
" all the configured sites." |
||||
msgstr "" |
||||
|
||||
#: models.py:104 |
||||
msgid "Title" |
||||
msgstr "" |
||||
|
||||
#: models.py:106 |
||||
msgid "Abstract" |
||||
msgstr "" |
||||
|
||||
#: models.py:107 |
||||
msgid "Post meta description" |
||||
msgstr "" |
||||
|
||||
#: models.py:109 |
||||
msgid "Post meta keywords" |
||||
msgstr "" |
||||
|
||||
#: models.py:111 |
||||
msgid "Post meta title" |
||||
msgstr "" |
||||
|
||||
#: models.py:112 |
||||
msgid "used in title tag and social sharing" |
||||
msgstr "" |
||||
|
||||
#: models.py:115 |
||||
msgid "Text" |
||||
msgstr "" |
||||
|
||||
#: models.py:178 |
||||
msgid "blog article" |
||||
msgstr "" |
||||
|
||||
#: models.py:179 |
||||
msgid "blog articles" |
||||
msgstr "" |
||||
|
||||
#: models.py:222 models.py:250 |
||||
msgid "Articles" |
||||
msgstr "" |
||||
|
||||
#: models.py:223 |
||||
msgid "The number of latests articles to be displayed." |
||||
msgstr "" |
||||
|
||||
#: models.py:225 |
||||
msgid "Show only the blog articles tagged with chosen tags." |
||||
msgstr "" |
||||
|
||||
#: models.py:227 |
||||
msgid "Show only the blog articles tagged with chosen categories." |
||||
msgstr "" |
||||
|
||||
#: models.py:246 templates/djangocms_blog/plugins/authors.html:3 |
||||
msgid "Authors" |
||||
msgstr "" |
||||
|
||||
#: models.py:251 |
||||
msgid "The number of author articles to be displayed." |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/post_detail.html:18 |
||||
#: templates/djangocms_blog/includes/blog_item.html:11 |
||||
msgid "by" |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:11 |
||||
msgid "Articles by" |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:13 |
||||
msgid "Tag" |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:14 |
||||
msgid "Category" |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:21 |
||||
#: templates/djangocms_blog/plugins/archive.html:27 |
||||
#: templates/djangocms_blog/plugins/authors.html:15 |
||||
#: templates/djangocms_blog/plugins/categories.html:16 |
||||
#: templates/djangocms_blog/plugins/latest_entries.html:7 |
||||
#: templates/djangocms_blog/plugins/tags.html:16 |
||||
msgid "No article found." |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:24 |
||||
msgid "Back" |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:30 |
||||
msgid "previous" |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:33 |
||||
msgid "Page" |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:33 |
||||
msgid "of" |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:36 |
||||
msgid "next" |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/includes/blog_item.html:46 |
||||
msgid "read more" |
||||
msgstr "" |
||||
|
||||
#: templates/djangocms_blog/plugins/archive.html:18 |
||||
#: templates/djangocms_blog/plugins/authors.html:10 |
||||
#: templates/djangocms_blog/plugins/categories.html:11 |
||||
#: templates/djangocms_blog/plugins/tags.html:11 |
||||
#, python-format |
||||
msgid "1 article" |
||||
msgid_plural "%(articles)s articles" |
||||
msgstr[0] "" |
||||
msgstr[1] "" |
||||
|
||||
#: templates/djangocms_blog/plugins/archive.html:19 |
||||
#: templates/djangocms_blog/plugins/authors.html:11 |
||||
#: templates/djangocms_blog/plugins/categories.html:12 |
||||
#: templates/djangocms_blog/plugins/tags.html:12 |
||||
msgid "0 articles" |
||||
msgstr "" |
||||
|
||||
#~ msgid "blog post" |
||||
#~ msgstr "blog post" |
||||
|
||||
#~ msgid "Posts" |
||||
#~ msgstr "Posts" |
||||
|
||||
#~ msgid "Entries by" |
||||
#~ msgstr "Entries by" |
||||
|
||||
#~ msgid "No entry found." |
||||
#~ msgstr "No entry found." |
||||
Binary file not shown.
@ -0,0 +1,276 @@ |
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER |
||||
# This file is distributed under the same license as the PACKAGE package. |
||||
# |
||||
# Translators: |
||||
# Iacopo Spalletti, 2014 |
||||
msgid "" |
||||
msgstr "" |
||||
"Project-Id-Version: djangocms-blog\n" |
||||
"Report-Msgid-Bugs-To: \n" |
||||
"POT-Creation-Date: 2014-11-30 12:49+0100\n" |
||||
"PO-Revision-Date: 2014-11-30 11:49+0000\n" |
||||
"Last-Translator: yakky <i.spalletti@nephila.it>\n" |
||||
"Language-Team: Russian (http://www.transifex.com/projects/p/djangocms-blog/language/ru/)\n" |
||||
"MIME-Version: 1.0\n" |
||||
"Content-Type: text/plain; charset=UTF-8\n" |
||||
"Content-Transfer-Encoding: 8bit\n" |
||||
"Language: ru\n" |
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" |
||||
"X-Generator: Lokalize 1.5\n" |
||||
|
||||
#: cms_app.py:8 cms_plugins.py:32 cms_plugins.py:45 cms_plugins.py:56 |
||||
#: cms_plugins.py:67 cms_toolbar.py:18 |
||||
msgid "Blog" |
||||
msgstr "Блог" |
||||
|
||||
#: cms_plugins.py:20 |
||||
msgid "Latest Blog Articles" |
||||
msgstr "Последние статьи блога" |
||||
|
||||
#: cms_plugins.py:33 |
||||
msgid "Author Blog Articles" |
||||
msgstr "Автор" |
||||
|
||||
#: cms_plugins.py:46 templates/djangocms_blog/plugins/tags.html:4 |
||||
msgid "Tags" |
||||
msgstr "Тэги" |
||||
|
||||
#: cms_plugins.py:57 templates/djangocms_blog/plugins/categories.html:4 |
||||
msgid "Categories" |
||||
msgstr "Categories" |
||||
|
||||
#: cms_plugins.py:68 templates/djangocms_blog/post_list.html:12 |
||||
#: templates/djangocms_blog/plugins/archive.html:4 |
||||
msgid "Archive" |
||||
msgstr "Архив" |
||||
|
||||
#: cms_toolbar.py:20 |
||||
msgid "Post list" |
||||
msgstr "Список статей" |
||||
|
||||
#: cms_toolbar.py:22 |
||||
msgid "Add post" |
||||
msgstr "Добавить статью" |
||||
|
||||
#: cms_toolbar.py:26 |
||||
msgid "Edit Post" |
||||
msgstr "" |
||||
|
||||
#: feeds.py:16 |
||||
#, python-format |
||||
msgid "Blog articles on %(site_name)s" |
||||
msgstr "Статьи из блог на %(site_name)s" |
||||
|
||||
#: models.py:31 |
||||
msgid "parent" |
||||
msgstr "предок" |
||||
|
||||
#: models.py:33 |
||||
msgid "created at" |
||||
msgstr "время создания" |
||||
|
||||
#: models.py:34 |
||||
msgid "modified at" |
||||
msgstr "время изменения" |
||||
|
||||
#: models.py:37 |
||||
msgid "name" |
||||
msgstr "название" |
||||
|
||||
#: models.py:38 models.py:105 |
||||
msgid "slug" |
||||
msgstr "URL" |
||||
|
||||
#: models.py:45 |
||||
msgid "blog category" |
||||
msgstr "категория блога" |
||||
|
||||
#: models.py:46 |
||||
msgid "blog categories" |
||||
msgstr "категории блога" |
||||
|
||||
#: models.py:70 |
||||
msgid "Author" |
||||
msgstr "Автор" |
||||
|
||||
#: models.py:75 |
||||
msgid "Published Since" |
||||
msgstr "Опубликована с" |
||||
|
||||
#: models.py:77 |
||||
msgid "Published Until" |
||||
msgstr "Опубликована до" |
||||
|
||||
#: models.py:79 |
||||
msgid "Publish" |
||||
msgstr "Показывать на сайте" |
||||
|
||||
#: models.py:80 |
||||
msgid "category" |
||||
msgstr "категория" |
||||
|
||||
#: models.py:82 |
||||
msgid "Main image" |
||||
msgstr "Картинка для статьи" |
||||
|
||||
#: models.py:85 |
||||
msgid "Main image thumbnail" |
||||
msgstr "Уменьшенная копия" |
||||
|
||||
#: models.py:89 |
||||
msgid "Main image full" |
||||
msgstr "Полный размер" |
||||
|
||||
#: models.py:93 |
||||
msgid "Enable comments on post" |
||||
msgstr "" |
||||
|
||||
#: models.py:96 |
||||
msgid "Site(s)" |
||||
msgstr "" |
||||
|
||||
#: models.py:98 |
||||
msgid "" |
||||
"Select sites in which to show the post. If none is set it will be visible in" |
||||
" all the configured sites." |
||||
msgstr "" |
||||
|
||||
#: models.py:104 |
||||
msgid "Title" |
||||
msgstr "Заголовок" |
||||
|
||||
#: models.py:106 |
||||
msgid "Abstract" |
||||
msgstr "" |
||||
|
||||
#: models.py:107 |
||||
msgid "Post meta description" |
||||
msgstr "" |
||||
|
||||
#: models.py:109 |
||||
msgid "Post meta keywords" |
||||
msgstr "" |
||||
|
||||
#: models.py:111 |
||||
msgid "Post meta title" |
||||
msgstr "" |
||||
|
||||
#: models.py:112 |
||||
msgid "used in title tag and social sharing" |
||||
msgstr "" |
||||
|
||||
#: models.py:115 |
||||
msgid "Text" |
||||
msgstr "" |
||||
|
||||
#: models.py:178 |
||||
msgid "blog article" |
||||
msgstr "статья блога" |
||||
|
||||
#: models.py:179 |
||||
msgid "blog articles" |
||||
msgstr "статьи блога" |
||||
|
||||
#: models.py:222 models.py:250 |
||||
msgid "Articles" |
||||
msgstr "Статьи" |
||||
|
||||
#: models.py:223 |
||||
msgid "The number of latests articles to be displayed." |
||||
msgstr "Количество показываемых последних статей." |
||||
|
||||
#: models.py:225 |
||||
msgid "Show only the blog articles tagged with chosen tags." |
||||
msgstr "Показывать только статьи с выбранными тэгами." |
||||
|
||||
#: models.py:227 |
||||
msgid "Show only the blog articles tagged with chosen categories." |
||||
msgstr "Показывать только статьи из выбранныех категорий." |
||||
|
||||
#: models.py:246 templates/djangocms_blog/plugins/authors.html:3 |
||||
msgid "Authors" |
||||
msgstr "Авторы" |
||||
|
||||
#: models.py:251 |
||||
msgid "The number of author articles to be displayed." |
||||
msgstr "Количество статей автора, которые будут показаны." |
||||
|
||||
#: templates/djangocms_blog/post_detail.html:18 |
||||
#: templates/djangocms_blog/includes/blog_item.html:11 |
||||
msgid "by" |
||||
msgstr "создана" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:11 |
||||
msgid "Articles by" |
||||
msgstr "Статьи созданы" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:13 |
||||
msgid "Tag" |
||||
msgstr "Тэг" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:14 |
||||
msgid "Category" |
||||
msgstr "Категория" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:21 |
||||
#: templates/djangocms_blog/plugins/archive.html:27 |
||||
#: templates/djangocms_blog/plugins/authors.html:15 |
||||
#: templates/djangocms_blog/plugins/categories.html:16 |
||||
#: templates/djangocms_blog/plugins/latest_entries.html:7 |
||||
#: templates/djangocms_blog/plugins/tags.html:16 |
||||
msgid "No article found." |
||||
msgstr "Не найдено ни одной статьи." |
||||
|
||||
#: templates/djangocms_blog/post_list.html:24 |
||||
msgid "Back" |
||||
msgstr "Назад" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:30 |
||||
msgid "previous" |
||||
msgstr "предыдущая" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:33 |
||||
msgid "Page" |
||||
msgstr "Страница" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:33 |
||||
msgid "of" |
||||
msgstr "из" |
||||
|
||||
#: templates/djangocms_blog/post_list.html:36 |
||||
msgid "next" |
||||
msgstr "следующая" |
||||
|
||||
#: templates/djangocms_blog/includes/blog_item.html:46 |
||||
msgid "read more" |
||||
msgstr "продолжение" |
||||
|
||||
#: templates/djangocms_blog/plugins/archive.html:18 |
||||
#: templates/djangocms_blog/plugins/authors.html:10 |
||||
#: templates/djangocms_blog/plugins/categories.html:11 |
||||
#: templates/djangocms_blog/plugins/tags.html:11 |
||||
#, python-format |
||||
msgid "1 article" |
||||
msgid_plural "%(articles)s articles" |
||||
msgstr[0] "%(articles)s статья" |
||||
msgstr[1] "%(articles)s статьи" |
||||
msgstr[2] "%(articles)s статей" |
||||
|
||||
#: templates/djangocms_blog/plugins/archive.html:19 |
||||
#: templates/djangocms_blog/plugins/authors.html:11 |
||||
#: templates/djangocms_blog/plugins/categories.html:12 |
||||
#: templates/djangocms_blog/plugins/tags.html:12 |
||||
msgid "0 articles" |
||||
msgstr "0 статей" |
||||
|
||||
#~ msgid "blog post" |
||||
#~ msgstr "blog post" |
||||
|
||||
#~ msgid "Posts" |
||||
#~ msgstr "Posts" |
||||
|
||||
#~ msgid "Entries by" |
||||
#~ msgstr "Entries by" |
||||
|
||||
#~ msgid "No entry found." |
||||
#~ msgstr "No entry found." |
||||
@ -0,0 +1,159 @@ |
||||
# -*- coding: utf-8 -*- |
||||
import django |
||||
from django.contrib.sites.models import Site |
||||
from django.db.models import Q |
||||
|
||||
try: |
||||
from collections import Counter |
||||
except ImportError: |
||||
from .compat import Counter |
||||
|
||||
from django.db import models |
||||
from django.utils.timezone import now |
||||
from parler.managers import TranslationManager, TranslatableQuerySet |
||||
|
||||
|
||||
class TaggedFilterItem(object): |
||||
|
||||
def tagged(self, other_model=None, queryset=None): |
||||
""" |
||||
Restituisce una queryset di elementi del model taggati, |
||||
o con gli stessi tag di un model o un queryset |
||||
""" |
||||
tags = self._taglist(other_model, queryset) |
||||
return self.get_queryset().filter(taglist__in=tags) |
||||
|
||||
def _taglist(self, other_model=None, queryset=None): |
||||
""" |
||||
Restituisce una lista di id di tag comuni al model corrente e al model |
||||
o queryset passati come argomento |
||||
""" |
||||
from taggit.models import TaggedItem |
||||
filtro = None |
||||
if queryset is not None: |
||||
filtro = set() |
||||
for item in queryset.all(): |
||||
filtro.update(item.tags.all()) |
||||
filtro = set([tag.id for tag in filtro]) |
||||
elif other_model is not None: |
||||
filtro = set(TaggedItem.objects.filter(content_type__model=other_model.__name__.lower()).values_list('tag_id', flat=True)) |
||||
tags = set(TaggedItem.objects.filter(content_type__model=self.model.__name__.lower()).values_list('tag_id', flat=True)) |
||||
if filtro is not None: |
||||
tags = tags.intersection(filtro) |
||||
return list(tags) |
||||
|
||||
def tag_list(self, other_model=None, queryset=None): |
||||
""" |
||||
Restituisce un queryset di tag comuni al model corrente e |
||||
al model o queryset passati come argomento |
||||
""" |
||||
from taggit.models import Tag |
||||
return Tag.objects.filter(id__in=self._taglist(other_model, queryset)) |
||||
|
||||
def tag_list_slug(self, other_model=None, queryset=None): |
||||
queryset = self.tag_list(other_model, queryset) |
||||
return queryset.values('slug') |
||||
|
||||
def tag_cloud(self, other_model=None, queryset=None, published=True): |
||||
from taggit.models import TaggedItem |
||||
tag_ids = self._taglist(other_model, queryset) |
||||
kwargs = {} |
||||
if published: |
||||
kwargs = TaggedItem.bulk_lookup_kwargs(self.model.objects.published()) |
||||
kwargs['tag_id__in'] = tag_ids |
||||
counted_tags = dict(TaggedItem.objects |
||||
.filter(**kwargs) |
||||
.values('tag') |
||||
.annotate(count=models.Count('tag')) |
||||
.values_list('tag', 'count')) |
||||
tags = TaggedItem.tag_model().objects.filter(pk__in=counted_tags.keys()) |
||||
for tag in tags: |
||||
tag.count = counted_tags[tag.pk] |
||||
return sorted(tags, key=lambda x: -x.count) |
||||
|
||||
|
||||
class GenericDateQuerySet(TranslatableQuerySet): |
||||
start_date_field = 'date_published' |
||||
end_date_field = 'date_published_end' |
||||
publish_field = 'publish' |
||||
|
||||
def on_site(self): |
||||
return self.filter(Q(sites__isnull=True) | Q(sites=Site.objects.get_current().pk)) |
||||
|
||||
def published(self): |
||||
queryset = self.published_future() |
||||
if self.start_date_field: |
||||
return queryset.filter( |
||||
**{'%s__lte' % self.start_date_field: now()}) |
||||
else: |
||||
return queryset |
||||
|
||||
def published_future(self): |
||||
queryset = self.on_site() |
||||
if self.end_date_field: |
||||
qfilter = ( |
||||
models.Q(**{'%s__gte' % self.end_date_field: now()}) |
||||
| models.Q(**{'%s__isnull' % self.end_date_field: True}) |
||||
) |
||||
queryset = queryset.filter(qfilter) |
||||
return queryset.filter(**{self.publish_field: True}) |
||||
|
||||
def archived(self): |
||||
queryset = self.on_site() |
||||
if self.end_date_field: |
||||
qfilter = ( |
||||
models.Q(**{'%s__lte' % self.end_date_field: now()}) |
||||
| models.Q(**{'%s__isnull' % self.end_date_field: False}) |
||||
) |
||||
queryset = queryset.filter(qfilter) |
||||
return queryset.filter(**{self.publish_field: True}) |
||||
|
||||
def available(self): |
||||
return self.on_site().filter(**{self.publish_field: True}) |
||||
|
||||
def filter_by_language(self, language): |
||||
return self.active_translations(language_code=language).on_site() |
||||
|
||||
|
||||
class GenericDateTaggedManager(TaggedFilterItem, TranslationManager): |
||||
use_for_related_fields = True |
||||
|
||||
queryset_class = GenericDateQuerySet |
||||
|
||||
def get_queryset(self, *args, **kwargs): |
||||
try: |
||||
return super(GenericDateTaggedManager, self).get_queryset(*args, **kwargs) |
||||
except AttributeError: # pragma: no cover |
||||
return super(GenericDateTaggedManager, self).get_query_set(*args, **kwargs) |
||||
if django.VERSION < (1, 8): |
||||
get_query_set = get_queryset |
||||
|
||||
def published(self): |
||||
return self.get_queryset().published() |
||||
|
||||
def available(self): |
||||
return self.get_queryset().available() |
||||
|
||||
def archived(self): |
||||
return self.get_queryset().archived() |
||||
|
||||
def published_future(self): |
||||
return self.get_queryset().published_future() |
||||
|
||||
def filter_by_language(self, language): |
||||
return self.get_queryset().filter_by_language(language) |
||||
|
||||
def get_months(self, queryset=None): |
||||
""" |
||||
Get months with aggregate count (how much posts is in the month). Results are ordered by date. |
||||
""" |
||||
if queryset is None: |
||||
queryset = self.get_queryset() |
||||
queryset = queryset.on_site() |
||||
dates = queryset.values_list(queryset.start_date_field, flat=True) |
||||
dates = [(x.year, x.month) for x in dates] |
||||
date_counter = Counter(dates) |
||||
dates = set(dates) |
||||
dates = sorted(dates, reverse=True) |
||||
return [{'date': now().replace(year=year, month=month, day=1), |
||||
'count': date_counter[year, month]} for year, month in dates] |
||||
@ -0,0 +1,49 @@ |
||||
# # -*- coding: utf-8 -*- |
||||
|
||||
# from __future__ import unicode_literals |
||||
|
||||
# from django.utils.translation import ( |
||||
# get_language_from_request, |
||||
# ugettext_lazy as _, |
||||
# ) |
||||
|
||||
# from cms.menu_bases import CMSAttachMenu |
||||
# from cms.apphook_pool import apphook_pool |
||||
# from menus.base import NavigationNode |
||||
# from menus.menu_pool import menu_pool |
||||
|
||||
# from .models import BlogCategory |
||||
|
||||
|
||||
# class BlogMenu(CMSAttachMenu): |
||||
# name = _('Blog Menu') |
||||
|
||||
# def get_queryset(self, request): |
||||
# """Returns base queryset with support for preview-mode.""" |
||||
# queryset = BlogCategory.objects.all() |
||||
# # if not (request.toolbar and request.toolbar.edit_mode): |
||||
# # queryset = queryset.published() |
||||
# return queryset |
||||
|
||||
# def get_nodes(self, request): |
||||
# nodes = [] |
||||
# language = get_language_from_request(request, check_path=True) |
||||
# articles = self.get_queryset(request).active_translations(language) |
||||
|
||||
# # if hasattr(self, 'instance') and self.instance: |
||||
# # app = apphook_pool.get_apphook(self.instance.application_urls) |
||||
# # config = app.get_config(self.instance.application_namespace) |
||||
# # if config: |
||||
# articles = articles.all() |
||||
|
||||
# for article in articles: |
||||
# node = NavigationNode( |
||||
# article.safe_translation_getter('name', |
||||
# language_code=language), |
||||
# article.get_absolute_url(), |
||||
# article.pk, |
||||
# ) |
||||
# nodes.append(node) |
||||
# return nodes |
||||
|
||||
# menu_pool.register_menu(BlogMenu) |
||||
@ -0,0 +1,136 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from __future__ import unicode_literals |
||||
|
||||
from django.db import models, migrations |
||||
import taggit_autosuggest.managers |
||||
import filer.fields.image |
||||
import meta_mixin.models |
||||
import djangocms_text_ckeditor.fields |
||||
import cms.models.fields |
||||
import django.utils.timezone |
||||
from django.conf import settings |
||||
from django.conf import settings |
||||
|
||||
|
||||
class Migration(migrations.Migration): |
||||
|
||||
dependencies = [ |
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL), |
||||
('cms', '0003_auto_20140926_2347'), |
||||
('taggit', '__first__'), |
||||
('filer', '0001_initial'), |
||||
('cmsplugin_filer_image', '0001_initial'), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.CreateModel( |
||||
name='AuthorEntriesPlugin', |
||||
fields=[ |
||||
('cmsplugin_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='cms.CMSPlugin')), |
||||
('latest_posts', models.IntegerField(default=5, help_text='The number of author articles to be displayed.', verbose_name='Articles')), |
||||
('authors', models.ManyToManyField(to=settings.AUTH_USER_MODEL, verbose_name='Authors')), |
||||
], |
||||
options={ |
||||
'abstract': False, |
||||
}, |
||||
bases=('cms.cmsplugin',), |
||||
), |
||||
migrations.CreateModel( |
||||
name='BlogCategory', |
||||
fields=[ |
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), |
||||
('date_created', models.DateTimeField(auto_now_add=True, verbose_name='created at')), |
||||
('date_modified', models.DateTimeField(auto_now=True, verbose_name='modified at')), |
||||
('parent', models.ForeignKey(verbose_name='parent', blank=True, to='blog.BlogCategory', null=True)), |
||||
], |
||||
options={ |
||||
'verbose_name': 'blog category', |
||||
'verbose_name_plural': 'blog categories', |
||||
}, |
||||
bases=(models.Model,), |
||||
), |
||||
migrations.CreateModel( |
||||
name='BlogCategoryTranslation', |
||||
fields=[ |
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), |
||||
('language_code', models.CharField(db_index=True, max_length=15, verbose_name='Language', choices=settings.LANGUAGES)), |
||||
('name', models.CharField(max_length=255, verbose_name='name')), |
||||
('slug', models.SlugField(verbose_name='slug', blank=True)), |
||||
('master', models.ForeignKey(related_name='translations', editable=False, to='blog.BlogCategory', null=True)), |
||||
], |
||||
options={ |
||||
'db_table': 'blog_blogcategory_translation', |
||||
'verbose_name': 'blog category Translation', |
||||
'default_permissions': (), |
||||
}, |
||||
bases=(models.Model,), |
||||
), |
||||
migrations.CreateModel( |
||||
name='LatestPostsPlugin', |
||||
fields=[ |
||||
('cmsplugin_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='cms.CMSPlugin')), |
||||
('latest_posts', models.IntegerField(default=5, help_text='The number of latests articles to be displayed.', verbose_name='Articles')), |
||||
('categories', models.ManyToManyField(help_text='Show only the blog articles tagged with chosen categories.', to='blog.BlogCategory', blank=True)), |
||||
('tags', models.ManyToManyField(help_text='Show only the blog articles tagged with chosen tags.', to='taggit.Tag', blank=True)), |
||||
], |
||||
options={ |
||||
'abstract': False, |
||||
}, |
||||
bases=('cms.cmsplugin',), |
||||
), |
||||
migrations.CreateModel( |
||||
name='Post', |
||||
fields=[ |
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), |
||||
('date_created', models.DateTimeField(auto_now_add=True)), |
||||
('date_modified', models.DateTimeField(auto_now=True)), |
||||
('date_published', models.DateTimeField(default=django.utils.timezone.now, verbose_name='Published Since')), |
||||
('date_published_end', models.DateTimeField(null=True, verbose_name='Published Until', blank=True)), |
||||
('publish', models.BooleanField(default=False, verbose_name='Publish')), |
||||
('enable_comments', models.BooleanField(default=True, verbose_name='Enable comments on post')), |
||||
('author', models.ForeignKey(related_name='blog_post_author', verbose_name='Author', blank=True, to=settings.AUTH_USER_MODEL, null=True)), |
||||
('categories', models.ManyToManyField(related_name='blog_posts', verbose_name='category', to='blog.BlogCategory')), |
||||
('content', cms.models.fields.PlaceholderField(slotname='post_content', editable=False, to='cms.Placeholder', null=True)), |
||||
('main_image', filer.fields.image.FilerImageField(related_name='blog_post_image', verbose_name='Main image', blank=True, to='filer.Image', null=True)), |
||||
('main_image_full', models.ForeignKey(related_name='blog_post_full', verbose_name='Main image full', blank=True, to='cmsplugin_filer_image.ThumbnailOption', null=True)), |
||||
('main_image_thumbnail', models.ForeignKey(related_name='blog_post_thumbnail', verbose_name='Main image thumbnail', blank=True, to='cmsplugin_filer_image.ThumbnailOption', null=True)), |
||||
('tags', taggit_autosuggest.managers.TaggableManager(to='taggit.Tag', through='taggit.TaggedItem', blank=True, help_text='A comma-separated list of tags.', verbose_name='Tags')), |
||||
], |
||||
options={ |
||||
'ordering': ('-date_published', '-date_created'), |
||||
'get_latest_by': 'date_published', |
||||
'verbose_name': 'blog article', |
||||
'verbose_name_plural': 'blog articles', |
||||
}, |
||||
bases=(meta_mixin.models.ModelMeta, models.Model), |
||||
), |
||||
migrations.CreateModel( |
||||
name='PostTranslation', |
||||
fields=[ |
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), |
||||
('language_code', models.CharField(db_index=True, max_length=15, verbose_name='Language', choices=settings.LANGUAGES)), |
||||
('title', models.CharField(max_length=255, verbose_name='Title')), |
||||
('slug', models.SlugField(verbose_name='slug', blank=True)), |
||||
('abstract', djangocms_text_ckeditor.fields.HTMLField(verbose_name='Abstract')), |
||||
('meta_description', models.TextField(default='', verbose_name='Post meta description', blank=True)), |
||||
('meta_keywords', models.TextField(default='', verbose_name='Post meta keywords', blank=True)), |
||||
('meta_title', models.CharField(default='', help_text='used in title tag and social sharing', max_length=255, verbose_name='Post meta title', blank=True)), |
||||
('post_text', djangocms_text_ckeditor.fields.HTMLField(default='', verbose_name='Text', blank=True)), |
||||
('master', models.ForeignKey(related_name='translations', editable=False, to='blog.Post', null=True)), |
||||
], |
||||
options={ |
||||
'db_table': 'blog_post_translation', |
||||
'verbose_name': 'blog article Translation', |
||||
'default_permissions': (), |
||||
}, |
||||
bases=(models.Model,), |
||||
), |
||||
migrations.AlterUniqueTogether( |
||||
name='posttranslation', |
||||
unique_together=set([('language_code', 'master'), ('language_code', 'slug')]), |
||||
), |
||||
migrations.AlterUniqueTogether( |
||||
name='blogcategorytranslation', |
||||
unique_together=set([('language_code', 'master'), ('language_code', 'slug')]), |
||||
), |
||||
] |
||||
@ -0,0 +1,21 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from __future__ import unicode_literals |
||||
|
||||
from django.db import models, migrations |
||||
|
||||
|
||||
class Migration(migrations.Migration): |
||||
|
||||
dependencies = [ |
||||
('sites', '0001_initial'), |
||||
('blog', '0001_initial'), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.AddField( |
||||
model_name='post', |
||||
name='sites', |
||||
field=models.ManyToManyField(help_text='Select sites in which to show the post. If none is set it will bevisible in all the configured sites.', to='sites.Site', null=True, verbose_name='Site(s', blank=True), |
||||
preserve_default=True, |
||||
), |
||||
] |
||||
@ -0,0 +1,20 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from __future__ import unicode_literals |
||||
|
||||
from django.db import models, migrations |
||||
|
||||
|
||||
class Migration(migrations.Migration): |
||||
|
||||
dependencies = [ |
||||
('blog', '0002_post_sites'), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.AlterField( |
||||
model_name='post', |
||||
name='sites', |
||||
field=models.ManyToManyField(help_text='Select sites in which to show the post. If none is set it will be visible in all the configured sites.', to='sites.Site', null=True, verbose_name='Site(s)', blank=True), |
||||
preserve_default=True, |
||||
), |
||||
] |
||||
@ -0,0 +1,34 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from __future__ import unicode_literals |
||||
|
||||
from django.db import models, migrations |
||||
import filer.fields.image |
||||
import django.db.models.deletion |
||||
|
||||
|
||||
class Migration(migrations.Migration): |
||||
|
||||
dependencies = [ |
||||
('blog', '0003_auto_20141201_2252'), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.AlterField( |
||||
model_name='post', |
||||
name='main_image', |
||||
field=filer.fields.image.FilerImageField(related_name='blog_post_image', on_delete=django.db.models.deletion.SET_NULL, verbose_name='Main image', blank=True, to='filer.Image', null=True), |
||||
preserve_default=True, |
||||
), |
||||
migrations.AlterField( |
||||
model_name='post', |
||||
name='main_image_full', |
||||
field=models.ForeignKey(related_name='blog_post_full', on_delete=django.db.models.deletion.SET_NULL, verbose_name='Main image full', blank=True, to='cmsplugin_filer_image.ThumbnailOption', null=True), |
||||
preserve_default=True, |
||||
), |
||||
migrations.AlterField( |
||||
model_name='post', |
||||
name='main_image_thumbnail', |
||||
field=models.ForeignKey(related_name='blog_post_thumbnail', on_delete=django.db.models.deletion.SET_NULL, verbose_name='Main image thumbnail', blank=True, to='cmsplugin_filer_image.ThumbnailOption', null=True), |
||||
preserve_default=True, |
||||
), |
||||
] |
||||
@ -0,0 +1,27 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from __future__ import unicode_literals |
||||
|
||||
from django.db import models, migrations |
||||
import cms.models.fields |
||||
|
||||
|
||||
class Migration(migrations.Migration): |
||||
|
||||
dependencies = [ |
||||
('blog', '0004_auto_20150108_1435'), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.AlterField( |
||||
model_name='post', |
||||
name='content', |
||||
field=cms.models.fields.PlaceholderField(slotname='post_content', to='cms.Placeholder', null=True, related_name='post_content', editable=False), |
||||
preserve_default=True, |
||||
), |
||||
migrations.AlterField( |
||||
model_name='post', |
||||
name='enable_comments', |
||||
field=models.BooleanField(default=False, verbose_name='Enable comments on post'), |
||||
preserve_default=True, |
||||
), |
||||
] |
||||
@ -0,0 +1,49 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from __future__ import unicode_literals |
||||
|
||||
from django.db import models, migrations |
||||
import datetime |
||||
from django.utils.timezone import utc |
||||
import app_data.fields |
||||
|
||||
|
||||
class Migration(migrations.Migration): |
||||
|
||||
dependencies = [ |
||||
('blog', '0005_auto_20150212_1118'), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.CreateModel( |
||||
name='BlogConfig', |
||||
fields=[ |
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), |
||||
('type', models.CharField(max_length=100, verbose_name='type')), |
||||
('namespace', models.CharField(default=None, unique=True, max_length=100, verbose_name='instance namespace')), |
||||
('app_data', app_data.fields.AppDataField(default=b'{}', editable=False)), |
||||
('category_slug', models.CharField(help_text='How to handle non-permalink urls?', max_length=255, verbose_name='non-permalink handling', blank=True)), |
||||
('paginate_by', models.PositiveIntegerField(default=5, help_text='When paginating list views, how many articles per page?', verbose_name='Paginate size')), |
||||
], |
||||
options={ |
||||
'abstract': False, |
||||
}, |
||||
bases=(models.Model,), |
||||
), |
||||
migrations.CreateModel( |
||||
name='BlogConfigTranslation', |
||||
fields=[ |
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), |
||||
('language_code', models.CharField(max_length=15, verbose_name='Language', db_index=True)), |
||||
('app_title', models.CharField(max_length=234, verbose_name='application title')), |
||||
('master', models.ForeignKey(related_name='translations', editable=False, to='blog.BlogConfig', null=True)), |
||||
], |
||||
options={ |
||||
'managed': True, |
||||
'db_table': 'blog_blogconfig_translation', |
||||
'db_tablespace': '', |
||||
'default_permissions': (), |
||||
'verbose_name': 'blog config Translation', |
||||
}, |
||||
bases=(models.Model,), |
||||
) |
||||
] |
||||
@ -0,0 +1,26 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from __future__ import unicode_literals |
||||
|
||||
from django.db import models, migrations |
||||
|
||||
|
||||
class Migration(migrations.Migration): |
||||
|
||||
dependencies = [ |
||||
('blog', '0006_auto_20150713_1220'), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.AddField( |
||||
model_name='authorentriesplugin', |
||||
name='app_config', |
||||
field=models.ForeignKey(to='blog.BlogConfig'), |
||||
preserve_default=False, |
||||
), |
||||
migrations.AddField( |
||||
model_name='latestpostsplugin', |
||||
name='app_config', |
||||
field=models.ForeignKey(to='blog.BlogConfig'), |
||||
preserve_default=False, |
||||
) |
||||
] |
||||
@ -0,0 +1,58 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from __future__ import unicode_literals |
||||
|
||||
from django.db import models, migrations |
||||
import cms.models.fields |
||||
|
||||
|
||||
class Migration(migrations.Migration): |
||||
|
||||
dependencies = [ |
||||
('cms', '0012_auto_20150607_2207'), |
||||
('blog', '0007_auto_20150713_1250'), |
||||
] |
||||
|
||||
operations = [ |
||||
migrations.AddField( |
||||
model_name='blogconfig', |
||||
name='placeholder_base_sidebar', |
||||
field=cms.models.fields.PlaceholderField(related_name='blog_base_sidebar', slotname='newsblog_base_sidebar', editable=False, to='cms.Placeholder', null=True), |
||||
preserve_default=True, |
||||
), |
||||
migrations.AddField( |
||||
model_name='blogconfig', |
||||
name='placeholder_base_top', |
||||
field=cms.models.fields.PlaceholderField(related_name='blog_base_top', slotname='newsblog_base_top', editable=False, to='cms.Placeholder', null=True), |
||||
preserve_default=True, |
||||
), |
||||
migrations.AddField( |
||||
model_name='blogconfig', |
||||
name='placeholder_detail_bottom', |
||||
field=cms.models.fields.PlaceholderField(related_name='blog_detail_bottom', slotname='newsblog_detail_bottom', editable=False, to='cms.Placeholder', null=True), |
||||
preserve_default=True, |
||||
), |
||||
migrations.AddField( |
||||
model_name='blogconfig', |
||||
name='placeholder_detail_footer', |
||||
field=cms.models.fields.PlaceholderField(related_name='blog_detail_footer', slotname='newsblog_detail_footer', editable=False, to='cms.Placeholder', null=True), |
||||
preserve_default=True, |
||||
), |
||||
migrations.AddField( |
||||
model_name='blogconfig', |
||||
name='placeholder_detail_top', |
||||
field=cms.models.fields.PlaceholderField(related_name='blog_detail_top', slotname='newsblog_detail_top', editable=False, to='cms.Placeholder', null=True), |
||||
preserve_default=True, |
||||
), |
||||
migrations.AddField( |
||||
model_name='blogconfig', |
||||
name='placeholder_list_footer', |
||||
field=cms.models.fields.PlaceholderField(related_name='blog_list_footer', slotname='newsblog_list_footer', editable=False, to='cms.Placeholder', null=True), |
||||
preserve_default=True, |
||||
), |
||||
migrations.AddField( |
||||
model_name='blogconfig', |
||||
name='placeholder_list_top', |
||||
field=cms.models.fields.PlaceholderField(related_name='blog_list_top', slotname='newsblog_list_top', editable=False, to='cms.Placeholder', null=True), |
||||
preserve_default=True, |
||||
), |
||||
] |
||||
@ -0,0 +1,302 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from cms.models import PlaceholderField, CMSPlugin |
||||
from cmsplugin_filer_image.models import ThumbnailOption |
||||
from django.conf import settings as dj_settings |
||||
from django.contrib.sites.models import Site |
||||
from django.core.urlresolvers import reverse |
||||
from django.db import models |
||||
from django.utils import timezone |
||||
from django.utils.encoding import force_text, python_2_unicode_compatible |
||||
from django.utils.html import strip_tags, escape |
||||
from django.utils.text import slugify |
||||
from django.utils.translation import ugettext_lazy as _, get_language |
||||
from djangocms_text_ckeditor.fields import HTMLField |
||||
from filer.fields.image import FilerImageField |
||||
from meta_mixin.models import ModelMeta |
||||
from parler.models import TranslatableModel, TranslatedFields |
||||
from parler.managers import TranslationManager |
||||
from taggit_autosuggest.managers import TaggableManager |
||||
|
||||
from .cms_appconfig import BlogConfig |
||||
from .settings import get_setting |
||||
from .managers import GenericDateTaggedManager |
||||
|
||||
|
||||
BLOG_CURRENT_POST_IDENTIFIER = 'djangocms_post_current' |
||||
|
||||
|
||||
@python_2_unicode_compatible |
||||
class BlogCategory(TranslatableModel): |
||||
""" |
||||
Blog category |
||||
""" |
||||
parent = models.ForeignKey('self', verbose_name=_('parent'), null=True, |
||||
blank=True) |
||||
date_created = models.DateTimeField(_('created at'), auto_now_add=True) |
||||
date_modified = models.DateTimeField(_('modified at'), auto_now=True) |
||||
|
||||
translations = TranslatedFields( |
||||
name=models.CharField(_('name'), max_length=255), |
||||
slug=models.SlugField(_('slug'), blank=True, db_index=True), |
||||
meta={'unique_together': (('language_code', 'slug'),)} |
||||
) |
||||
|
||||
objects = TranslationManager() |
||||
|
||||
class Meta: |
||||
verbose_name = _('blog category') |
||||
verbose_name_plural = _('blog categories') |
||||
|
||||
@property |
||||
def count(self): |
||||
return self.blog_posts.filter(publish=True).count() |
||||
|
||||
def __str__(self): |
||||
return self.safe_translation_getter('name') |
||||
|
||||
def save(self, *args, **kwargs): |
||||
super(BlogCategory, self).save(*args, **kwargs) |
||||
for lang in self.get_available_languages(): |
||||
self.set_current_language(lang) |
||||
if not self.slug and self.name: |
||||
self.slug = slugify(force_text(self.name)) |
||||
self.save_translations() |
||||
|
||||
def get_absolute_url(self): |
||||
kwargs = {'slug': self.safe_translation_getter('slug', |
||||
language_code=get_language(), |
||||
any_language=True)} |
||||
|
||||
return reverse('blog:posts-category', kwargs=kwargs) |
||||
|
||||
@python_2_unicode_compatible |
||||
class Post(ModelMeta, TranslatableModel): |
||||
""" |
||||
Blog post |
||||
""" |
||||
author = models.ForeignKey(dj_settings.AUTH_USER_MODEL, |
||||
verbose_name=_('Author'), null=True, blank=True, |
||||
related_name='blog_post_author') |
||||
|
||||
date_created = models.DateTimeField(auto_now_add=True) |
||||
date_modified = models.DateTimeField(auto_now=True) |
||||
date_published = models.DateTimeField(_('Published Since'), |
||||
default=timezone.now) |
||||
date_published_end = models.DateTimeField(_('Published Until'), null=True, |
||||
blank=True) |
||||
publish = models.BooleanField(_('Publish'), default=False) |
||||
categories = models.ManyToManyField(BlogCategory, verbose_name=_('category'), |
||||
related_name='blog_posts',) |
||||
main_image = FilerImageField(verbose_name=_('Main image'), blank=True, null=True, |
||||
on_delete=models.SET_NULL, |
||||
related_name='blog_post_image') |
||||
main_image_thumbnail = models.ForeignKey(ThumbnailOption, |
||||
verbose_name=_('Main image thumbnail'), |
||||
related_name='blog_post_thumbnail', |
||||
on_delete=models.SET_NULL, |
||||
blank=True, null=True) |
||||
main_image_full = models.ForeignKey(ThumbnailOption, |
||||
verbose_name=_('Main image full'), |
||||
related_name='blog_post_full', |
||||
on_delete=models.SET_NULL, |
||||
blank=True, null=True) |
||||
enable_comments = models.BooleanField( |
||||
verbose_name=_(u'Enable comments on post'), |
||||
default=get_setting('ENABLE_COMMENTS') |
||||
) |
||||
sites = models.ManyToManyField(Site, verbose_name=_(u'Site(s)'), blank=True, |
||||
null=True, |
||||
help_text=_(u'Select sites in which to show the post. ' |
||||
u'If none is set it will be ' |
||||
u'visible in all the configured sites.') |
||||
) |
||||
|
||||
translations = TranslatedFields( |
||||
title=models.CharField(_('Title'), max_length=255), |
||||
slug=models.SlugField(_('slug'), blank=True, db_index=True), |
||||
abstract=HTMLField(_('Abstract')), |
||||
meta_description=models.TextField(verbose_name=_(u'Post meta description'), |
||||
blank=True, default=''), |
||||
meta_keywords=models.TextField(verbose_name=_(u'Post meta keywords'), |
||||
blank=True, default=''), |
||||
meta_title=models.CharField(verbose_name=_(u'Post meta title'), |
||||
help_text=_(u'used in title tag and social sharing'), |
||||
max_length=255, |
||||
blank=True, default=''), |
||||
post_text=HTMLField(_('Text'), default='', blank=True), |
||||
meta={'unique_together': (('language_code', 'slug'),)} |
||||
) |
||||
content = PlaceholderField('post_content', related_name='post_content') |
||||
|
||||
objects = GenericDateTaggedManager() |
||||
tags = TaggableManager(blank=True, related_name='blog_tags') |
||||
|
||||
_metadata = { |
||||
'title': 'get_title', |
||||
'description': 'get_description', |
||||
'og_description': 'get_description', |
||||
'twitter_description': 'get_description', |
||||
'gplus_description': 'get_description', |
||||
'keywords': 'get_keywords', |
||||
'locale': None, |
||||
'image': 'get_image_full_url', |
||||
'object_type': get_setting('TYPE'), |
||||
'og_type': get_setting('FB_TYPE'), |
||||
'og_app_id': get_setting('FB_APPID'), |
||||
'og_profile_id': get_setting('FB_PROFILE_ID'), |
||||
'og_publisher': get_setting('FB_PUBLISHER'), |
||||
'og_author_url': get_setting('FB_AUTHOR_URL'), |
||||
'twitter_type': get_setting('TWITTER_TYPE'), |
||||
'twitter_site': get_setting('TWITTER_SITE'), |
||||
'twitter_author': get_setting('TWITTER_AUTHOR'), |
||||
'gplus_type': get_setting('GPLUS_TYPE'), |
||||
'gplus_author': get_setting('GPLUS_AUTHOR'), |
||||
'published_time': 'date_published', |
||||
'modified_time': 'date_modified', |
||||
'expiration_time': 'date_published_end', |
||||
'tag': 'get_tags', |
||||
'url': 'get_absolute_url', |
||||
} |
||||
|
||||
def get_title(self): |
||||
title = self.safe_translation_getter('meta_title', any_language=True) |
||||
if not title: |
||||
title = self.safe_translation_getter('title', any_language=True) |
||||
return title.strip() |
||||
|
||||
def get_keywords(self): |
||||
return self.safe_translation_getter('meta_keywords').strip().split(',') |
||||
|
||||
def get_description(self): |
||||
description = self.safe_translation_getter('meta_description', any_language=True) |
||||
if not description: |
||||
description = self.safe_translation_getter('abstract', any_language=True) |
||||
return escape(strip_tags(description)).strip() |
||||
|
||||
def get_image_full_url(self): |
||||
if self.main_image: |
||||
return self.make_full_url(self.main_image.url) |
||||
return '' |
||||
|
||||
def get_tags(self): |
||||
taglist = [tag.name for tag in self.tags.all()] |
||||
return ','.join(taglist) |
||||
|
||||
def get_author(self): |
||||
return self.author |
||||
|
||||
class Meta: |
||||
verbose_name = _('blog article') |
||||
verbose_name_plural = _('blog articles') |
||||
ordering = ('-date_published', '-date_created') |
||||
get_latest_by = 'date_published' |
||||
|
||||
def __str__(self): |
||||
return self.safe_translation_getter('title') |
||||
|
||||
def save(self, *args, **kwargs): |
||||
super(Post, self).save(*args, **kwargs) |
||||
main_lang = self.get_current_language() |
||||
for lang in self.get_available_languages(): |
||||
self.set_current_language(lang) |
||||
if not self.slug and self.title: |
||||
self.slug = slugify(self.title) |
||||
self.set_current_language(main_lang) |
||||
self.save_translations() |
||||
|
||||
def get_absolute_url(self, namespace="blog"): |
||||
kwargs = {'year': self.date_published.year, |
||||
'month': '%02d' % self.date_published.month, |
||||
'day': '%02d' % self.date_published.day, |
||||
'slug': self.safe_translation_getter('slug', |
||||
language_code=get_language(), |
||||
any_language=True)} |
||||
|
||||
if self.categories.exists(): |
||||
namespace = self.categories.all()[0].slug |
||||
|
||||
return reverse('{0}:post-detail'.format(namespace), kwargs=kwargs) |
||||
|
||||
# return reverse('blog:post-detail', kwargs=kwargs) |
||||
|
||||
def thumbnail_options(self): |
||||
if self.main_image_thumbnail_id: |
||||
return self.main_image_thumbnail.as_dict |
||||
else: |
||||
return get_setting('IMAGE_THUMBNAIL_SIZE') |
||||
|
||||
def full_image_options(self): |
||||
if self.main_image_full_id: |
||||
return self.main_image_full.as_dict |
||||
else: |
||||
return get_setting('IMAGE_FULL_SIZE') |
||||
|
||||
def get_full_url(self): |
||||
return self.make_full_url(self.get_absolute_url()) |
||||
|
||||
|
||||
@python_2_unicode_compatible |
||||
class BasePostPlugin(CMSPlugin): |
||||
app_config = models.ForeignKey(BlogConfig) |
||||
|
||||
class Meta: |
||||
abstract = True |
||||
|
||||
def post_queryset(self, request=None): |
||||
language = get_language() |
||||
posts = Post._default_manager.active_translations(language_code=language) |
||||
if not request or not getattr(request, 'toolbar', False) or not request.toolbar.edit_mode: |
||||
posts = posts.published() |
||||
return posts |
||||
|
||||
def __str__(self): |
||||
return unicode(self.latest_posts) |
||||
|
||||
|
||||
class LatestPostsPlugin(BasePostPlugin): |
||||
|
||||
latest_posts = models.IntegerField(_(u'Articles'), default=get_setting('LATEST_POSTS'), |
||||
help_text=_('The number of latests articles to be displayed.')) |
||||
categories = models.ManyToManyField('BlogCategory', blank=True, |
||||
help_text=_('Show only the blog articles tagged with chosen categories.')) |
||||
|
||||
def __str__(self): |
||||
return u'%s latest articles by category' % self.latest_posts |
||||
|
||||
|
||||
def get_posts(self, request): |
||||
posts = self.post_queryset(request) |
||||
|
||||
if self.categories.exists(): |
||||
posts = posts.filter(categories__in=list(self.categories.all())) |
||||
|
||||
return posts[:self.latest_posts] |
||||
|
||||
|
||||
class AuthorEntriesPlugin(BasePostPlugin): |
||||
authors = models.ManyToManyField( |
||||
dj_settings.AUTH_USER_MODEL, verbose_name=_('Authors'), |
||||
limit_choices_to={'blog_post_author__publish': True} |
||||
) |
||||
latest_posts = models.IntegerField( |
||||
_(u'Articles'), default=get_setting('LATEST_POSTS'), |
||||
help_text=_('The number of author articles to be displayed.') |
||||
) |
||||
|
||||
def __str__(self): |
||||
return u'%s latest articles by author' % self.latest_posts |
||||
|
||||
def copy_relations(self, oldinstance): |
||||
self.authors = oldinstance.authors.all() |
||||
|
||||
def get_posts(self, request): |
||||
posts = self.post_queryset(request) |
||||
return posts[:self.latest_posts] |
||||
|
||||
def get_authors(self): |
||||
authors = self.authors.all() |
||||
for author in authors: |
||||
author.count = 0 |
||||
if author.blog_post_author.filter(publish=True).exists(): |
||||
author.count = author.blog_post_author.filter(publish=True).count() |
||||
return authors |
||||
@ -0,0 +1,54 @@ |
||||
# -*- coding: utf-8 -*- |
||||
|
||||
|
||||
def get_setting(name): |
||||
from django.conf import settings |
||||
from meta_mixin import settings as meta_settings |
||||
|
||||
default = { |
||||
'BLOG_IMAGE_THUMBNAIL_SIZE': getattr(settings, 'BLOG_IMAGE_THUMBNAIL_SIZE', { |
||||
'size': '120x120', |
||||
'crop': True, |
||||
'upscale': False |
||||
}), |
||||
|
||||
'BLOG_IMAGE_FULL_SIZE': getattr(settings, 'BLOG_IMAGE_FULL_SIZE', { |
||||
'size': '640x120', |
||||
'crop': True, |
||||
'upscale': False |
||||
}), |
||||
|
||||
'BLOG_TAGCLOUD_MIN': getattr(settings, 'BLOG_TAGCLOUD_MIN', 1), |
||||
'BLOG_TAGCLOUD_MAX': getattr(settings, 'BLOG_TAGCLOUD_MAX', 10), |
||||
'BLOG_PAGINATION': getattr(settings, 'BLOG_PAGINATION', 10), |
||||
'BLOG_LATEST_POSTS': getattr(settings, 'BLOG_LATEST_POSTS', 5), |
||||
'BLOG_POSTS_LIST_TRUNCWORDS_COUNT': getattr(settings, |
||||
'BLOG_POSTS_LIST_TRUNCWORDS_COUNT', |
||||
100), |
||||
'BLOG_TYPE': getattr(settings, 'BLOG_TYPE', 'Article'), |
||||
'BLOG_FB_TYPE': getattr(settings, 'BLOG_FB_TYPE', 'Article'), |
||||
'BLOG_FB_APPID': getattr(settings, 'BLOG_FB_APPID', |
||||
meta_settings.FB_APPID), |
||||
'BLOG_FB_PROFILE_ID': getattr(settings, 'BLOG_FB_PROFILE_ID', |
||||
meta_settings.FB_PROFILE_ID), |
||||
'BLOG_FB_PUBLISHER': getattr(settings, 'BLOG_FB_PUBLISHER', |
||||
meta_settings.FB_PUBLISHER), |
||||
'BLOG_FB_AUTHOR_URL': getattr(settings, 'BLOG_FB_AUTHOR_URL', |
||||
'get_author_url'), |
||||
'BLOG_FB_AUTHOR': getattr(settings, 'BLOG_FB_AUTHOR', |
||||
'get_author_name'), |
||||
'BLOG_TWITTER_TYPE': getattr(settings, 'BLOG_TWITTER_TYPE', 'Summary'), |
||||
'BLOG_TWITTER_SITE': getattr(settings, 'BLOG_TWITTER_SITE', |
||||
meta_settings.TWITTER_SITE), |
||||
'BLOG_TWITTER_AUTHOR': getattr(settings, 'BLOG_TWITTER_AUTHOR', |
||||
'get_author_twitter'), |
||||
'BLOG_GPLUS_TYPE': getattr(settings, 'BLOG_GPLUS_SCOPE_CATEGORY', |
||||
'Blog'), |
||||
'BLOG_GPLUS_AUTHOR': getattr(settings, 'BLOG_GPLUS_AUTHOR', |
||||
'get_author_gplus'), |
||||
'BLOG_ENABLE_COMMENTS': getattr(settings, 'BLOG_ENABLE_COMMENTS', True), |
||||
'BLOG_USE_PLACEHOLDER': getattr(settings, 'BLOG_USE_PLACEHOLDER', True), |
||||
'BLOG_MULTISITE': getattr(settings, 'BLOG_MULTISITE', True), |
||||
'BLOG_AUTHOR_DEFAULT': getattr(settings, 'BLOG_AUTHOR_DEFAULT', True), |
||||
} |
||||
return default['BLOG_%s' % name] |
||||
@ -0,0 +1,15 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django.contrib.sitemaps import Sitemap |
||||
|
||||
from ..models import Post |
||||
|
||||
|
||||
class BlogSitemap(Sitemap): |
||||
changefreq = "never" |
||||
priority = 0.5 |
||||
|
||||
def items(self): |
||||
return Post.objects.published() |
||||
|
||||
def lastmod(self, obj): |
||||
return obj.date_modified |
||||
@ -0,0 +1,342 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django.contrib.auth import get_user_model |
||||
from django.utils import timezone |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
User = get_user_model() |
||||
user_orm_label = '%s.%s' % (User._meta.app_label, User._meta.object_name) |
||||
user_model_label = '%s.%s' % (User._meta.app_label, User._meta.module_name) |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Adding model 'BlogCategoryTranslation' |
||||
db.create_table(u'blog_blogcategory_translation', ( |
||||
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
||||
('language_code', self.gf('django.db.models.fields.CharField')(max_length=15, db_index=True)), |
||||
('name', self.gf('django.db.models.fields.CharField')(max_length=200)), |
||||
('slug', self.gf('django.db.models.fields.SlugField')(max_length=50, blank=True, db_index=True)), |
||||
('master', self.gf('django.db.models.fields.related.ForeignKey')(related_name='translations', null=True, to=orm['blog.BlogCategory'])), |
||||
)) |
||||
db.send_create_signal(u'blog', ['BlogCategoryTranslation']) |
||||
|
||||
# Adding unique constraint on 'BlogCategoryTranslation', fields ['language_code', 'slug'] |
||||
db.create_unique(u'blog_blogcategory_translation', ['language_code', 'slug']) |
||||
|
||||
# Adding unique constraint on 'BlogCategoryTranslation', fields ['language_code', 'master'] |
||||
db.create_unique(u'blog_blogcategory_translation', ['language_code', 'master_id']) |
||||
|
||||
# Adding model 'BlogCategory' |
||||
db.create_table(u'blog_blogcategory', ( |
||||
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
||||
('parent', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['blog.BlogCategory'], null=True, blank=True)), |
||||
('date_created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), |
||||
('date_modified', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), |
||||
)) |
||||
db.send_create_signal(u'blog', ['BlogCategory']) |
||||
|
||||
# Adding model 'PostTranslation' |
||||
db.create_table(u'blog_post_translation', ( |
||||
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
||||
('language_code', self.gf('django.db.models.fields.CharField')(max_length=15, db_index=True)), |
||||
('title', self.gf('django.db.models.fields.CharField')(max_length=255)), |
||||
('slug', self.gf('django.db.models.fields.SlugField')(db_index=True, max_length=50, blank=True)), |
||||
('abstract', self.gf('djangocms_text_ckeditor.fields.HTMLField')()), |
||||
('master', self.gf('django.db.models.fields.related.ForeignKey')(related_name='translations', null=True, to=orm['blog.Post'])), |
||||
)) |
||||
db.send_create_signal(u'blog', ['PostTranslation']) |
||||
|
||||
# Adding unique constraint on 'PostTranslation', fields ['language_code', 'slug'] |
||||
db.create_unique(u'blog_post_translation', ['language_code', 'slug']) |
||||
|
||||
# Adding unique constraint on 'PostTranslation', fields ['language_code', 'master'] |
||||
db.create_unique(u'blog_post_translation', ['language_code', 'master_id']) |
||||
|
||||
# Adding model 'Post' |
||||
db.create_table(u'blog_post', ( |
||||
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), |
||||
('author', self.gf('django.db.models.fields.related.ForeignKey')(to=orm[user_orm_label])), |
||||
('date_created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), |
||||
('date_modified', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), |
||||
('date_published', self.gf('django.db.models.fields.DateTimeField')(default=timezone.now)), |
||||
('date_published_end', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)), |
||||
('publish', self.gf('django.db.models.fields.BooleanField')(default=False)), |
||||
('main_image', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['filer.Image'], null=True, blank=True)), |
||||
('main_image_thumbnail', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='blog_post_thumbnail', null=True, to=orm['cmsplugin_filer_image.ThumbnailOption'])), |
||||
('main_image_full', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='blog_post_full', null=True, to=orm['cmsplugin_filer_image.ThumbnailOption'])), |
||||
('content', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['cms.Placeholder'], null=True)), |
||||
)) |
||||
db.send_create_signal(u'blog', ['Post']) |
||||
|
||||
# Adding M2M table for field categories on 'Post' |
||||
m2m_table_name = db.shorten_name(u'blog_post_categories') |
||||
db.create_table(m2m_table_name, ( |
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), |
||||
('post', models.ForeignKey(orm[u'blog.post'], null=False)), |
||||
('blogcategory', models.ForeignKey(orm[u'blog.blogcategory'], null=False)) |
||||
)) |
||||
db.create_unique(m2m_table_name, ['post_id', 'blogcategory_id']) |
||||
|
||||
# Adding model 'LatestPostsPlugin' |
||||
db.create_table(u'cmsplugin_latestpostsplugin', ( |
||||
(u'cmsplugin_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['cms.CMSPlugin'], unique=True, primary_key=True)), |
||||
('latest_posts', self.gf('django.db.models.fields.IntegerField')(default=5)), |
||||
)) |
||||
db.send_create_signal(u'blog', ['LatestPostsPlugin']) |
||||
|
||||
# Adding M2M table for field tags on 'LatestPostsPlugin' |
||||
m2m_table_name = db.shorten_name(u'blog_latestpostsplugin_tags') |
||||
db.create_table(m2m_table_name, ( |
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), |
||||
('latestpostsplugin', models.ForeignKey(orm[u'blog.latestpostsplugin'], null=False)), |
||||
('tag', models.ForeignKey(orm[u'taggit.tag'], null=False)) |
||||
)) |
||||
db.create_unique(m2m_table_name, ['latestpostsplugin_id', 'tag_id']) |
||||
|
||||
# Adding M2M table for field categories on 'LatestPostsPlugin' |
||||
m2m_table_name = db.shorten_name(u'blog_latestpostsplugin_categories') |
||||
db.create_table(m2m_table_name, ( |
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), |
||||
('latestpostsplugin', models.ForeignKey(orm[u'blog.latestpostsplugin'], null=False)), |
||||
('blogcategory', models.ForeignKey(orm[u'blog.blogcategory'], null=False)) |
||||
)) |
||||
db.create_unique(m2m_table_name, ['latestpostsplugin_id', 'blogcategory_id']) |
||||
|
||||
# Adding model 'AuthorEntriesPlugin' |
||||
db.create_table(u'cmsplugin_authorentriesplugin', ( |
||||
(u'cmsplugin_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['cms.CMSPlugin'], unique=True, primary_key=True)), |
||||
('latest_posts', self.gf('django.db.models.fields.IntegerField')(default=5)), |
||||
)) |
||||
db.send_create_signal(u'blog', ['AuthorEntriesPlugin']) |
||||
|
||||
# Adding M2M table for field authors on 'AuthorEntriesPlugin' |
||||
m2m_table_name = db.shorten_name(u'blog_authorentriesplugin_authors') |
||||
db.create_table(m2m_table_name, ( |
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), |
||||
('authorentriesplugin', models.ForeignKey(orm[u'blog.authorentriesplugin'], null=False)), |
||||
('user', models.ForeignKey(orm[user_orm_label], null=False)) |
||||
)) |
||||
db.create_unique(m2m_table_name, ['authorentriesplugin_id', 'user_id']) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Removing unique constraint on 'PostTranslation', fields ['language_code', 'master'] |
||||
db.delete_unique(u'blog_post_translation', ['language_code', 'master_id']) |
||||
|
||||
# Removing unique constraint on 'PostTranslation', fields ['language_code', 'slug'] |
||||
db.delete_unique(u'blog_post_translation', ['language_code', 'slug']) |
||||
|
||||
# Removing unique constraint on 'BlogCategoryTranslation', fields ['language_code', 'master'] |
||||
db.delete_unique(u'blog_blogcategory_translation', ['language_code', 'master_id']) |
||||
|
||||
# Removing unique constraint on 'BlogCategoryTranslation', fields ['language_code', 'slug'] |
||||
db.delete_unique(u'blog_blogcategory_translation', ['language_code', 'slug']) |
||||
|
||||
# Deleting model 'BlogCategoryTranslation' |
||||
db.delete_table(u'blog_blogcategory_translation') |
||||
|
||||
# Deleting model 'BlogCategory' |
||||
db.delete_table(u'blog_blogcategory') |
||||
|
||||
# Deleting model 'PostTranslation' |
||||
db.delete_table(u'blog_post_translation') |
||||
|
||||
# Deleting model 'Post' |
||||
db.delete_table(u'blog_post') |
||||
|
||||
# Removing M2M table for field categories on 'Post' |
||||
db.delete_table(db.shorten_name(u'blog_post_categories')) |
||||
|
||||
# Deleting model 'LatestPostsPlugin' |
||||
db.delete_table(u'cmsplugin_latestpostsplugin') |
||||
|
||||
# Removing M2M table for field tags on 'LatestPostsPlugin' |
||||
db.delete_table(db.shorten_name(u'blog_latestpostsplugin_tags')) |
||||
|
||||
# Removing M2M table for field categories on 'LatestPostsPlugin' |
||||
db.delete_table(db.shorten_name(u'blog_latestpostsplugin_categories')) |
||||
|
||||
# Deleting model 'AuthorEntriesPlugin' |
||||
db.delete_table(u'cmsplugin_authorentriesplugin') |
||||
|
||||
# Removing M2M table for field authors on 'AuthorEntriesPlugin' |
||||
db.delete_table(db.shorten_name(u'blog_authorentriesplugin_authors')) |
||||
|
||||
|
||||
models = { |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
user_model_label: { |
||||
'Meta': {'object_name': User.__name__, 'db_table': "'%s'" % User._meta.db_table}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'cmsplugin_filer_image.thumbnailoption': { |
||||
'Meta': {'ordering': "('width', 'height')", 'object_name': 'ThumbnailOption'}, |
||||
'crop': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'height': ('django.db.models.fields.IntegerField', [], {}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'upscale': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'width': ('django.db.models.fields.IntegerField', [], {}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
u'blog.authorentriesplugin': { |
||||
'Meta': {'object_name': 'AuthorEntriesPlugin', 'db_table': "u'cmsplugin_authorentriesplugin'", '_ormbases': ['cms.CMSPlugin']}, |
||||
'authors': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['%s']" % user_orm_label, 'symmetrical': 'False'}), |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'latest_posts': ('django.db.models.fields.IntegerField', [], {'default': '5'}) |
||||
}, |
||||
u'blog.blogcategory': { |
||||
'Meta': {'object_name': 'BlogCategory'}, |
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['blog.BlogCategory']", 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'blog.blogcategorytranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'slug'), ('language_code', 'master')]", 'object_name': 'BlogCategoryTranslation', 'db_table': "u'blog_blogcategory_translation'"}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['blog.BlogCategory']"}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}) |
||||
}, |
||||
u'blog.latestpostsplugin': { |
||||
'Meta': {'object_name': 'LatestPostsPlugin', 'db_table': "u'cmsplugin_latestpostsplugin'", '_ormbases': ['cms.CMSPlugin']}, |
||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['blog.BlogCategory']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'latest_posts': ('django.db.models.fields.IntegerField', [], {'default': '5'}), |
||||
'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['taggit.Tag']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'blog.post': { |
||||
'Meta': {'ordering': "('-date_published', '-date_created')", 'object_name': 'Post'}, |
||||
'author': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['%s']" % user_orm_label}), |
||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'blog_posts'", 'symmetrical': 'False', 'to': u"orm['blog.BlogCategory']"}), |
||||
'content': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'date_published': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'date_published_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'main_image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']", 'null': 'True', 'blank': 'True'}), |
||||
'main_image_full': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_full'", 'null': 'True', 'to': u"orm['cmsplugin_filer_image.ThumbnailOption']"}), |
||||
'main_image_thumbnail': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_thumbnail'", 'null': 'True', 'to': u"orm['cmsplugin_filer_image.ThumbnailOption']"}), |
||||
'publish': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) |
||||
}, |
||||
u'blog.posttranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'slug'), ('language_code', 'master')]", 'object_name': 'PostTranslation', 'db_table': "u'blog_post_translation'"}, |
||||
'abstract': ('djangocms_text_ckeditor.fields.HTMLField', [], {}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['blog.Post']"}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'blank': 'True'}), |
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['%s']" % user_orm_label}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
u'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['%s']" % user_orm_label}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
u'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'related_url': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'taggit.tag': { |
||||
'Meta': {'object_name': 'Tag'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '100'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['blog'] |
||||
@ -0,0 +1,192 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django.conf import settings as dj_settings |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Changing field 'Post.author' |
||||
db.alter_column(u'blog_post', 'author_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm[dj_settings.AUTH_USER_MODEL], null=True)) |
||||
|
||||
def backwards(self, orm): |
||||
raise RuntimeError("Cannot reverse this migration. 'Post.author' and its values cannot be restored.") |
||||
|
||||
# The following code is provided here to aid in writing a correct migration |
||||
# Changing field 'Post.author' |
||||
db.alter_column(u'blog_post', 'author_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm[dj_settings.AUTH_USER_MODEL])) |
||||
|
||||
models = { |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'cmsplugin_filer_image.thumbnailoption': { |
||||
'Meta': {'ordering': "('width', 'height')", 'object_name': 'ThumbnailOption'}, |
||||
'crop': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'height': ('django.db.models.fields.IntegerField', [], {}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'upscale': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'width': ('django.db.models.fields.IntegerField', [], {}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
u'blog.authorentriesplugin': { |
||||
'Meta': {'object_name': 'AuthorEntriesPlugin', 'db_table': "u'cmsplugin_authorentriesplugin'", '_ormbases': ['cms.CMSPlugin']}, |
||||
'authors': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL, 'symmetrical': 'False'}), |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'latest_posts': ('django.db.models.fields.IntegerField', [], {'default': '5'}) |
||||
}, |
||||
u'blog.blogcategory': { |
||||
'Meta': {'object_name': 'BlogCategory'}, |
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['blog.BlogCategory']", 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'blog.blogcategory_translation': { |
||||
'Meta': {'unique_together': "[('language_code', 'slug'), ('language_code', 'master')]", 'object_name': 'BlogCategory_Translation'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['blog.BlogCategory']"}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}) |
||||
}, |
||||
u'blog.latestpostsplugin': { |
||||
'Meta': {'object_name': 'LatestPostsPlugin', 'db_table': "u'cmsplugin_latestpostsplugin'", '_ormbases': ['cms.CMSPlugin']}, |
||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['blog.BlogCategory']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'latest_posts': ('django.db.models.fields.IntegerField', [], {'default': '5'}), |
||||
'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['taggit.Tag']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'blog.post': { |
||||
'Meta': {'ordering': "('-date_published', '-date_created')", 'object_name': 'Post'}, |
||||
'author': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL, 'null': 'True', 'blank': 'True'}), |
||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'blog_posts'", 'symmetrical': 'False', 'to': u"orm['blog.BlogCategory']"}), |
||||
'content': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'date_published': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'date_published_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'main_image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']", 'null': 'True', 'blank': 'True'}), |
||||
'main_image_full': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_full'", 'null': 'True', 'to': u"orm['cmsplugin_filer_image.ThumbnailOption']"}), |
||||
'main_image_thumbnail': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_thumbnail'", 'null': 'True', 'to': u"orm['cmsplugin_filer_image.ThumbnailOption']"}), |
||||
'publish': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) |
||||
}, |
||||
u'blog.post_translation': { |
||||
'Meta': {'unique_together': "[('language_code', 'slug'), ('language_code', 'master')]", 'object_name': 'Post_Translation'}, |
||||
'abstract': ('djangocms_text_ckeditor.fields.HTMLField', [], {}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['blog.Post']"}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}), |
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
u'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
u'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'related_url': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'taggit.tag': { |
||||
'Meta': {'object_name': 'Tag'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '100'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['blog'] |
||||
@ -0,0 +1,197 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django.conf import settings as dj_settings |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
db.rename_table(u'cmsplugin_latestpostsplugin', u'blog_latestpostsplugin') |
||||
db.rename_table(u'cmsplugin_authorentriesplugin', u'blog_authorentriesplugin') |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
db.rename_table(u'blog_latestpostsplugin', u'cmsplugin_latestpostsplugin') |
||||
db.rename_table(u'blog_authorentriesplugin', u'cmsplugin_authorentriesplugin') |
||||
|
||||
|
||||
models = { |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'cmsplugin_filer_image.thumbnailoption': { |
||||
'Meta': {'ordering': "('width', 'height')", 'object_name': 'ThumbnailOption'}, |
||||
'crop': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'height': ('django.db.models.fields.IntegerField', [], {}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'upscale': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'width': ('django.db.models.fields.IntegerField', [], {}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
u'blog.authorentriesplugin': { |
||||
'Meta': {'object_name': 'AuthorEntriesPlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
'authors': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL, 'symmetrical': 'False'}), |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'latest_posts': ('django.db.models.fields.IntegerField', [], {'default': '5'}) |
||||
}, |
||||
u'blog.blogcategory': { |
||||
'Meta': {'object_name': 'BlogCategory'}, |
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['blog.BlogCategory']", 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'blog.blogcategorytranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'slug'), (u'language_code', u'master')]", 'object_name': 'BlogCategoryTranslation', 'db_table': "u'blog_blogcategory_translation'"}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
u'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['blog.BlogCategory']"}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}) |
||||
}, |
||||
u'blog.latestpostsplugin': { |
||||
'Meta': {'object_name': 'LatestPostsPlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['blog.BlogCategory']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'latest_posts': ('django.db.models.fields.IntegerField', [], {'default': '5'}), |
||||
'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['taggit.Tag']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'blog.post': { |
||||
'Meta': {'ordering': "('-date_published', '-date_created')", 'object_name': 'Post'}, |
||||
'author': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL, 'null': 'True', 'blank': 'True'}), |
||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'blog_posts'", 'symmetrical': 'False', 'to': u"orm['blog.BlogCategory']"}), |
||||
'content': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'date_published': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'date_published_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'main_image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']", 'null': 'True', 'blank': 'True'}), |
||||
'main_image_full': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_full'", 'null': 'True', 'to': u"orm['cmsplugin_filer_image.ThumbnailOption']"}), |
||||
'main_image_thumbnail': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_thumbnail'", 'null': 'True', 'to': u"orm['cmsplugin_filer_image.ThumbnailOption']"}), |
||||
'publish': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) |
||||
}, |
||||
u'blog.posttranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'slug'), (u'language_code', u'master')]", 'object_name': 'PostTranslation', 'db_table': "u'blog_post_translation'"}, |
||||
'abstract': ('djangocms_text_ckeditor.fields.HTMLField', [], {}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
u'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['blog.Post']"}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}), |
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
u'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
u'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'taggit.tag': { |
||||
'Meta': {'object_name': 'Tag'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '100'}) |
||||
}, |
||||
u'taggit.taggeditem': { |
||||
'Meta': {'object_name': 'TaggedItem'}, |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "u'taggit_taggeditem_tagged_items'", 'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'object_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True'}), |
||||
'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "u'taggit_taggeditem_items'", 'to': u"orm['taggit.Tag']"}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['blog'] |
||||
@ -0,0 +1,200 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django.conf import settings as dj_settings |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Adding field 'PostTranslation.meta_description' |
||||
db.add_column(u'blog_post_translation', 'meta_description', |
||||
self.gf('django.db.models.fields.TextField')(default='', blank=True), |
||||
keep_default=False) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Deleting field 'PostTranslation.meta_description' |
||||
db.delete_column(u'blog_post_translation', 'meta_description') |
||||
|
||||
|
||||
models = { |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'cmsplugin_filer_image.thumbnailoption': { |
||||
'Meta': {'ordering': "('width', 'height')", 'object_name': 'ThumbnailOption'}, |
||||
'crop': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'height': ('django.db.models.fields.IntegerField', [], {}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'upscale': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'width': ('django.db.models.fields.IntegerField', [], {}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
u'blog.authorentriesplugin': { |
||||
'Meta': {'object_name': 'AuthorEntriesPlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
'authors': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL, 'symmetrical': 'False'}), |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'latest_posts': ('django.db.models.fields.IntegerField', [], {'default': '5'}) |
||||
}, |
||||
u'blog.blogcategory': { |
||||
'Meta': {'object_name': 'BlogCategory'}, |
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['blog.BlogCategory']", 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'blog.blogcategorytranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'slug'), (u'language_code', u'master')]", 'object_name': 'BlogCategoryTranslation', 'db_table': "u'blog_blogcategory_translation'"}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
u'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['blog.BlogCategory']"}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}) |
||||
}, |
||||
u'blog.latestpostsplugin': { |
||||
'Meta': {'object_name': 'LatestPostsPlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['blog.BlogCategory']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'latest_posts': ('django.db.models.fields.IntegerField', [], {'default': '5'}), |
||||
'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['taggit.Tag']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'blog.post': { |
||||
'Meta': {'ordering': "('-date_published', '-date_created')", 'object_name': 'Post'}, |
||||
'author': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL, 'null': 'True', 'blank': 'True'}), |
||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'blog_posts'", 'symmetrical': 'False', 'to': u"orm['blog.BlogCategory']"}), |
||||
'content': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'date_published': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'date_published_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'main_image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']", 'null': 'True', 'blank': 'True'}), |
||||
'main_image_full': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_full'", 'null': 'True', 'to': u"orm['cmsplugin_filer_image.ThumbnailOption']"}), |
||||
'main_image_thumbnail': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_thumbnail'", 'null': 'True', 'to': u"orm['cmsplugin_filer_image.ThumbnailOption']"}), |
||||
'publish': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) |
||||
}, |
||||
u'blog.posttranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'slug'), (u'language_code', u'master')]", 'object_name': 'PostTranslation', 'db_table': "u'blog_post_translation'"}, |
||||
'abstract': ('djangocms_text_ckeditor.fields.HTMLField', [], {}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
u'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['blog.Post']"}), |
||||
'meta_description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}), |
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
u'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
u'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'taggit.tag': { |
||||
'Meta': {'object_name': 'Tag'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '100'}) |
||||
}, |
||||
u'taggit.taggeditem': { |
||||
'Meta': {'object_name': 'TaggedItem'}, |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "u'taggit_taggeditem_tagged_items'", 'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'object_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True'}), |
||||
'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "u'taggit_taggeditem_items'", 'to': u"orm['taggit.Tag']"}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['blog'] |
||||
@ -0,0 +1,201 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django.conf import settings as dj_settings |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Adding field 'PostTranslation.meta_keywords' |
||||
db.add_column(u'blog_post_translation', 'meta_keywords', |
||||
self.gf('django.db.models.fields.TextField')(default='', blank=True), |
||||
keep_default=False) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Deleting field 'PostTranslation.meta_keywords' |
||||
db.delete_column(u'blog_post_translation', 'meta_keywords') |
||||
|
||||
|
||||
models = { |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'cmsplugin_filer_image.thumbnailoption': { |
||||
'Meta': {'ordering': "('width', 'height')", 'object_name': 'ThumbnailOption'}, |
||||
'crop': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'height': ('django.db.models.fields.IntegerField', [], {}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'upscale': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'width': ('django.db.models.fields.IntegerField', [], {}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
u'blog.authorentriesplugin': { |
||||
'Meta': {'object_name': 'AuthorEntriesPlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
'authors': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL, 'symmetrical': 'False'}), |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'latest_posts': ('django.db.models.fields.IntegerField', [], {'default': '5'}) |
||||
}, |
||||
u'blog.blogcategory': { |
||||
'Meta': {'object_name': 'BlogCategory'}, |
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['blog.BlogCategory']", 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'blog.blogcategorytranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'slug'), (u'language_code', u'master')]", 'object_name': 'BlogCategoryTranslation', 'db_table': "u'blog_blogcategory_translation'"}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
u'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['blog.BlogCategory']"}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}) |
||||
}, |
||||
u'blog.latestpostsplugin': { |
||||
'Meta': {'object_name': 'LatestPostsPlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['blog.BlogCategory']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'latest_posts': ('django.db.models.fields.IntegerField', [], {'default': '5'}), |
||||
'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['taggit.Tag']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'blog.post': { |
||||
'Meta': {'ordering': "('-date_published', '-date_created')", 'object_name': 'Post'}, |
||||
'author': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL, 'null': 'True', 'blank': 'True'}), |
||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'blog_posts'", 'symmetrical': 'False', 'to': u"orm['blog.BlogCategory']"}), |
||||
'content': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'date_published': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'date_published_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'main_image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']", 'null': 'True', 'blank': 'True'}), |
||||
'main_image_full': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_full'", 'null': 'True', 'to': u"orm['cmsplugin_filer_image.ThumbnailOption']"}), |
||||
'main_image_thumbnail': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_thumbnail'", 'null': 'True', 'to': u"orm['cmsplugin_filer_image.ThumbnailOption']"}), |
||||
'publish': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) |
||||
}, |
||||
u'blog.posttranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'slug'), (u'language_code', u'master')]", 'object_name': 'PostTranslation', 'db_table': "u'blog_post_translation'"}, |
||||
'abstract': ('djangocms_text_ckeditor.fields.HTMLField', [], {}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
u'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['blog.Post']"}), |
||||
'meta_description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'meta_keywords': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}), |
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) |
||||
}, |
||||
'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.folder': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
u'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), |
||||
u'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'taggit.tag': { |
||||
'Meta': {'object_name': 'Tag'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '100'}) |
||||
}, |
||||
u'taggit.taggeditem': { |
||||
'Meta': {'object_name': 'TaggedItem'}, |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "u'taggit_taggeditem_tagged_items'", 'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'object_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True'}), |
||||
'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "u'taggit_taggeditem_items'", 'to': u"orm['taggit.Tag']"}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['blog'] |
||||
@ -0,0 +1,196 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django.conf import settings as dj_settings |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Adding field 'Post.enable_comments' |
||||
db.add_column(u'blog_post', 'enable_comments', |
||||
self.gf('django.db.models.fields.BooleanField')(default=True), |
||||
keep_default=False) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Deleting field 'Post.enable_comments' |
||||
db.delete_column(u'blog_post', 'enable_comments') |
||||
|
||||
|
||||
models = { |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'cmsplugin_filer_image.thumbnailoption': { |
||||
'Meta': {'ordering': "('width', 'height')", 'object_name': 'ThumbnailOption'}, |
||||
'crop': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'height': ('django.db.models.fields.IntegerField', [], {}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'upscale': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'width': ('django.db.models.fields.IntegerField', [], {}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
u'blog.authorentriesplugin': { |
||||
'Meta': {'object_name': 'AuthorEntriesPlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
'authors': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL, 'symmetrical': 'False'}), |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'latest_posts': ('django.db.models.fields.IntegerField', [], {'default': '5'}) |
||||
}, |
||||
u'blog.blogcategory': { |
||||
'Meta': {'object_name': 'BlogCategory'}, |
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['blog.BlogCategory']", 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'blog.blogcategorytranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'slug'), (u'language_code', u'master')]", 'object_name': 'BlogCategoryTranslation', 'db_table': "u'blog_blogcategory_translation'"}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
u'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['blog.BlogCategory']"}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}) |
||||
}, |
||||
u'blog.latestpostsplugin': { |
||||
'Meta': {'object_name': 'LatestPostsPlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['blog.BlogCategory']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'latest_posts': ('django.db.models.fields.IntegerField', [], {'default': '5'}), |
||||
'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['taggit.Tag']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'blog.post': { |
||||
'Meta': {'ordering': "('-date_published', '-date_created')", 'object_name': 'Post'}, |
||||
'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_author'", 'null': 'True', 'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL}), |
||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'blog_posts'", 'symmetrical': 'False', 'to': u"orm['blog.BlogCategory']"}), |
||||
'content': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'date_published': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'date_published_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'enable_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'main_image': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_image'", 'null': 'True', 'to': "orm['filer.Image']"}), |
||||
'main_image_full': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_full'", 'null': 'True', 'to': u"orm['cmsplugin_filer_image.ThumbnailOption']"}), |
||||
'main_image_thumbnail': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_thumbnail'", 'null': 'True', 'to': u"orm['cmsplugin_filer_image.ThumbnailOption']"}), |
||||
'publish': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) |
||||
}, |
||||
u'blog.posttranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'slug'), (u'language_code', u'master')]", 'object_name': 'PostTranslation', 'db_table': "u'blog_post_translation'"}, |
||||
'abstract': ('djangocms_text_ckeditor.fields.HTMLField', [], {}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
u'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['blog.Post']"}), |
||||
'meta_description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'meta_keywords': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}), |
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) |
||||
}, |
||||
u'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "u'all_files'", 'null': 'True', 'to': u"orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "u'owned_files'", 'null': 'True', 'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "u'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'filer.folder': { |
||||
'Meta': {'ordering': "(u'name',)", 'unique_together': "((u'parent', u'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
u'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "u'filer_owned_folders'", 'null': 'True', 'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "u'children'", 'null': 'True', 'to': u"orm['filer.Folder']"}), |
||||
u'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': [u'filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'related_url': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'taggit.tag': { |
||||
'Meta': {'object_name': 'Tag'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '100'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['blog'] |
||||
@ -0,0 +1,197 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django.conf import settings as dj_settings |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Adding field 'PostTranslation.post_text' |
||||
db.add_column(u'blog_post_translation', 'post_text', |
||||
self.gf('djangocms_text_ckeditor.fields.HTMLField')(default='', blank=True), |
||||
keep_default=False) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Deleting field 'PostTranslation.post_text' |
||||
db.delete_column(u'blog_post_translation', 'post_text') |
||||
|
||||
|
||||
models = { |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'cmsplugin_filer_image.thumbnailoption': { |
||||
'Meta': {'ordering': "('width', 'height')", 'object_name': 'ThumbnailOption'}, |
||||
'crop': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'height': ('django.db.models.fields.IntegerField', [], {}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'upscale': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'width': ('django.db.models.fields.IntegerField', [], {}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
u'blog.authorentriesplugin': { |
||||
'Meta': {'object_name': 'AuthorEntriesPlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
'authors': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL, 'symmetrical': 'False'}), |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'latest_posts': ('django.db.models.fields.IntegerField', [], {'default': '5'}) |
||||
}, |
||||
u'blog.blogcategory': { |
||||
'Meta': {'object_name': 'BlogCategory'}, |
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['blog.BlogCategory']", 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'blog.blogcategorytranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'slug'), (u'language_code', u'master')]", 'object_name': 'BlogCategoryTranslation', 'db_table': "u'blog_blogcategory_translation'"}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
u'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['blog.BlogCategory']"}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}) |
||||
}, |
||||
u'blog.latestpostsplugin': { |
||||
'Meta': {'object_name': 'LatestPostsPlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['blog.BlogCategory']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'latest_posts': ('django.db.models.fields.IntegerField', [], {'default': '5'}), |
||||
'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['taggit.Tag']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'blog.post': { |
||||
'Meta': {'ordering': "('-date_published', '-date_created')", 'object_name': 'Post'}, |
||||
'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_author'", 'null': 'True', 'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL}), |
||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'blog_posts'", 'symmetrical': 'False', 'to': u"orm['blog.BlogCategory']"}), |
||||
'content': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'date_published': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'date_published_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'enable_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'main_image': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_image'", 'null': 'True', 'to': "orm['filer.Image']"}), |
||||
'main_image_full': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_full'", 'null': 'True', 'to': u"orm['cmsplugin_filer_image.ThumbnailOption']"}), |
||||
'main_image_thumbnail': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_thumbnail'", 'null': 'True', 'to': u"orm['cmsplugin_filer_image.ThumbnailOption']"}), |
||||
'publish': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) |
||||
}, |
||||
u'blog.posttranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'slug'), (u'language_code', u'master')]", 'object_name': 'PostTranslation', 'db_table': "u'blog_post_translation'"}, |
||||
'abstract': ('djangocms_text_ckeditor.fields.HTMLField', [], {}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
u'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['blog.Post']"}), |
||||
'meta_description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'meta_keywords': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'post_text': ('djangocms_text_ckeditor.fields.HTMLField', [], {'default': "''", 'blank': 'True'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}), |
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) |
||||
}, |
||||
u'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "u'all_files'", 'null': 'True', 'to': u"orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "u'owned_files'", 'null': 'True', 'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "u'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'filer.folder': { |
||||
'Meta': {'ordering': "(u'name',)", 'unique_together': "((u'parent', u'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
u'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "u'filer_owned_folders'", 'null': 'True', 'to': u"orm['%s']" % dj_settings.AUTH_USER_MODEL}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "u'children'", 'null': 'True', 'to': u"orm['filer.Folder']"}), |
||||
u'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': [u'filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'related_url': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'taggit.tag': { |
||||
'Meta': {'object_name': 'Tag'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '100'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['blog'] |
||||
@ -0,0 +1,199 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from south.utils import datetime_utils as 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 'PostTranslation.meta_title' |
||||
db.add_column(u'blog_post_translation', 'meta_title', |
||||
self.gf('django.db.models.fields.CharField')(default='', max_length=255, blank=True), |
||||
keep_default=False) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Deleting field 'PostTranslation.meta_title' |
||||
db.delete_column(u'blog_post_translation', 'meta_title') |
||||
|
||||
|
||||
models = { |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) |
||||
}, |
||||
u'cmsplugin_filer_image.thumbnailoption': { |
||||
'Meta': {'ordering': "(u'width', u'height')", 'object_name': 'ThumbnailOption'}, |
||||
'crop': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'height': ('django.db.models.fields.IntegerField', [], {}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'upscale': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'width': ('django.db.models.fields.IntegerField', [], {}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
u'blog.authorentriesplugin': { |
||||
'Meta': {'object_name': 'AuthorEntriesPlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
'authors': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.User']", 'symmetrical': 'False'}), |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'latest_posts': ('django.db.models.fields.IntegerField', [], {'default': '5'}) |
||||
}, |
||||
u'blog.blogcategory': { |
||||
'Meta': {'object_name': 'BlogCategory'}, |
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['blog.BlogCategory']", 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'blog.blogcategorytranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'slug'), (u'language_code', u'master')]", 'object_name': 'BlogCategoryTranslation', 'db_table': "u'blog_blogcategory_translation'"}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
u'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['blog.BlogCategory']"}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}) |
||||
}, |
||||
u'blog.latestpostsplugin': { |
||||
'Meta': {'object_name': 'LatestPostsPlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['blog.BlogCategory']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'latest_posts': ('django.db.models.fields.IntegerField', [], {'default': '5'}), |
||||
'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['taggit.Tag']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'blog.post': { |
||||
'Meta': {'ordering': "('-date_published', '-date_created')", 'object_name': 'Post'}, |
||||
'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_author'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'blog_posts'", 'symmetrical': 'False', 'to': u"orm['blog.BlogCategory']"}), |
||||
'content': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'date_published': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'date_published_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'enable_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'main_image': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_image'", 'null': 'True', 'to': "orm['filer.Image']"}), |
||||
'main_image_full': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_full'", 'null': 'True', 'to': u"orm['cmsplugin_filer_image.ThumbnailOption']"}), |
||||
'main_image_thumbnail': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_thumbnail'", 'null': 'True', 'to': u"orm['cmsplugin_filer_image.ThumbnailOption']"}), |
||||
'publish': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) |
||||
}, |
||||
u'blog.posttranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'slug'), (u'language_code', u'master')]", 'object_name': 'PostTranslation', 'db_table': "u'blog_post_translation'"}, |
||||
'abstract': ('djangocms_text_ckeditor.fields.HTMLField', [], {}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
u'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['blog.Post']"}), |
||||
'meta_description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'meta_keywords': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'meta_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'post_text': ('djangocms_text_ckeditor.fields.HTMLField', [], {'default': "''", 'blank': 'True'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}), |
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) |
||||
}, |
||||
u'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "u'all_files'", 'null': 'True', 'to': u"orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "u'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "u'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'filer.folder': { |
||||
'Meta': {'ordering': "(u'name',)", 'unique_together': "((u'parent', u'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
u'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "u'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "u'children'", 'null': 'True', 'to': u"orm['filer.Folder']"}), |
||||
u'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': [u'filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'related_url': ('django.db.models.fields.CharField', [], {'max_length': '250', 'null': 'True', 'blank': 'True'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'taggit.tag': { |
||||
'Meta': {'object_name': 'Tag'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '100'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['blog'] |
||||
@ -0,0 +1,209 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from south.utils import datetime_utils as datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
# Adding M2M table for field sites on 'Post' |
||||
m2m_table_name = db.shorten_name(u'blog_post_sites') |
||||
db.create_table(m2m_table_name, ( |
||||
('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), |
||||
('post', models.ForeignKey(orm[u'blog.post'], null=False)), |
||||
('site', models.ForeignKey(orm[u'sites.site'], null=False)) |
||||
)) |
||||
db.create_unique(m2m_table_name, ['post_id', 'site_id']) |
||||
|
||||
|
||||
def backwards(self, orm): |
||||
# Removing M2M table for field sites on 'Post' |
||||
db.delete_table(db.shorten_name(u'blog_post_sites')) |
||||
|
||||
|
||||
models = { |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}) |
||||
}, |
||||
u'cmsplugin_filer_image.thumbnailoption': { |
||||
'Meta': {'ordering': "('width', 'height')", 'object_name': 'ThumbnailOption'}, |
||||
'crop': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'height': ('django.db.models.fields.IntegerField', [], {}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'upscale': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'width': ('django.db.models.fields.IntegerField', [], {}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
u'blog.authorentriesplugin': { |
||||
'Meta': {'object_name': 'AuthorEntriesPlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
'authors': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.User']", 'symmetrical': 'False'}), |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'latest_posts': ('django.db.models.fields.IntegerField', [], {'default': '5'}) |
||||
}, |
||||
u'blog.blogcategory': { |
||||
'Meta': {'object_name': 'BlogCategory'}, |
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['blog.BlogCategory']", 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'blog.blogcategorytranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'slug'), (u'language_code', u'master')]", 'object_name': 'BlogCategoryTranslation', 'db_table': "u'blog_blogcategory_translation'"}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
u'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['blog.BlogCategory']"}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}) |
||||
}, |
||||
u'blog.latestpostsplugin': { |
||||
'Meta': {'object_name': 'LatestPostsPlugin', '_ormbases': ['cms.CMSPlugin']}, |
||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['blog.BlogCategory']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'latest_posts': ('django.db.models.fields.IntegerField', [], {'default': '5'}), |
||||
'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['taggit.Tag']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'blog.post': { |
||||
'Meta': {'ordering': "('-date_published', '-date_created')", 'object_name': 'Post'}, |
||||
'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_author'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'blog_posts'", 'symmetrical': 'False', 'to': u"orm['blog.BlogCategory']"}), |
||||
'content': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'date_published': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'date_published_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'enable_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'main_image': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_image'", 'null': 'True', 'to': "orm['filer.Image']"}), |
||||
'main_image_full': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_full'", 'null': 'True', 'to': u"orm['cmsplugin_filer_image.ThumbnailOption']"}), |
||||
'main_image_thumbnail': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_thumbnail'", 'null': 'True', 'to': u"orm['cmsplugin_filer_image.ThumbnailOption']"}), |
||||
'publish': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'sites': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['sites.Site']", 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'blog.posttranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'slug'), (u'language_code', u'master')]", 'object_name': 'PostTranslation', 'db_table': "u'blog_post_translation'"}, |
||||
'abstract': ('djangocms_text_ckeditor.fields.HTMLField', [], {}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
u'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['blog.Post']"}), |
||||
'meta_description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'meta_keywords': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'meta_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'post_text': ('djangocms_text_ckeditor.fields.HTMLField', [], {'default': "''", 'blank': 'True'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}), |
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) |
||||
}, |
||||
u'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "u'all_files'", 'null': 'True', 'to': u"orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "u'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "u'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'filer.folder': { |
||||
'Meta': {'ordering': "(u'name',)", 'unique_together': "((u'parent', u'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
u'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "u'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "u'children'", 'null': 'True', 'to': u"orm['filer.Folder']"}), |
||||
u'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image', '_ormbases': [u'filer.File']}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'sites.site': { |
||||
'Meta': {'ordering': "(u'domain',)", 'object_name': 'Site', 'db_table': "u'django_site'"}, |
||||
'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'taggit.tag': { |
||||
'Meta': {'object_name': 'Tag'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '100'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['blog'] |
||||
@ -0,0 +1,215 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from south.utils import datetime_utils as datetime |
||||
from south.db import db |
||||
from south.v2 import SchemaMigration |
||||
from django.db import models |
||||
|
||||
|
||||
class Migration(SchemaMigration): |
||||
|
||||
def forwards(self, orm): |
||||
|
||||
# Changing field 'Post.main_image_full' |
||||
db.alter_column(u'blog_post', 'main_image_full_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, on_delete=models.SET_NULL, to=orm['cmsplugin_filer_image.ThumbnailOption'])) |
||||
|
||||
# Changing field 'Post.main_image' |
||||
db.alter_column(u'blog_post', 'main_image_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, on_delete=models.SET_NULL, to=orm['filer.Image'])) |
||||
|
||||
# Changing field 'Post.main_image_thumbnail' |
||||
db.alter_column(u'blog_post', 'main_image_thumbnail_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, on_delete=models.SET_NULL, to=orm['cmsplugin_filer_image.ThumbnailOption'])) |
||||
|
||||
def backwards(self, orm): |
||||
|
||||
# Changing field 'Post.main_image_full' |
||||
db.alter_column(u'blog_post', 'main_image_full_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['cmsplugin_filer_image.ThumbnailOption'])) |
||||
|
||||
# Changing field 'Post.main_image' |
||||
db.alter_column(u'blog_post', 'main_image_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['filer.Image'])) |
||||
|
||||
# Changing field 'Post.main_image_thumbnail' |
||||
db.alter_column(u'blog_post', 'main_image_thumbnail_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['cmsplugin_filer_image.ThumbnailOption'])) |
||||
|
||||
models = { |
||||
u'auth.group': { |
||||
'Meta': {'object_name': 'Group'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), |
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'auth.permission': { |
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, |
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'auth.user': { |
||||
'Meta': {'object_name': 'User'}, |
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), |
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), |
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), |
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), |
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) |
||||
}, |
||||
'cms.cmsplugin': { |
||||
'Meta': {'object_name': 'CMSPlugin'}, |
||||
'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), |
||||
'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), |
||||
'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) |
||||
}, |
||||
'cms.placeholder': { |
||||
'Meta': {'object_name': 'Placeholder'}, |
||||
'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'slot': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}) |
||||
}, |
||||
u'cmsplugin_filer_image.thumbnailoption': { |
||||
'Meta': {'ordering': "(u'width', u'height')", 'object_name': 'ThumbnailOption'}, |
||||
'crop': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'height': ('django.db.models.fields.IntegerField', [], {}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'upscale': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'width': ('django.db.models.fields.IntegerField', [], {}) |
||||
}, |
||||
u'contenttypes.contenttype': { |
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, |
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) |
||||
}, |
||||
u'blog.authorentriesplugin': { |
||||
'Meta': {'object_name': 'AuthorEntriesPlugin'}, |
||||
'authors': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.User']", 'symmetrical': 'False'}), |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'latest_posts': ('django.db.models.fields.IntegerField', [], {'default': '5'}) |
||||
}, |
||||
u'blog.blogcategory': { |
||||
'Meta': {'object_name': 'BlogCategory'}, |
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['blog.BlogCategory']", 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'blog.blogcategorytranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'slug'), (u'language_code', u'master')]", 'object_name': 'BlogCategoryTranslation', 'db_table': "u'blog_blogcategory_translation'"}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
u'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['blog.BlogCategory']"}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}) |
||||
}, |
||||
u'blog.latestpostsplugin': { |
||||
'Meta': {'object_name': 'LatestPostsPlugin'}, |
||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['blog.BlogCategory']", 'symmetrical': 'False', 'blank': 'True'}), |
||||
u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'latest_posts': ('django.db.models.fields.IntegerField', [], {'default': '5'}), |
||||
'tags': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['taggit.Tag']", 'symmetrical': 'False', 'blank': 'True'}) |
||||
}, |
||||
u'blog.post': { |
||||
'Meta': {'ordering': "('-date_published', '-date_created')", 'object_name': 'Post'}, |
||||
'author': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_author'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'categories': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'blog_posts'", 'symmetrical': 'False', 'to': u"orm['blog.BlogCategory']"}), |
||||
'content': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), |
||||
'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'date_published': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), |
||||
'date_published_end': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'enable_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'main_image': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_image'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['filer.Image']"}), |
||||
'main_image_full': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_full'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['cmsplugin_filer_image.ThumbnailOption']"}), |
||||
'main_image_thumbnail': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'blog_post_thumbnail'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': u"orm['cmsplugin_filer_image.ThumbnailOption']"}), |
||||
'publish': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'sites': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['sites.Site']", 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'blog.posttranslation': { |
||||
'Meta': {'unique_together': "[('language_code', 'slug'), (u'language_code', u'master')]", 'object_name': 'PostTranslation', 'db_table': "u'blog_post_translation'"}, |
||||
'abstract': ('djangocms_text_ckeditor.fields.HTMLField', [], {}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), |
||||
u'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['blog.Post']"}), |
||||
'meta_description': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'meta_keywords': ('django.db.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), |
||||
'meta_title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), |
||||
'post_text': ('djangocms_text_ckeditor.fields.HTMLField', [], {'default': "''", 'blank': 'True'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}), |
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}) |
||||
}, |
||||
u'filer.file': { |
||||
'Meta': {'object_name': 'File'}, |
||||
'_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), |
||||
'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "u'all_files'", 'null': 'True', 'to': u"orm['filer.Folder']"}), |
||||
'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '255', 'blank': 'True'}), |
||||
'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "u'owned_files'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'polymorphic_ctype': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "u'polymorphic_filer.file_set'", 'null': 'True', 'to': u"orm['contenttypes.ContentType']"}), |
||||
'sha1': ('django.db.models.fields.CharField', [], {'default': "u''", 'max_length': '40', 'blank': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'filer.folder': { |
||||
'Meta': {'ordering': "(u'name',)", 'unique_together': "((u'parent', u'name'),)", 'object_name': 'Folder'}, |
||||
'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
u'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), |
||||
'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "u'filer_owned_folders'", 'null': 'True', 'to': u"orm['auth.User']"}), |
||||
'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "u'children'", 'null': 'True', 'to': u"orm['filer.Folder']"}), |
||||
u'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
u'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), |
||||
'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) |
||||
}, |
||||
'filer.image': { |
||||
'Meta': {'object_name': 'Image'}, |
||||
'_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), |
||||
'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), |
||||
'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), |
||||
u'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), |
||||
'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), |
||||
'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) |
||||
}, |
||||
u'sites.site': { |
||||
'Meta': {'ordering': "(u'domain',)", 'object_name': 'Site', 'db_table': "u'django_site'"}, |
||||
'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}), |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) |
||||
}, |
||||
u'taggit.tag': { |
||||
'Meta': {'object_name': 'Tag'}, |
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), |
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}), |
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '100'}) |
||||
} |
||||
} |
||||
|
||||
complete_apps = ['blog'] |
||||
@ -0,0 +1,46 @@ |
||||
.select2-container-multi .select2-choices .select2-search-field input { |
||||
min-width: 100px; |
||||
} |
||||
|
||||
.selector select[multiple] { |
||||
display: block; |
||||
} |
||||
|
||||
.selector { |
||||
width: auto; |
||||
margin-right: 12px; |
||||
} |
||||
|
||||
.selector-available, .selector-chosen { |
||||
width: auto; |
||||
} |
||||
|
||||
.selector .selector-available input, .selector .selector-chosen input { |
||||
margin: 0; |
||||
} |
||||
|
||||
form select { |
||||
max-width: 266px; |
||||
} |
||||
|
||||
.as-selections.vTextField { |
||||
width: 300px; |
||||
} |
||||
|
||||
.as-results ul.as-list { |
||||
margin-left:9em; |
||||
padding-left:0; |
||||
box-shadow: none !important; |
||||
border: 1px solid #888888 !important; |
||||
} |
||||
.as-results ul.as-list li { |
||||
list-style: none; |
||||
} |
||||
ul.as-selections.vTextField { |
||||
padding-left: 10px; |
||||
margin-left:9em; |
||||
} |
||||
|
||||
ul.as-selections li { |
||||
list-style: none; |
||||
} |
||||
@ -0,0 +1,13 @@ |
||||
{% extends CMS_TEMPLATE %} |
||||
|
||||
{% block meta %} |
||||
{% if meta %} |
||||
{% include "meta_mixin/meta.html" %} |
||||
{% endif %} |
||||
{% endblock meta %} |
||||
|
||||
{% block content_safe %} |
||||
<div class="app app-blog span8"> |
||||
{% block content_blog %}{% endblock %} |
||||
</div> |
||||
{% endblock content_safe %} |
||||
@ -0,0 +1,16 @@ |
||||
{% load i18n thumbnail cms_tags %} |
||||
{% load url from future %} |
||||
|
||||
<article id="post-{{ post.slug }}" class="post-item"> |
||||
<header> |
||||
<h2><a href="{{ post.get_absolute_url }}">{{ post.title }}</a></h2> |
||||
<p>{{ post.date_published|date:"DATE_FORMAT" }}</p> |
||||
</header> |
||||
{% if post.main_image_id %} |
||||
<div class="blog-visual"> |
||||
{% thumbnail post.main_image post.full_image_options.size crop=post.full_image_options.crop upscale=post.full_image_options.upscale subject_location=post.main_image.subject_location quality=100 as thumb %} |
||||
<img src="{{ thumb.url }}" alt="{{ post.main_image.default_alt_text }}" width="{{ thumb.width }}" height="{{ thumb.height }}" /> |
||||
</div> |
||||
{% endif %} |
||||
<div class="blog-content">{% render_model post "abstract" %}</div> |
||||
</article> |
||||
@ -0,0 +1,27 @@ |
||||
{% load i18n thumbnail cms_tags %} |
||||
{% load url from future %} |
||||
|
||||
<ul class="post-detail"> |
||||
{% if post.author %} |
||||
<li> |
||||
{% trans "by" %} <a href="{% url 'blog:posts-author' post.author.get_username %}">{% if post.author.get_full_name %}{{ post.author.get_full_name }}{% else %}{{ post.author }}{% endif %}</a> |
||||
</li> |
||||
{% endif %} |
||||
<li> |
||||
{{ post.date_published|date:"DATE_FORMAT" }} |
||||
</li> |
||||
</ul> |
||||
<ul class="post-detail tags"> |
||||
{% if post.categories.exists %} |
||||
{% for category in post.categories.all %} |
||||
{% if category.slug %} |
||||
<li class="category_{{ forloop.counter }}"><a href="{% url 'blog:posts-category' category=category.slug %}" class="blog-categories-{{ category.count }}">{{ category.name }}</a>{% if not forloop.last %}, {% endif %}</li> |
||||
{% endif %} |
||||
{% endfor %} |
||||
{% endif %} |
||||
{% if post.tags.exists %} |
||||
{% for tag in post.tags.all %} |
||||
<li class="tag_{{ forloop.counter }}"><a href="{% url 'blog:posts-tagged' tag=tag.slug %}" class="blog-tag blog-tag-{{ tag.count }}">{{ tag.name }}</a>{% if not forloop.last %}, {% endif %}</li> |
||||
{% endfor %} |
||||
{% endif %} |
||||
</ul> |
||||
@ -0,0 +1,32 @@ |
||||
{% load i18n %} |
||||
{% load url from future %}{% spaceless %} |
||||
<div class="plugin plugin-blog"> |
||||
<h3>{% trans "Archive" %}</h3> |
||||
{% regroup dates by date.year as years %} |
||||
{% with current_year=year current_month=month %} |
||||
<ul class="blog-archive"> |
||||
{% for year in years %} |
||||
<li{% if year.grouper == current_year %} class="active"{% endif %}> |
||||
<a href="{% url 'blog:posts-archive' year=year.grouper %}">{{ year.grouper }}</a> |
||||
<ul> |
||||
{% for month in year.list %} |
||||
<li{% if year.grouper == current_year and month.date.month == current_month %} class="active"{% else %} class="month"{% endif %}> |
||||
<a href="{% url 'blog:posts-archive' year=year.grouper month=month.date|date:"n" %}"> |
||||
{{ month.date|date:"F" }} |
||||
<span>( |
||||
{% if month.count > 0 %} |
||||
{% blocktrans count articles=month.count %}1 article{% plural %}{{ articles }} articles{% endblocktrans %} |
||||
{% else %}{% trans "0 articles" %}{% endif %} |
||||
)</span> |
||||
</a> |
||||
</li> |
||||
{% endfor %} |
||||
</ul> |
||||
</li> |
||||
{% empty %} |
||||
<li class="blog-empty"><p>{% trans "No article found." %}</p></li> |
||||
{% endfor %} |
||||
</ul> |
||||
{% endwith %} |
||||
</div> |
||||
{% endspaceless %} |
||||
@ -0,0 +1,19 @@ |
||||
{% load i18n thumbnail %}{% spaceless %} |
||||
<div class="plugin plugin-blog"> |
||||
<h3>{% trans "Authors" %}</h3> |
||||
<ul class="blog-authors"> |
||||
{% for author in authors_list %} |
||||
<li><a href="{% url 'blog:posts-author' author.get_username %}"> |
||||
{{ author.get_full_name }} |
||||
<span>( |
||||
{% if author.count > 0 %} |
||||
{% blocktrans count articles=author.count %}1 article{% plural %}{{ articles }} articles{% endblocktrans %} |
||||
{% else %}{% trans "0 articles" %}{% endif %} |
||||
)</span> |
||||
</a></li> |
||||
{% empty %} |
||||
<li class="blog-empty"><p>{% trans "No article found." %}</p></li> |
||||
{% endfor %} |
||||
</ul> |
||||
</div> |
||||
{% endspaceless %} |
||||
@ -0,0 +1,20 @@ |
||||
{% load i18n %} |
||||
{% load url from future %}{% spaceless %} |
||||
<div class="plugin plugin-blog"> |
||||
<h3>{% trans "Categories" %}</h3> |
||||
<ul class="blog-categories"> |
||||
{% for category in categories %} |
||||
<li><a href="{% url 'blog:posts-category' category=category.slug %}" class="blog-categories-{{ category.count }}"> |
||||
{{ category.name }} |
||||
<span>( |
||||
{% if category.count > 0 %} |
||||
{% blocktrans count articles=category.count %}1 article{% plural %}{{ articles }} articles{% endblocktrans %} |
||||
{% else %}{% trans "0 articles" %}{% endif %} |
||||
)</span> |
||||
</a></li> |
||||
{% empty %} |
||||
<li class="blog-empty"><p>{% trans "No categories found." %}</p></li> |
||||
{% endfor %} |
||||
</ul> |
||||
</div> |
||||
{% endspaceless %} |
||||
@ -0,0 +1,14 @@ |
||||
{% load i18n %}{% spaceless %} |
||||
<div class="plugin plugin-blog"> |
||||
<ul class="blog-latest-entries list-unstyled plugin-blog-category-{{ category }}"> |
||||
{% for post in posts_list %} |
||||
<li> |
||||
<a href="{{ post.get_absolute_url }}">{{ post.title }}</a> |
||||
<p>{{ post.date_published|date:"DATE_FORMAT" }}</p> |
||||
</li> |
||||
{% empty %} |
||||
<li class="blog-empty">{% trans "No article found." %}</li> |
||||
{% endfor %} |
||||
</ul> |
||||
</div> |
||||
{% endspaceless %} |
||||
@ -0,0 +1,20 @@ |
||||
{% load i18n %} |
||||
{% load url from future %}{% spaceless %} |
||||
<div class="plugin plugin-blog"> |
||||
<h3>{% trans "Tags" %}</h3> |
||||
<ul class="blog-tags"> |
||||
{% for tag in tags %} |
||||
<li><a href="{% url 'blog:posts-tagged' tag=tag.slug %}" class="blog-tag-{{ tag.count }}"> |
||||
{{ tag.name }} |
||||
<span>( |
||||
{% if tag.count > 0 %} |
||||
{% blocktrans count articles=tag.count %}1 article{% plural %}{{ articles }} articles{% endblocktrans %} |
||||
{% else %}{% trans "0 articles" %}{% endif %} |
||||
)</span> |
||||
</a></li> |
||||
{% empty %} |
||||
<li class="blog-empty"><p>{% trans "No article found." %}</p></li> |
||||
{% endfor %} |
||||
</ul> |
||||
</div> |
||||
{% endspaceless %} |
||||
@ -0,0 +1,2 @@ |
||||
{% extends "blog/post_list.html" %} |
||||
|
||||
@ -0,0 +1,33 @@ |
||||
{% extends "blog/base.html" %} |
||||
{% load i18n thumbnail cms_tags menu_tags %} |
||||
{% load url from future %} |
||||
|
||||
{% block meta_description %}{{ post.meta_description }}{% endblock meta_description %} |
||||
{% block meta_keywords %}{{ post.meta_keywords }}{% endblock meta_keywords %} |
||||
{% block canonical_url %}<link rel="canonical" href="{{ SITE.domain }}{{ view.get_view_url }}"/>{% endblock canonical_url %} |
||||
{% block title %}{{ post.get_title }}{% endblock %} |
||||
|
||||
{% block breadcrumb %} |
||||
<ul class="list-unstyled list-inline breadcrumb"> |
||||
{% show_breadcrumb 0 "aldryn_people/includes/breadcrumb.html" 0 %} |
||||
</ul> |
||||
{% endblock breadcrumb %} |
||||
|
||||
{% block content_blog %}{% spaceless %} |
||||
|
||||
<article id="post-{{ post.slug }}" class="post-item post-detail"> |
||||
<header> |
||||
<h2>{% render_model post "title" %}</h2> |
||||
<p>{{ post.date_published|date:"DATE_FORMAT" }}</p> |
||||
</header> |
||||
{% if post.main_image_id %} |
||||
<div class="blog-visual"> |
||||
{% thumbnail post.main_image post.full_image_options.size crop=post.full_image_options.crop upscale=post.full_image_options.upscale subject_location=post.main_image.subject_location quality=100 as thumb %} |
||||
<img src="{{ thumb.url }}" alt="{{ post.main_image.default_alt_text }}" width="{{ thumb.width }}" height="{{ thumb.height }}" /> |
||||
</div> |
||||
{% endif %} |
||||
{% endspaceless %} |
||||
|
||||
<div class="blog-content">{% render_model post "abstract" %}</div> |
||||
</article> |
||||
{% endblock content_blog %} |
||||
@ -0,0 +1,43 @@ |
||||
{% extends "blog/base.html" %} |
||||
{% load i18n thumbnail cms_tags %}{% spaceless %} |
||||
|
||||
{% block canonical_url %}<link rel="canonical" href="{{ SITE.domain }}{{ view.get_view_url }}"/>{% endblock canonical_url %} |
||||
|
||||
{% block content_blog %} |
||||
<section class="blog-list"> |
||||
{% render_placeholder view.config.placeholder_list_top language placeholder_language %} |
||||
{% block blog_title %} |
||||
<header> |
||||
<h2> |
||||
{% if author %}{% trans "Articles by" %} {{ author.get_full_name }} |
||||
{% elif archive_date %}{% trans "Archive" %} – {% if month %}{{ archive_date|date:'F' }} {% endif %}{{ year }} |
||||
{% elif tagged_entries %}{% trans "Tag" %} – {{ tagged_entries|capfirst }} |
||||
{% elif category %}{% trans "Category" %} – {{ category }}{% endif %} |
||||
{{ category }} |
||||
</h2> |
||||
</header> |
||||
{% endblock %} |
||||
{% for post in post_list %} |
||||
{% include "blog/includes/blog_item.html" with post=post image="true" TRUNCWORDS_COUNT=TRUNCWORDS_COUNT %} |
||||
{% empty %} |
||||
<p class="blog-empty">{% trans "No article found." %}</p> |
||||
{% endfor %} |
||||
{% if author or archive_date or tagged_entries %} |
||||
<p class="blog-back"><a href="{% url 'blog:posts-latest' %}">{% trans "Back" %}</a></p> |
||||
{% endif %} |
||||
{% if is_paginated %} |
||||
<nav class="{% firstof css_grid instance.css_grid %} pagination"> |
||||
{% if page_obj.has_previous %} |
||||
<a href="?{{ view.page_kwarg }}={{ page_obj.previous_page_number }}">« {% trans "previous" %}</a> |
||||
{% endif %} |
||||
<span class="current"> |
||||
{% trans "Page" %} {{ page_obj.number }} {% trans "of" %} {{ paginator.num_pages }} |
||||
</span> |
||||
{% if page_obj.has_next %} |
||||
<a href="?{{ view.page_kwarg }}={{ page_obj.next_page_number }}">{% trans "next" %} »</a> |
||||
{% endif %} |
||||
</nav> |
||||
{% endif %} |
||||
</section> |
||||
{% endblock %} |
||||
{% endspaceless %} |
||||
@ -0,0 +1,20 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django.conf.urls import patterns, url |
||||
|
||||
from .views import (PostListView, PostDetailView, TaggedListView, |
||||
AuthorEntriesView, PostArchiveView, CategoryEntriesView) |
||||
from .feeds import LatestEntriesFeed, TagFeed |
||||
|
||||
|
||||
urlpatterns = patterns( |
||||
'', |
||||
url(r'^$', PostListView.as_view(), name='posts-latest'), |
||||
url(r'^feed/$', LatestEntriesFeed(), name='posts-latest-feed'), |
||||
url(r'^(?P<year>\d{4})/$', PostArchiveView.as_view(), name='posts-archive'), |
||||
url(r'^(?P<year>\d{4})/(?P<month>\d{1,2})/$', PostArchiveView.as_view(), name='posts-archive'), |
||||
url(r'^(?P<year>\d{4})/(?P<month>\d{1,2})/(?P<day>\d{1,2})/(?P<slug>\w[-\w]*)/$', PostDetailView.as_view(), name='post-detail'), |
||||
url(r'^author/(?P<username>[\w\.@+-]+)/$', AuthorEntriesView.as_view(), name='posts-author'), |
||||
url(r'^category/(?P<category>[\w\.@+-]+)/$', CategoryEntriesView.as_view(), name='posts-category'), |
||||
url(r'^tag/(?P<tag>[-\w]+)/$', TaggedListView.as_view(), name='posts-tagged'), |
||||
url(r'^tag/(?P<tag>[-\w]+)/feed/$', TagFeed(), name='posts-tagged-feed'), |
||||
) |
||||
@ -0,0 +1,158 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django.contrib.auth import get_user_model |
||||
from django.core.urlresolvers import resolve |
||||
from django.utils.timezone import now |
||||
from django.utils.translation import get_language |
||||
from django.views.generic import ListView, DetailView |
||||
|
||||
from parler.views import ViewUrlMixin, TranslatableSlugMixin |
||||
|
||||
from aldryn_apphooks_config.mixins import AppConfigMixin |
||||
|
||||
from .models import Post, BlogCategory, BLOG_CURRENT_POST_IDENTIFIER |
||||
from .settings import get_setting |
||||
|
||||
User = get_user_model() |
||||
|
||||
|
||||
class BaseBlogView(ViewUrlMixin, AppConfigMixin): |
||||
|
||||
def get_queryset(self): |
||||
language = get_language() |
||||
queryset = self.model._default_manager.active_translations(language_code=language) |
||||
|
||||
print self.config |
||||
if self.config and self.config.category_slug: |
||||
self._category = BlogCategory.objects.active_translations(get_language(), slug=self.config.category_slug).latest('pk') |
||||
queryset = queryset.filter(categories=self._category.pk) |
||||
|
||||
if not getattr(self.request, 'toolbar', False) or not self.request.toolbar.edit_mode: |
||||
queryset = queryset.published() |
||||
|
||||
return queryset.on_site() |
||||
|
||||
def render_to_response(self, context, **response_kwargs): |
||||
response_kwargs['current_app'] = resolve(self.request.path).namespace |
||||
return super(BaseBlogView, self).render_to_response(context, **response_kwargs) |
||||
|
||||
|
||||
class PostListView(BaseBlogView, ListView): |
||||
model = Post |
||||
context_object_name = 'post_list' |
||||
template_name = 'blog/post_list.html' |
||||
paginate_by = get_setting('PAGINATION') |
||||
view_url_name = 'blog:posts-latest' |
||||
|
||||
def get_context_data(self, **kwargs): |
||||
context = super(PostListView, self).get_context_data(**kwargs) |
||||
context['TRUNCWORDS_COUNT'] = get_setting('POSTS_LIST_TRUNCWORDS_COUNT') |
||||
return context |
||||
|
||||
|
||||
class PostDetailView(TranslatableSlugMixin, BaseBlogView, DetailView): |
||||
model = Post |
||||
context_object_name = 'post' |
||||
template_name = 'blog/post_detail.html' |
||||
slug_field = 'slug' |
||||
view_url_name = 'blog:post-detail' |
||||
|
||||
def get_context_data(self, **kwargs): |
||||
context = super(PostDetailView, self).get_context_data(**kwargs) |
||||
context['meta'] = self.get_object().as_meta() |
||||
context['use_placeholder'] = get_setting('USE_PLACEHOLDER') |
||||
setattr(self.request, BLOG_CURRENT_POST_IDENTIFIER, self.get_object()) |
||||
return context |
||||
|
||||
|
||||
class PostArchiveView(BaseBlogView, ListView): |
||||
model = Post |
||||
context_object_name = 'post_list' |
||||
template_name = 'blog/post_list.html' |
||||
date_field = 'date_published' |
||||
allow_empty = True |
||||
allow_future = True |
||||
paginate_by = get_setting('PAGINATION') |
||||
view_url_name = 'blog:posts-archive' |
||||
|
||||
def get_queryset(self): |
||||
qs = super(PostArchiveView, self).get_queryset() |
||||
if 'month' in self.kwargs: |
||||
qs = qs.filter(**{'%s__month' % self.date_field: self.kwargs['month']}) |
||||
if 'year' in self.kwargs: |
||||
qs = qs.filter(**{'%s__year' % self.date_field: self.kwargs['year']}) |
||||
return qs |
||||
|
||||
def get_context_data(self, **kwargs): |
||||
kwargs['month'] = int(self.kwargs.get('month')) if 'month' in self.kwargs else None |
||||
kwargs['year'] = int(self.kwargs.get('year')) if 'year' in self.kwargs else None |
||||
if kwargs['year']: |
||||
kwargs['archive_date'] = now().replace(kwargs['year'], kwargs['month'] or 1, 1) |
||||
context = super(PostArchiveView, self).get_context_data(**kwargs) |
||||
context['TRUNCWORDS_COUNT'] = get_setting('POSTS_LIST_TRUNCWORDS_COUNT') |
||||
return context |
||||
|
||||
|
||||
class TaggedListView(BaseBlogView, ListView): |
||||
model = Post |
||||
context_object_name = 'post_list' |
||||
template_name = 'blog/post_list.html' |
||||
paginate_by = get_setting('PAGINATION') |
||||
view_url_name = 'blog:posts-tagged' |
||||
|
||||
def get_queryset(self): |
||||
qs = super(TaggedListView, self).get_queryset() |
||||
return qs.filter(tags__slug=self.kwargs['tag']) |
||||
|
||||
def get_context_data(self, **kwargs): |
||||
kwargs['tagged_entries'] = (self.kwargs.get('tag') |
||||
if 'tag' in self.kwargs else None) |
||||
context = super(TaggedListView, self).get_context_data(**kwargs) |
||||
context['TRUNCWORDS_COUNT'] = get_setting('POSTS_LIST_TRUNCWORDS_COUNT') |
||||
return context |
||||
|
||||
|
||||
class AuthorEntriesView(BaseBlogView, ListView): |
||||
model = Post |
||||
context_object_name = 'post_list' |
||||
template_name = 'blog/post_list.html' |
||||
paginate_by = get_setting('PAGINATION') |
||||
view_url_name = 'blog:posts-authors' |
||||
|
||||
def get_queryset(self): |
||||
qs = super(AuthorEntriesView, self).get_queryset() |
||||
if 'username' in self.kwargs: |
||||
qs = qs.filter(**{'author__%s' % User.USERNAME_FIELD: self.kwargs['username']}) |
||||
return qs |
||||
|
||||
def get_context_data(self, **kwargs): |
||||
kwargs['author'] = User.objects.get(**{User.USERNAME_FIELD: self.kwargs.get('username')}) |
||||
context = super(AuthorEntriesView, self).get_context_data(**kwargs) |
||||
context['TRUNCWORDS_COUNT'] = get_setting('POSTS_LIST_TRUNCWORDS_COUNT') |
||||
return context |
||||
|
||||
|
||||
class CategoryEntriesView(BaseBlogView, ListView): |
||||
model = Post |
||||
context_object_name = 'post_list' |
||||
template_name = 'blog/post_list.html' |
||||
_category = None |
||||
paginate_by = get_setting('PAGINATION') |
||||
view_url_name = 'blog:posts-category' |
||||
|
||||
@property |
||||
def category(self): |
||||
if not self._category: |
||||
self._category = BlogCategory.objects.active_translations(get_language(), slug=self.kwargs['category']).latest('pk') |
||||
return self._category |
||||
|
||||
def get_queryset(self): |
||||
qs = super(CategoryEntriesView, self).get_queryset() |
||||
if 'category' in self.kwargs: |
||||
qs = qs.filter(categories=self.category.pk) |
||||
return qs |
||||
|
||||
def get_context_data(self, **kwargs): |
||||
kwargs['category'] = self.category |
||||
context = super(CategoryEntriesView, self).get_context_data(**kwargs) |
||||
context['TRUNCWORDS_COUNT'] = get_setting('POSTS_LIST_TRUNCWORDS_COUNT') |
||||
return context |
||||
@ -0,0 +1,9 @@ |
||||
-r requirements.txt |
||||
coverage |
||||
coveralls |
||||
mock>=1.0.1 |
||||
nose>=1.3.0 |
||||
django-nose>=1.2 |
||||
flake8 |
||||
djangocms-helper>=0.7 |
||||
tox>=2.0 |
||||
@ -0,0 +1,2 @@ |
||||
-e . |
||||
wheel |
||||
@ -1,25 +0,0 @@ |
||||
.about-map { |
||||
position: absolute; |
||||
z-index: 0; |
||||
width: 65%; |
||||
margin-left: 35%; |
||||
margin-top: -10%; |
||||
|
||||
img { |
||||
width: 100%; |
||||
} |
||||
} |
||||
|
||||
.about-videos { |
||||
li { |
||||
width: 165px; |
||||
margin-right: 2%; |
||||
vertical-align: top; |
||||
|
||||
font-size: 12px; |
||||
|
||||
.plugin_video { |
||||
margin-bottom: 8px; |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,17 @@ |
||||
.blog-content { |
||||
img { |
||||
margin-left: 20px; |
||||
} |
||||
} |
||||
|
||||
.plugin-blog-category-our-cases { |
||||
li { |
||||
display: inline-block; |
||||
|
||||
font-size: 12px; |
||||
|
||||
width: 220px; |
||||
margin-right: 2%; |
||||
vertical-align: top; |
||||
} |
||||
} |
||||
@ -0,0 +1,12 @@ |
||||
.clients { |
||||
.clients-logo { |
||||
background-color: #f5f5f5; |
||||
|
||||
border-radius: 10px; |
||||
|
||||
margin-bottom: 50px; |
||||
margin-left: -15px; |
||||
|
||||
padding: 15px; |
||||
} |
||||
} |
||||
@ -1,19 +0,0 @@ |
||||
{% extends "aldryn_newsblog/two_column.html" %} |
||||
{% load i18n cms_tags %} |
||||
|
||||
{% block newsblog_content %} |
||||
{% render_placeholder view.config.list_view_placeholder language placeholder_language %} |
||||
<div class="aldryn-newsblog-list"> |
||||
{% for article in article_list %} |
||||
{% include "aldryn_newsblog/includes/article.html" %} |
||||
{% empty %} |
||||
<p class="well">{% trans "No items available" %}</p> |
||||
{% endfor %} |
||||
</div> |
||||
{% endblock %} |
||||
|
||||
{% block newsblog_footer %} |
||||
<div class="aldryn-newsblog-pagination"> |
||||
{% include "aldryn_newsblog/includes/pagination.html" %} |
||||
</div> |
||||
{% endblock %} |
||||
@ -1,8 +0,0 @@ |
||||
{% extends CMS_TEMPLATE %} |
||||
|
||||
{% block extend_breadcrumb %} |
||||
{{ block.super }} |
||||
{% block newsblog_breadcrumb %}{% endblock newsblog_breadcrumb %} |
||||
{% endblock extend_breadcrumb %} |
||||
|
||||
{% block content_safe %}{% endblock content_safe %} |
||||
@ -1,72 +0,0 @@ |
||||
{% load i18n apphooks_config_tags cms_tags sekizai_tags staticfiles thumbnail %} |
||||
{% load url from future %} |
||||
|
||||
<article class="aldryn-newsblog-article{% if article.is_featured %} aldryn-newsblog-featured{% endif %}{% if not article.published %} unpublished{% endif %}{% if article.future %} future{% endif %}"> |
||||
{% block newsblog_visual %} |
||||
{% if article.featured_image_id %} |
||||
<p class="visual"> |
||||
{% if not detail_view %} |
||||
<a href="{{ article.get_absolute_url }}"> |
||||
{% endif %} |
||||
<img src="{% thumbnail article.featured_image.image 800x450 crop subject_location=article.featured_image.subject_location %}" alt="{{ article.featured_image.alt }}" class="img-responsive"> |
||||
{% if not detail_view %} |
||||
</a> |
||||
{% endif %} |
||||
</p> |
||||
{% endif %} |
||||
{% endblock newsblog_visual %} |
||||
|
||||
{% block newsblog_categories %} |
||||
{% if article.categories %} |
||||
<p class="category"> |
||||
{% for category in article.categories.all %} |
||||
<a href="{% namespace_url "article-list-by-category" category.slug namespace=namespace default='' %}">{{ category.name }}</a>{% if not forloop.last %}, {% endif %} |
||||
{% endfor %} |
||||
</p> |
||||
{% endif %} |
||||
{% endblock newsblog_categories %} |
||||
|
||||
{% block newsblock_title %} |
||||
<h2> |
||||
{% if not detail_view %} |
||||
<a href="{% namespace_url "article-detail" article.slug namespace=namespace default='' %}">{% render_model article "title" %}</a> |
||||
{% else %} |
||||
{% render_model article "title" %} |
||||
{% endif %} |
||||
</h2> |
||||
{% endblock newsblock_title %} |
||||
|
||||
{% block newsblog_meta %} |
||||
{% if not detail_view %} |
||||
<div class="lead"> |
||||
{% render_model article "lead_in" %} |
||||
</div> |
||||
{% endif %} |
||||
|
||||
{% include "aldryn_newsblog/includes/author.html" with author=article.author %} |
||||
|
||||
{% if article.tags and detail_view %} |
||||
<p class="tags"> |
||||
{% for tag in article.tags.all %} |
||||
<a href="{% namespace_url safe "article-list-by-tag" tag.slug namespace=namespace default='' %}">{{ tag.name }}</a> |
||||
{% endfor %} |
||||
</p> |
||||
{% endif %} |
||||
|
||||
{% if detail_view %} |
||||
<div class="lead"> |
||||
{% render_model article "lead_in" %} |
||||
</div> |
||||
{% endif %} |
||||
{% endblock newsblog_meta %} |
||||
|
||||
{% block newsblog_content %} |
||||
{% if detail_view %} |
||||
<div class="content"> |
||||
{% render_placeholder article.content language placeholder_language %} |
||||
</div> |
||||
{% endif %} |
||||
{% endblock newsblog_content %} |
||||
</article> |
||||
|
||||
{% addtoblock "css" %}<link rel="stylesheet" href="{% static 'css/aldryn-newsblog/article.css' %}">{% endaddtoblock %} |
||||
@ -1,16 +0,0 @@ |
||||
{% extends "aldryn_newsblog/base.html" %} |
||||
{% load i18n cms_tags %} |
||||
|
||||
{% block content_safe %} |
||||
|
||||
{% if view.show_header %} |
||||
{% render_placeholder view.config.placeholder_base_top %} |
||||
{% endif %} |
||||
<div class="aldryn aldryn-newsblog"> |
||||
{% block newsblog_title %}{% endblock %} |
||||
{% block newsblog_content %}{% endblock %} |
||||
{% block newsblog_footer %}{% endblock %} |
||||
</div> |
||||
|
||||
|
||||
{% endblock content_safe %} |
||||
Loading…
Reference in new issue