├── .gitignore ├── HISTORY ├── MANIFEST.in ├── README.rst ├── setup.py └── simplegallery ├── __init__.py ├── admin.py ├── cms_plugins.py ├── fields.py ├── locale ├── bg │ └── LC_MESSAGES │ │ └── django.po ├── bs │ └── LC_MESSAGES │ │ └── django.po ├── de │ └── LC_MESSAGES │ │ ├── django.mo │ │ └── django.po ├── el │ └── LC_MESSAGES │ │ └── django.po ├── en │ └── LC_MESSAGES │ │ └── django.po ├── fr │ └── LC_MESSAGES │ │ └── django.po ├── hu │ └── LC_MESSAGES │ │ └── django.po ├── it │ └── LC_MESSAGES │ │ └── django.po ├── ro │ └── LC_MESSAGES │ │ └── django.po └── sr │ └── LC_MESSAGES │ └── django.po ├── media ├── css │ └── simplegallery.css └── js │ └── jquery.simplegallery.js ├── migrations ├── 0001_initial.py ├── 0002_add_groups.py ├── 0003_auto__add_field_gallerypublication_raw_aspect_ratio.py ├── 0004_auto__add_field_gallerytranslation_drop_up_label.py ├── 0005_auto__del_field_gallerytranslation_drop_up_label.py ├── 0006_fix_null_on_textfields_1of2.py ├── 0007_fix_null_on_textfields_2of2.py ├── 0008_auto__add_field_image_free_link__add_field_carouselimage_free_link.py ├── 0009_auto__del_field_carouselimage_title_2__del_field_carouselimage_descrip.py ├── 0010_auto__chg_field_image_free_link__chg_field_carouselimage_free_link.py ├── 0011_auto__add_field_gallery_folder.py └── __init__.py ├── models.py ├── south_introspections.py └── templates └── simplegallery ├── gallery_lite.html ├── gallery_plugin.html └── plugin_form.html /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.pyo 3 | .installed.cfg 4 | bin 5 | develop-eggs 6 | dist 7 | downloads 8 | eggs 9 | parts 10 | build 11 | *.egg-info 12 | .DS_Store 13 | .project 14 | .pydevproject 15 | .settings 16 | *~ 17 | distribute* 18 | lib/ 19 | include/ 20 | -------------------------------------------------------------------------------- /HISTORY: -------------------------------------------------------------------------------- 1 | 0.14 2 | ==== 3 | 4 | * Made the select widget for folder sync more usable for large folder trees by 5 | ordering and indenting them according to the folder-tree structure 6 | * added a ``select_related`` to the gallery plugin, which saves a query per 7 | image. 8 | * fixed rst markup in this document. 9 | 10 | 0.13 11 | ==== 12 | * its now possible to link a gallery to a django-filer folder, so it will 13 | one-way sync with the folder (changes in simplegallery are ignored, all 14 | changes from filer will be accepted) 15 | 16 | 0.12 17 | ==== 18 | 19 | * ``groups`` is no longer a mandatory field 20 | 21 | Backward incompatible changes! 22 | 23 | * css has changed 24 | * js dependencies are no longer bundled 25 | 26 | 0.11.0a1 27 | ======== 28 | 29 | Backwards incompatible changes! 30 | 31 | * added ``django-sekizai`` dependency 32 | * added ``django-tinymce`` dependency 33 | * default stylesheets and html structure changed, files renamed 34 | * Added detail change view for images in Gallery 35 | * No more ``null=True`` on ``CharFields`` and ``TextFields`` (used 36 | ``blank=True, default=''`` instead) 37 | 38 | 0.10.0a 39 | ======= 40 | 41 | Changed image fields from ``image_filer`` to ``filer`` (backwards incompatible 42 | change) -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include README.rst 2 | include HISTORY 3 | recursive-include simplegallery/media * 4 | recursive-include simplegallery/templates * -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | django-simplegallery 2 | ==================== 3 | 4 | simple gallery 5 | 6 | dependecies 7 | ----------- 8 | 9 | * django-filer 10 | * classy js: https://github.com/FinalAngel/classy-frontend-framework 11 | * jquery 12 | * jquery.cycle 13 | 14 | 15 | Installation 16 | ------------ 17 | 18 | * `pip install django-simplegallery` 19 | * follow the setup instructions for django-filer 20 | * add `simplegallery` to INSTALLED_APPS and run syncdb or south migrate 21 | * make sure `simplegallery/media` is accessible at your MEDIA_URL 22 | 23 | * These external js dependencies also need to be made accessable at these 24 | default locations: 25 | * `{{ MEDIA_URL }}js/libs/jquery-1.4.4.js` 26 | * `{{ MEDIA_URL }}js/libs/classy-1.3.js` 27 | * `{{ MEDIA_URL }}js/plugins/jquery.cycle-2.97.js` 28 | 29 | You can change the locations of these files by overriding the templates. 30 | 31 | 32 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | APP_NAME = 'simplegallery' 2 | PACKAGE_NAME = 'django-%s' % APP_NAME 3 | DESCRIPTION = 'django image gallery app' 4 | PROJECT_URL = 'http://github.com/divio/%s/' % PACKAGE_NAME 5 | 6 | INSTALL_REQUIRES = [ 7 | 'django (<1.2.5)', 8 | 'mptt (<0.4)', 9 | 'django_cms', 10 | 'django_filer', 11 | 'django_multilingual_ng', 12 | 'django_tinymce', 13 | ] # e.g 'django (>1.1.0)' 14 | 15 | EXTRA_REQUIRES={ 16 | 'South': ["south"], 17 | } 18 | 19 | 20 | AUTHOR="Stefan Foulis" 21 | 22 | EXTRA_CLASSIFIERS = [ 23 | ] 24 | 25 | 26 | # DO NOT EDIT ANYTHING DOWN HERE... this should be common to all django app packages 27 | from setuptools import setup, find_packages 28 | import os 29 | 30 | version = __import__(APP_NAME).__version__ 31 | 32 | classifiers = [ 33 | 'Environment :: Web Environment', 34 | 'Framework :: Django', 35 | 'Intended Audience :: Developers', 36 | 'License :: OSI Approved :: BSD License', 37 | 'Operating System :: OS Independent', 38 | 'Programming Language :: Python', 39 | 'Topic :: Internet :: WWW/HTTP :: Dynamic Content', 40 | 'Topic :: Software Development', 41 | 'Topic :: Software Development :: Libraries :: Application Frameworks', 42 | ] 43 | if not 'a' in version and not 'b' in version: classifiers.append('Development Status :: 5 - Production/Stable') 44 | elif 'a' in version: classifiers.append('Development Status :: 3 - Alpha') 45 | elif 'b' in version: classifiers.append('Development Status :: 4 - Beta') 46 | 47 | for c in EXTRA_CLASSIFIERS: 48 | if not c in classifiers: 49 | classifiers.append(c) 50 | 51 | media_files = [] 52 | for dir in ['%s/media' % APP_NAME,'%s/templates' % APP_NAME]: 53 | for dirpath, dirnames, filenames in os.walk(dir): 54 | media_files.append([dirpath, [os.path.join(dirpath, f) for f in filenames]]) 55 | #media_files.append('README.rst') 56 | #media_files.append('HISTORY') 57 | # build the MANIFEST.in file 58 | """ 59 | open(os.path.join(os.path.dirname(__file__), 'MANIFEST.in'), 'w').write('''include README.rst 60 | include HISTORY 61 | recursive-include %s/media * 62 | recursive-include %s/templates * 63 | ''') 64 | """ 65 | 66 | 67 | 68 | def read(fname): 69 | # read the contents of a text file 70 | return open(os.path.join(os.path.dirname(__file__), fname)).read() 71 | 72 | setup( 73 | author=AUTHOR, 74 | name=PACKAGE_NAME, 75 | version=version, 76 | url=PROJECT_URL, 77 | description=DESCRIPTION, 78 | long_description=read('README.rst') + '\n\n\n' + read('HISTORY'), 79 | platforms=['OS Independent'], 80 | classifiers=classifiers, 81 | requires=INSTALL_REQUIRES, 82 | extras_require=EXTRA_REQUIRES, 83 | packages=find_packages(), 84 | package_dir={ 85 | APP_NAME: APP_NAME, 86 | }, 87 | data_files = media_files, 88 | zip_safe = False 89 | ) 90 | -------------------------------------------------------------------------------- /simplegallery/__init__.py: -------------------------------------------------------------------------------- 1 | VERSION = (0, 14, 'final', 0) 2 | __version__ = '0.14' 3 | -------------------------------------------------------------------------------- /simplegallery/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from django.utils.translation import ugettext_lazy as _ 3 | from django.utils.safestring import mark_safe 4 | from django.contrib.sites.models import Site 5 | from django import forms 6 | from django.core import urlresolvers 7 | from django.http import HttpResponse 8 | from multilingual.admin import ( 9 | MultilingualInlineAdmin, MultilingualModelAdmin, MultilingualModelAdminForm, 10 | MultilingualInlineModelForm 11 | ) 12 | from simplegallery.models import Gallery, Image 13 | from filer.models import Folder 14 | 15 | 16 | def sync_folder(modeladmin, request, queryset): 17 | for obj in queryset: 18 | obj.sync_folder() 19 | sync_folder.short_description = "Sync galleries with folders (if selected)" 20 | 21 | class ReadOnlyLinkWidget(forms.Widget): 22 | def render(self, name, value, attrs=None): 23 | if value: 24 | return mark_safe(u'%s' % (value, _('edit'))) 25 | else: 26 | return u'' 27 | 28 | class ImageInlineForm(MultilingualInlineModelForm): 29 | admin_edit_url = forms.URLField(label=_('detail edit'), required=False,widget=ReadOnlyLinkWidget) 30 | def __init__(self, *args, **kwargs): 31 | super(ImageInlineForm, self).__init__(*args, **kwargs) 32 | if self.instance and self.instance.id: 33 | self.fields['admin_edit_url'].initial = urlresolvers.reverse('admin:simplegallery_image_change', args=(self.instance.id,)) 34 | class Meta: 35 | model = Image 36 | 37 | class ImageInline(admin.TabularInline):#MultilingualInlineAdmin): 38 | model = Image 39 | form = ImageInlineForm 40 | num_in_admin = 20 41 | extra = 4 42 | raw_id_fields = ('image',) # workaround... because otherwise admin will render an "addlink" after the field 43 | fields = ('image','ordering','admin_edit_url',) 44 | #readonly_fields = ('admin_edit_url',) 45 | def queryset(self, request): 46 | return self.model._default_manager.all() 47 | def edit_detail_link(self, obj): 48 | return 'go bronkos!' 49 | 50 | class GalleryAdminForm(MultilingualModelAdminForm): 51 | current_request = None 52 | class Meta: 53 | model = Gallery 54 | 55 | def __init__(self, *args, **kwargs): 56 | instance = kwargs.get('instance', None) 57 | data = kwargs.get('data', None) 58 | if instance: 59 | base_groups = [g.pk for g in instance.groups.all()] 60 | elif data: 61 | base_groups = data.get('groups', []) 62 | else: 63 | base_groups = [] 64 | initial = kwargs.get('initial') or {} 65 | initial.update({'groups': [g.pk for g in self.current_request.user.groups.all()] + base_groups}) 66 | kwargs['initial'] = initial 67 | self.base_fields['folder'].choices = ((f.pk, mark_safe(f.level*'  ' + unicode(f))) for f in Folder.tree.all()) 68 | super(GalleryAdminForm, self).__init__(*args, **kwargs) 69 | 70 | def clean_groups(self): 71 | groups = self.cleaned_data['groups'] 72 | if not (self.current_request.user.groups.filter(pk__in=groups).count() or 73 | self.current_request.user.is_superuser): 74 | raise forms.ValidationError("You must choose at least one group you are in.") 75 | return groups 76 | 77 | 78 | class GalleryAdmin(MultilingualModelAdmin): 79 | form = GalleryAdminForm 80 | inlines = [ 81 | ImageInline, 82 | ] 83 | actions = [sync_folder,] 84 | list_display = ('name', 'description', 'display_groups') 85 | search_fields = ('name', 'translations__title','translations__description',) 86 | # using ordering somehow results in double querysets 87 | # ordering = ('translations__title', ) 88 | use_fieldsets = ( 89 | (None, { 90 | 'fields': ('name',), 91 | }), 92 | ('Language Dependent', { 93 | 'fields': ('title', 'description'), 94 | }), 95 | ('Extra', { 96 | 'classes': ('collapse',), 97 | 'fields': ('groups', 'folder'), 98 | }), 99 | ) 100 | def save_formset(self, request, form, formset, change): 101 | instances = formset.save(commit=False) 102 | for instance in instances: 103 | instance.save() 104 | formset.save_m2m() 105 | if form.instance.folder: 106 | form.instance.sync_folder() 107 | 108 | def display_groups(self, obj): 109 | return ', '.join([str(g) for g in obj.groups.all()]) 110 | 111 | def queryset(self, request): 112 | qs = super(GalleryAdmin, self).queryset(request) 113 | if request.user.is_superuser: 114 | return qs 115 | return qs.filter(groups__in=request.user.groups.all()).distinct() 116 | 117 | def get_form(self, request, obj=None, **kwargs): 118 | form = super(GalleryAdmin, self).get_form(request, obj=None, **kwargs) 119 | form.current_request = request 120 | return form 121 | 122 | class ReadOnlyImageWidget(forms.Widget): 123 | def render(self, name, value, attrs=None): 124 | if value: 125 | return mark_safe(u'' % (value,)) 126 | else: 127 | return u'' 128 | 129 | class ImageDetailForm(MultilingualModelAdminForm): 130 | image_preview = forms.Field(label=_('image'), required=False, widget=ReadOnlyImageWidget) 131 | def __init__(self, *args, **kwargs): 132 | super(ImageDetailForm, self).__init__(*args, **kwargs) 133 | choices = [(s.id, s.name) for s in Site.objects.all()] 134 | self.fields['drop_up_links'].widget.choices = choices 135 | if self.instance and self.instance.id and self.instance.image: 136 | self.fields['image_preview'].initial = self.instance.image.icons.get('64','') 137 | 138 | class ImageDetailAdmin(MultilingualModelAdmin): 139 | form = ImageDetailForm 140 | use_fieldsets= ( 141 | (None, {'fields': ('gallery','image_preview',)}), 142 | (_('links'), {'fields': ('page_link','free_link',)}), 143 | (None, {'fields': ('title','description',)}), 144 | (_('advanced'), {'fields': ('drop_up_links',),'classes': ('collapse',),}), 145 | ) 146 | readonly_fields = ('gallery',) 147 | filter_horizontal = ('drop_up_links',) 148 | def response_change(self, request, obj): 149 | if not request.POST.get("_continue"): 150 | return HttpResponse('') 151 | return super(ImageDetailAdmin, self).response_change(request, obj) 152 | def has_add_permission(self, request): 153 | ''' 154 | Can only be added in the context of a gallery 155 | ''' 156 | return False 157 | def has_delete_permission(self, request, obj=None): 158 | ''' 159 | Can only be deleted in the context of a gallery 160 | ''' 161 | return False 162 | def get_model_perms(self, request): 163 | ''' 164 | The image change view should only be accessable from the edit link 165 | on the inlines of the gallery change view. 166 | ''' 167 | return { 168 | 'add': False, 169 | 'change': False, 170 | 'delete': False, 171 | } 172 | 173 | admin.site.register(Gallery, GalleryAdmin) 174 | admin.site.register(Image, ImageDetailAdmin) 175 | -------------------------------------------------------------------------------- /simplegallery/cms_plugins.py: -------------------------------------------------------------------------------- 1 | from django.utils.translation import ugettext_lazy as _ 2 | from django.contrib import admin 3 | from django.conf import settings 4 | from cms.plugin_pool import plugin_pool 5 | from cms.plugin_base import CMSPluginBase 6 | from simplegallery.models import GalleryPublication, CarouselImage,\ 7 | CarouselFeature, Gallery 8 | from django.template.defaultfilters import title 9 | 10 | class SimpleGalleryPublicationPlugin(CMSPluginBase): 11 | model = GalleryPublication 12 | name = _("Gallery") 13 | render_template = "simplegallery/gallery_plugin.html" 14 | change_form_template = "simplegallery/plugin_form.html" 15 | text_enabled = False 16 | 17 | if not getattr(settings, 'CMSPLUGIN_SIMPLE_GALLERY_STYLE_CHOICES', False): 18 | exclude = ('style',) 19 | 20 | def render(self, context, instance, placeholder): 21 | context.update({ 22 | 'instance': instance, 23 | 'gallery': instance.gallery, 24 | 'images': instance.gallery.images.all(), 25 | 'image_size': get_image_size(context, instance), 26 | 'placeholder': placeholder, 27 | }) 28 | return context 29 | 30 | def formfield_for_foreignkey(self, db_field, request=None, **kwargs): 31 | """ 32 | Get a form Field for a ForeignKey. 33 | """ 34 | gallery = self.model.gallery.field 35 | if request and db_field is gallery and not request.user.is_superuser: 36 | kwargs['queryset'] = Gallery.objects.filter(groups__in=request.user.groups.all()).distinct() 37 | else: 38 | kwargs['queryset'] = Gallery.objects.all() 39 | return super(SimpleGalleryPublicationPlugin, self).formfield_for_foreignkey(db_field, request, **kwargs) 40 | 41 | """ 42 | class PluginMedia: 43 | css = { 44 | 'all': ('%ssimplegallery/css/simplegallery.css' % settings.MEDIA_URL,) 45 | } 46 | """ 47 | 48 | plugin_pool.register_plugin(SimpleGalleryPublicationPlugin) 49 | 50 | class CarouselImageInline(admin.StackedInline): 51 | model = CarouselImage 52 | fk_name = 'carousel_feature' 53 | extra = 1 54 | 55 | class CarouselFeaturePlugin(CMSPluginBase): 56 | model = CarouselFeature 57 | name = title(_('Gallery lite')) 58 | placeholders = ('feature_home',) 59 | render_template = "simplegallery/gallery_lite.html" 60 | change_form_template = "simplegallery/plugin_form.html" 61 | text_enabled = False 62 | inlines = [ 63 | CarouselImageInline, 64 | ] 65 | 66 | def render(self, context, instance, placeholder): 67 | context.update({ 68 | 'instance': instance, 69 | 'images': instance.images.select_related('image',).all(), 70 | 'image_size': get_image_size(context, instance), 71 | 'placeholder': placeholder, 72 | }) 73 | return context 74 | 75 | class PluginMedia: 76 | ''' 77 | js = ('%ssimplegallery/js/jquery.cycle.min.js'% settings.MEDIA_URL, 78 | '%ssimplegallery/js/jquery.cycle.trans.min.js'% settings.MEDIA_URL,) 79 | ''' 80 | plugin_pool.register_plugin(CarouselFeaturePlugin) 81 | 82 | def get_image_size(context, instance): 83 | placeholder_width = context.get('width', None) 84 | if placeholder_width: 85 | width = placeholder_width 86 | else: 87 | try: 88 | width = instance.image.width 89 | except: 90 | width = 100 91 | try: 92 | width = int(float(width)) 93 | except ValueError: 94 | width = 100 95 | height = int(round(float(width) / instance.get_aspect_ratio())) 96 | return (u'%dx%d' % (width, height), width, height) 97 | -------------------------------------------------------------------------------- /simplegallery/fields.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | from django.forms.fields import RegexField 3 | from django.utils.translation import ugettext_lazy 4 | from django.utils.encoding import smart_unicode 5 | from django.core import exceptions 6 | import re 7 | 8 | ASPECT_RATIO_RE = re.compile('[1-9]\d*:[1-9]\d*') 9 | 10 | 11 | class AspectRatioFormField(RegexField): 12 | def __init__(self, *args, **kwargs): 13 | super(AspectRatioFormField, self).__init__(*args, **kwargs) 14 | self.localize = True 15 | 16 | def localize_value(self, value): 17 | if value: 18 | return '%s:%s' % tuple(value) 19 | return value 20 | 21 | 22 | class AspectRatioField(models.CharField): 23 | __metaclass__ = models.SubfieldBase 24 | 25 | def to_python(self, value): 26 | if isinstance(value, list): 27 | return value 28 | if isinstance(value, basestring): 29 | if ':' in value: 30 | return [int(x) for x in value.split(':')] 31 | else: 32 | return None 33 | if value is None: 34 | if self.null: 35 | return value 36 | else: 37 | raise exceptions.ValidationError( 38 | ugettext_lazy("This field cannot be null.")) 39 | return self.to_python(smart_unicode(value)) 40 | 41 | def get_prep_value(self, value): 42 | if isinstance(value, list): 43 | return '%s:%s' % tuple(value) 44 | if isinstance(value, basestring): 45 | if ':' in value: 46 | return value 47 | return None 48 | 49 | def get_db_prep_value(self, value, connection, prepared=False): 50 | return self.get_prep_value(value) 51 | 52 | def value_from_object(self, obj): 53 | return self.to_python(getattr(obj, self.attname)) 54 | 55 | def formfield(self, **kwargs): 56 | defaults = {'form_class': AspectRatioFormField, 'regex': ASPECT_RATIO_RE} 57 | if 'initial' in kwargs: 58 | kwargs['initial'] = self.get_prep_value(kwargs['initial']) 59 | defaults.update(kwargs) 60 | return super(AspectRatioField, self).formfield(**defaults) 61 | 62 | def south_field_triple(self): 63 | "Returns a suitable description of this field for South." 64 | # We'll just introspect ourselves, since we inherit. 65 | from south.modelsinspector import introspector 66 | field_class = "django.db.models.fields.CharField" 67 | args, kwargs = introspector(self) 68 | # That's our definition! 69 | return (field_class, args, kwargs) -------------------------------------------------------------------------------- /simplegallery/locale/bg/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2010-04-28 11:09+0200\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | 19 | #: cms_plugins.py:12 20 | msgid "SimpleGallery Publication" 21 | msgstr "" 22 | 23 | #: cms_plugins.py:63 24 | msgid "carousel image feature" 25 | msgstr "" 26 | 27 | #: models.py:18 28 | msgid "" 29 | "A unique identifier for this gallery, this will only be used in the admin " 30 | "panel." 31 | msgstr "" 32 | 33 | #: models.py:26 34 | msgid "gallery" 35 | msgstr "" 36 | 37 | #: models.py:27 38 | msgid "galleries" 39 | msgstr "" 40 | 41 | #: models.py:35 models.py:77 models.py:79 42 | msgid "page link" 43 | msgstr "" 44 | 45 | #: models.py:39 models.py:73 models.py:101 46 | msgid "title" 47 | msgstr "" 48 | 49 | #: models.py:40 models.py:74 50 | msgid "description" 51 | msgstr "" 52 | 53 | #: models.py:44 54 | msgid "image" 55 | msgstr "" 56 | 57 | #: models.py:45 58 | msgid "images" 59 | msgstr "" 60 | 61 | #: models.py:65 models.py:102 62 | msgid "interval" 63 | msgstr "" 64 | 65 | #: models.py:66 66 | msgid "gallery style" 67 | msgstr "" 68 | 69 | #: models.py:67 models.py:103 70 | msgid "aspect ratio" 71 | msgstr "" 72 | 73 | #: models.py:72 74 | msgid "date" 75 | msgstr "" 76 | 77 | #: models.py:75 78 | msgid "title 2" 79 | msgstr "" 80 | 81 | #: models.py:76 82 | msgid "description 2" 83 | msgstr "" 84 | 85 | #: models.py:78 86 | msgid "URL" 87 | msgstr "" 88 | 89 | #: models.py:79 90 | #, python-format 91 | msgid "" 92 | "If the %(page_link)s field is not used, you can enter an external URL here." 93 | msgstr "" 94 | 95 | #: models.py:80 96 | msgid "ordering" 97 | msgstr "" 98 | 99 | #: models.py:84 100 | msgid "carousel image" 101 | msgstr "" 102 | 103 | #: models.py:85 104 | msgid "carousel images" 105 | msgstr "" 106 | 107 | #: templates/simplegallery/feature_plugin.html:43 108 | msgid "more" 109 | msgstr "" 110 | 111 | #: templates/simplegallery/gallery_plugin.html:39 112 | msgid "enlarge" 113 | msgstr "" 114 | -------------------------------------------------------------------------------- /simplegallery/locale/bs/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2010-04-28 11:13+0200\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | 19 | #: cms_plugins.py:12 20 | msgid "SimpleGallery Publication" 21 | msgstr "" 22 | 23 | #: cms_plugins.py:63 24 | msgid "carousel image feature" 25 | msgstr "" 26 | 27 | #: models.py:18 28 | msgid "" 29 | "A unique identifier for this gallery, this will only be used in the admin " 30 | "panel." 31 | msgstr "" 32 | 33 | #: models.py:26 34 | msgid "gallery" 35 | msgstr "" 36 | 37 | #: models.py:27 38 | msgid "galleries" 39 | msgstr "" 40 | 41 | #: models.py:35 models.py:77 models.py:79 42 | msgid "page link" 43 | msgstr "" 44 | 45 | #: models.py:39 models.py:73 models.py:101 46 | msgid "title" 47 | msgstr "" 48 | 49 | #: models.py:40 models.py:74 50 | msgid "description" 51 | msgstr "" 52 | 53 | #: models.py:44 54 | msgid "image" 55 | msgstr "" 56 | 57 | #: models.py:45 58 | msgid "images" 59 | msgstr "" 60 | 61 | #: models.py:65 models.py:102 62 | msgid "interval" 63 | msgstr "" 64 | 65 | #: models.py:66 66 | msgid "gallery style" 67 | msgstr "" 68 | 69 | #: models.py:67 models.py:103 70 | msgid "aspect ratio" 71 | msgstr "" 72 | 73 | #: models.py:72 74 | msgid "date" 75 | msgstr "" 76 | 77 | #: models.py:75 78 | msgid "title 2" 79 | msgstr "" 80 | 81 | #: models.py:76 82 | msgid "description 2" 83 | msgstr "" 84 | 85 | #: models.py:78 86 | msgid "URL" 87 | msgstr "" 88 | 89 | #: models.py:79 90 | #, python-format 91 | msgid "" 92 | "If the %(page_link)s field is not used, you can enter an external URL here." 93 | msgstr "" 94 | 95 | #: models.py:80 96 | msgid "ordering" 97 | msgstr "" 98 | 99 | #: models.py:84 100 | msgid "carousel image" 101 | msgstr "" 102 | 103 | #: models.py:85 104 | msgid "carousel images" 105 | msgstr "" 106 | 107 | #: templates/simplegallery/feature_plugin.html:43 108 | msgid "more" 109 | msgstr "" 110 | 111 | #: templates/simplegallery/gallery_plugin.html:39 112 | msgid "enlarge" 113 | msgstr "" 114 | -------------------------------------------------------------------------------- /simplegallery/locale/de/LC_MESSAGES/django.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/divio/django-simplegallery/00d15b12a27d65bdbecc0c196dc70c15fbce5c7d/simplegallery/locale/de/LC_MESSAGES/django.mo -------------------------------------------------------------------------------- /simplegallery/locale/de/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: simplegallery\n" 9 | "Report-Msgid-Bugs-To: \n" 10 | "POT-Creation-Date: 2010-04-28 11:15+0200\n" 11 | "PO-Revision-Date: 2009-06-24 11:48+0100\n" 12 | "Last-Translator: Maik Lustenberger \n" 13 | "Language-Team: Divio Developers \n" 14 | "MIME-Version: 1.0\n" 15 | "Content-Type: text/plain; charset=UTF-8\n" 16 | "Content-Transfer-Encoding: 8bit\n" 17 | "X-Poedit-Language: German\n" 18 | "X-Poedit-Country: SWITZERLAND\n" 19 | 20 | #: cms_plugins.py:12 21 | msgid "SimpleGallery Publication" 22 | msgstr "Galerie" 23 | 24 | #: cms_plugins.py:63 25 | msgid "carousel image feature" 26 | msgstr "" 27 | 28 | #: models.py:18 29 | msgid "" 30 | "A unique identifier for this gallery, this will only be used in the admin " 31 | "panel." 32 | msgstr "" 33 | 34 | #: models.py:26 35 | msgid "gallery" 36 | msgstr "Galerie" 37 | 38 | #: models.py:27 39 | msgid "galleries" 40 | msgstr "Galerien" 41 | 42 | #: models.py:35 models.py:77 models.py:79 43 | msgid "page link" 44 | msgstr "" 45 | 46 | #: models.py:39 models.py:73 models.py:101 47 | msgid "title" 48 | msgstr "Titel" 49 | 50 | #: models.py:40 models.py:74 51 | msgid "description" 52 | msgstr "Beschreib" 53 | 54 | #: models.py:44 55 | msgid "image" 56 | msgstr "Bild" 57 | 58 | #: models.py:45 59 | msgid "images" 60 | msgstr "Bilder" 61 | 62 | #: models.py:65 models.py:102 63 | msgid "interval" 64 | msgstr "" 65 | 66 | #: models.py:66 67 | #, fuzzy 68 | msgid "gallery style" 69 | msgstr "Galerie" 70 | 71 | #: models.py:67 models.py:103 72 | msgid "aspect ratio" 73 | msgstr "" 74 | 75 | #: models.py:72 76 | msgid "date" 77 | msgstr "" 78 | 79 | #: models.py:75 80 | #, fuzzy 81 | msgid "title 2" 82 | msgstr "Titel" 83 | 84 | #: models.py:76 85 | #, fuzzy 86 | msgid "description 2" 87 | msgstr "Beschreib" 88 | 89 | #: models.py:78 90 | msgid "URL" 91 | msgstr "" 92 | 93 | #: models.py:79 94 | #, python-format 95 | msgid "" 96 | "If the %(page_link)s field is not used, you can enter an external URL here." 97 | msgstr "" 98 | 99 | #: models.py:80 100 | msgid "ordering" 101 | msgstr "" 102 | 103 | #: models.py:84 104 | msgid "carousel image" 105 | msgstr "" 106 | 107 | #: models.py:85 108 | msgid "carousel images" 109 | msgstr "" 110 | 111 | #: templates/simplegallery/feature_plugin.html:43 112 | msgid "more" 113 | msgstr "" 114 | 115 | #: templates/simplegallery/gallery_plugin.html:39 116 | msgid "enlarge" 117 | msgstr "vergrössern" 118 | -------------------------------------------------------------------------------- /simplegallery/locale/el/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2010-04-28 11:17+0200\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | 20 | #: cms_plugins.py:12 21 | msgid "SimpleGallery Publication" 22 | msgstr "" 23 | 24 | #: cms_plugins.py:63 25 | msgid "carousel image feature" 26 | msgstr "" 27 | 28 | #: models.py:18 29 | msgid "" 30 | "A unique identifier for this gallery, this will only be used in the admin " 31 | "panel." 32 | msgstr "" 33 | 34 | #: models.py:26 35 | msgid "gallery" 36 | msgstr "" 37 | 38 | #: models.py:27 39 | msgid "galleries" 40 | msgstr "" 41 | 42 | #: models.py:35 models.py:77 models.py:79 43 | msgid "page link" 44 | msgstr "" 45 | 46 | #: models.py:39 models.py:73 models.py:101 47 | msgid "title" 48 | msgstr "" 49 | 50 | #: models.py:40 models.py:74 51 | msgid "description" 52 | msgstr "" 53 | 54 | #: models.py:44 55 | msgid "image" 56 | msgstr "" 57 | 58 | #: models.py:45 59 | msgid "images" 60 | msgstr "" 61 | 62 | #: models.py:65 models.py:102 63 | msgid "interval" 64 | msgstr "" 65 | 66 | #: models.py:66 67 | msgid "gallery style" 68 | msgstr "" 69 | 70 | #: models.py:67 models.py:103 71 | msgid "aspect ratio" 72 | msgstr "" 73 | 74 | #: models.py:72 75 | msgid "date" 76 | msgstr "" 77 | 78 | #: models.py:75 79 | msgid "title 2" 80 | msgstr "" 81 | 82 | #: models.py:76 83 | msgid "description 2" 84 | msgstr "" 85 | 86 | #: models.py:78 87 | msgid "URL" 88 | msgstr "" 89 | 90 | #: models.py:79 91 | #, python-format 92 | msgid "" 93 | "If the %(page_link)s field is not used, you can enter an external URL here." 94 | msgstr "" 95 | 96 | #: models.py:80 97 | msgid "ordering" 98 | msgstr "" 99 | 100 | #: models.py:84 101 | msgid "carousel image" 102 | msgstr "" 103 | 104 | #: models.py:85 105 | msgid "carousel images" 106 | msgstr "" 107 | 108 | #: templates/simplegallery/feature_plugin.html:43 109 | msgid "more" 110 | msgstr "" 111 | 112 | #: templates/simplegallery/gallery_plugin.html:39 113 | msgid "enlarge" 114 | msgstr "" 115 | -------------------------------------------------------------------------------- /simplegallery/locale/en/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2010-04-28 11:20+0200\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | 19 | #: cms_plugins.py:12 20 | msgid "SimpleGallery Publication" 21 | msgstr "" 22 | 23 | #: cms_plugins.py:63 24 | msgid "carousel image feature" 25 | msgstr "" 26 | 27 | #: models.py:18 28 | msgid "" 29 | "A unique identifier for this gallery, this will only be used in the admin " 30 | "panel." 31 | msgstr "" 32 | 33 | #: models.py:26 34 | msgid "gallery" 35 | msgstr "" 36 | 37 | #: models.py:27 38 | msgid "galleries" 39 | msgstr "" 40 | 41 | #: models.py:35 models.py:77 models.py:79 42 | msgid "page link" 43 | msgstr "" 44 | 45 | #: models.py:39 models.py:73 models.py:101 46 | msgid "title" 47 | msgstr "" 48 | 49 | #: models.py:40 models.py:74 50 | msgid "description" 51 | msgstr "" 52 | 53 | #: models.py:44 54 | msgid "image" 55 | msgstr "" 56 | 57 | #: models.py:45 58 | msgid "images" 59 | msgstr "" 60 | 61 | #: models.py:65 models.py:102 62 | msgid "interval" 63 | msgstr "" 64 | 65 | #: models.py:66 66 | msgid "gallery style" 67 | msgstr "" 68 | 69 | #: models.py:67 models.py:103 70 | msgid "aspect ratio" 71 | msgstr "" 72 | 73 | #: models.py:72 74 | msgid "date" 75 | msgstr "" 76 | 77 | #: models.py:75 78 | msgid "title 2" 79 | msgstr "" 80 | 81 | #: models.py:76 82 | msgid "description 2" 83 | msgstr "" 84 | 85 | #: models.py:78 86 | msgid "URL" 87 | msgstr "" 88 | 89 | #: models.py:79 90 | #, python-format 91 | msgid "" 92 | "If the %(page_link)s field is not used, you can enter an external URL here." 93 | msgstr "" 94 | 95 | #: models.py:80 96 | msgid "ordering" 97 | msgstr "" 98 | 99 | #: models.py:84 100 | msgid "carousel image" 101 | msgstr "" 102 | 103 | #: models.py:85 104 | msgid "carousel images" 105 | msgstr "" 106 | 107 | #: templates/simplegallery/feature_plugin.html:43 108 | msgid "more" 109 | msgstr "" 110 | 111 | #: templates/simplegallery/gallery_plugin.html:39 112 | msgid "enlarge" 113 | msgstr "" 114 | -------------------------------------------------------------------------------- /simplegallery/locale/fr/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2010-04-28 11:22+0200\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=n>1;\n" 19 | 20 | #: cms_plugins.py:12 21 | msgid "SimpleGallery Publication" 22 | msgstr "" 23 | 24 | #: cms_plugins.py:63 25 | msgid "carousel image feature" 26 | msgstr "" 27 | 28 | #: models.py:18 29 | msgid "" 30 | "A unique identifier for this gallery, this will only be used in the admin " 31 | "panel." 32 | msgstr "" 33 | 34 | #: models.py:26 35 | msgid "gallery" 36 | msgstr "" 37 | 38 | #: models.py:27 39 | msgid "galleries" 40 | msgstr "" 41 | 42 | #: models.py:35 models.py:77 models.py:79 43 | msgid "page link" 44 | msgstr "" 45 | 46 | #: models.py:39 models.py:73 models.py:101 47 | msgid "title" 48 | msgstr "" 49 | 50 | #: models.py:40 models.py:74 51 | msgid "description" 52 | msgstr "" 53 | 54 | #: models.py:44 55 | msgid "image" 56 | msgstr "" 57 | 58 | #: models.py:45 59 | msgid "images" 60 | msgstr "" 61 | 62 | #: models.py:65 models.py:102 63 | msgid "interval" 64 | msgstr "" 65 | 66 | #: models.py:66 67 | msgid "gallery style" 68 | msgstr "" 69 | 70 | #: models.py:67 models.py:103 71 | msgid "aspect ratio" 72 | msgstr "" 73 | 74 | #: models.py:72 75 | msgid "date" 76 | msgstr "" 77 | 78 | #: models.py:75 79 | msgid "title 2" 80 | msgstr "" 81 | 82 | #: models.py:76 83 | msgid "description 2" 84 | msgstr "" 85 | 86 | #: models.py:78 87 | msgid "URL" 88 | msgstr "" 89 | 90 | #: models.py:79 91 | #, python-format 92 | msgid "" 93 | "If the %(page_link)s field is not used, you can enter an external URL here." 94 | msgstr "" 95 | 96 | #: models.py:80 97 | msgid "ordering" 98 | msgstr "" 99 | 100 | #: models.py:84 101 | msgid "carousel image" 102 | msgstr "" 103 | 104 | #: models.py:85 105 | msgid "carousel images" 106 | msgstr "" 107 | 108 | #: templates/simplegallery/feature_plugin.html:43 109 | msgid "more" 110 | msgstr "" 111 | 112 | #: templates/simplegallery/gallery_plugin.html:39 113 | msgid "enlarge" 114 | msgstr "" 115 | -------------------------------------------------------------------------------- /simplegallery/locale/hu/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2010-04-28 11:24+0200\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | 20 | #: cms_plugins.py:12 21 | msgid "SimpleGallery Publication" 22 | msgstr "" 23 | 24 | #: cms_plugins.py:63 25 | msgid "carousel image feature" 26 | msgstr "" 27 | 28 | #: models.py:18 29 | msgid "" 30 | "A unique identifier for this gallery, this will only be used in the admin " 31 | "panel." 32 | msgstr "" 33 | 34 | #: models.py:26 35 | msgid "gallery" 36 | msgstr "" 37 | 38 | #: models.py:27 39 | msgid "galleries" 40 | msgstr "" 41 | 42 | #: models.py:35 models.py:77 models.py:79 43 | msgid "page link" 44 | msgstr "" 45 | 46 | #: models.py:39 models.py:73 models.py:101 47 | msgid "title" 48 | msgstr "" 49 | 50 | #: models.py:40 models.py:74 51 | msgid "description" 52 | msgstr "" 53 | 54 | #: models.py:44 55 | msgid "image" 56 | msgstr "" 57 | 58 | #: models.py:45 59 | msgid "images" 60 | msgstr "" 61 | 62 | #: models.py:65 models.py:102 63 | msgid "interval" 64 | msgstr "" 65 | 66 | #: models.py:66 67 | msgid "gallery style" 68 | msgstr "" 69 | 70 | #: models.py:67 models.py:103 71 | msgid "aspect ratio" 72 | msgstr "" 73 | 74 | #: models.py:72 75 | msgid "date" 76 | msgstr "" 77 | 78 | #: models.py:75 79 | msgid "title 2" 80 | msgstr "" 81 | 82 | #: models.py:76 83 | msgid "description 2" 84 | msgstr "" 85 | 86 | #: models.py:78 87 | msgid "URL" 88 | msgstr "" 89 | 90 | #: models.py:79 91 | #, python-format 92 | msgid "" 93 | "If the %(page_link)s field is not used, you can enter an external URL here." 94 | msgstr "" 95 | 96 | #: models.py:80 97 | msgid "ordering" 98 | msgstr "" 99 | 100 | #: models.py:84 101 | msgid "carousel image" 102 | msgstr "" 103 | 104 | #: models.py:85 105 | msgid "carousel images" 106 | msgstr "" 107 | 108 | #: templates/simplegallery/feature_plugin.html:43 109 | msgid "more" 110 | msgstr "" 111 | 112 | #: templates/simplegallery/gallery_plugin.html:39 113 | msgid "enlarge" 114 | msgstr "" 115 | -------------------------------------------------------------------------------- /simplegallery/locale/it/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2010-04-28 11:29+0200\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | 20 | #: cms_plugins.py:12 21 | msgid "SimpleGallery Publication" 22 | msgstr "" 23 | 24 | #: cms_plugins.py:63 25 | msgid "carousel image feature" 26 | msgstr "" 27 | 28 | #: models.py:18 29 | msgid "" 30 | "A unique identifier for this gallery, this will only be used in the admin " 31 | "panel." 32 | msgstr "" 33 | 34 | #: models.py:26 35 | msgid "gallery" 36 | msgstr "" 37 | 38 | #: models.py:27 39 | msgid "galleries" 40 | msgstr "" 41 | 42 | #: models.py:35 models.py:77 models.py:79 43 | msgid "page link" 44 | msgstr "" 45 | 46 | #: models.py:39 models.py:73 models.py:101 47 | msgid "title" 48 | msgstr "" 49 | 50 | #: models.py:40 models.py:74 51 | msgid "description" 52 | msgstr "" 53 | 54 | #: models.py:44 55 | msgid "image" 56 | msgstr "" 57 | 58 | #: models.py:45 59 | msgid "images" 60 | msgstr "" 61 | 62 | #: models.py:65 models.py:102 63 | msgid "interval" 64 | msgstr "" 65 | 66 | #: models.py:66 67 | msgid "gallery style" 68 | msgstr "" 69 | 70 | #: models.py:67 models.py:103 71 | msgid "aspect ratio" 72 | msgstr "" 73 | 74 | #: models.py:72 75 | msgid "date" 76 | msgstr "" 77 | 78 | #: models.py:75 79 | msgid "title 2" 80 | msgstr "" 81 | 82 | #: models.py:76 83 | msgid "description 2" 84 | msgstr "" 85 | 86 | #: models.py:78 87 | msgid "URL" 88 | msgstr "" 89 | 90 | #: models.py:79 91 | #, python-format 92 | msgid "" 93 | "If the %(page_link)s field is not used, you can enter an external URL here." 94 | msgstr "" 95 | 96 | #: models.py:80 97 | msgid "ordering" 98 | msgstr "" 99 | 100 | #: models.py:84 101 | msgid "carousel image" 102 | msgstr "" 103 | 104 | #: models.py:85 105 | msgid "carousel images" 106 | msgstr "" 107 | 108 | #: templates/simplegallery/feature_plugin.html:43 109 | msgid "more" 110 | msgstr "" 111 | 112 | #: templates/simplegallery/gallery_plugin.html:39 113 | msgid "enlarge" 114 | msgstr "" 115 | -------------------------------------------------------------------------------- /simplegallery/locale/ro/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2010-04-28 11:31+0200\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 19 | 20 | #: cms_plugins.py:12 21 | msgid "SimpleGallery Publication" 22 | msgstr "" 23 | 24 | #: cms_plugins.py:63 25 | msgid "carousel image feature" 26 | msgstr "" 27 | 28 | #: models.py:18 29 | msgid "" 30 | "A unique identifier for this gallery, this will only be used in the admin " 31 | "panel." 32 | msgstr "" 33 | 34 | #: models.py:26 35 | msgid "gallery" 36 | msgstr "" 37 | 38 | #: models.py:27 39 | msgid "galleries" 40 | msgstr "" 41 | 42 | #: models.py:35 models.py:77 models.py:79 43 | msgid "page link" 44 | msgstr "" 45 | 46 | #: models.py:39 models.py:73 models.py:101 47 | msgid "title" 48 | msgstr "" 49 | 50 | #: models.py:40 models.py:74 51 | msgid "description" 52 | msgstr "" 53 | 54 | #: models.py:44 55 | msgid "image" 56 | msgstr "" 57 | 58 | #: models.py:45 59 | msgid "images" 60 | msgstr "" 61 | 62 | #: models.py:65 models.py:102 63 | msgid "interval" 64 | msgstr "" 65 | 66 | #: models.py:66 67 | msgid "gallery style" 68 | msgstr "" 69 | 70 | #: models.py:67 models.py:103 71 | msgid "aspect ratio" 72 | msgstr "" 73 | 74 | #: models.py:72 75 | msgid "date" 76 | msgstr "" 77 | 78 | #: models.py:75 79 | msgid "title 2" 80 | msgstr "" 81 | 82 | #: models.py:76 83 | msgid "description 2" 84 | msgstr "" 85 | 86 | #: models.py:78 87 | msgid "URL" 88 | msgstr "" 89 | 90 | #: models.py:79 91 | #, python-format 92 | msgid "" 93 | "If the %(page_link)s field is not used, you can enter an external URL here." 94 | msgstr "" 95 | 96 | #: models.py:80 97 | msgid "ordering" 98 | msgstr "" 99 | 100 | #: models.py:84 101 | msgid "carousel image" 102 | msgstr "" 103 | 104 | #: models.py:85 105 | msgid "carousel images" 106 | msgstr "" 107 | 108 | #: templates/simplegallery/feature_plugin.html:43 109 | msgid "more" 110 | msgstr "" 111 | 112 | #: templates/simplegallery/gallery_plugin.html:39 113 | msgid "enlarge" 114 | msgstr "" 115 | -------------------------------------------------------------------------------- /simplegallery/locale/sr/LC_MESSAGES/django.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the PACKAGE package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PACKAGE VERSION\n" 10 | "Report-Msgid-Bugs-To: \n" 11 | "POT-Creation-Date: 2010-04-28 11:33+0200\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" 19 | "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" 20 | 21 | #: cms_plugins.py:12 22 | msgid "SimpleGallery Publication" 23 | msgstr "" 24 | 25 | #: cms_plugins.py:63 26 | msgid "carousel image feature" 27 | msgstr "" 28 | 29 | #: models.py:18 30 | msgid "" 31 | "A unique identifier for this gallery, this will only be used in the admin " 32 | "panel." 33 | msgstr "" 34 | 35 | #: models.py:26 36 | msgid "gallery" 37 | msgstr "" 38 | 39 | #: models.py:27 40 | msgid "galleries" 41 | msgstr "" 42 | 43 | #: models.py:35 models.py:77 models.py:79 44 | msgid "page link" 45 | msgstr "" 46 | 47 | #: models.py:39 models.py:73 models.py:101 48 | msgid "title" 49 | msgstr "" 50 | 51 | #: models.py:40 models.py:74 52 | msgid "description" 53 | msgstr "" 54 | 55 | #: models.py:44 56 | msgid "image" 57 | msgstr "" 58 | 59 | #: models.py:45 60 | msgid "images" 61 | msgstr "" 62 | 63 | #: models.py:65 models.py:102 64 | msgid "interval" 65 | msgstr "" 66 | 67 | #: models.py:66 68 | msgid "gallery style" 69 | msgstr "" 70 | 71 | #: models.py:67 models.py:103 72 | msgid "aspect ratio" 73 | msgstr "" 74 | 75 | #: models.py:72 76 | msgid "date" 77 | msgstr "" 78 | 79 | #: models.py:75 80 | msgid "title 2" 81 | msgstr "" 82 | 83 | #: models.py:76 84 | msgid "description 2" 85 | msgstr "" 86 | 87 | #: models.py:78 88 | msgid "URL" 89 | msgstr "" 90 | 91 | #: models.py:79 92 | #, python-format 93 | msgid "" 94 | "If the %(page_link)s field is not used, you can enter an external URL here." 95 | msgstr "" 96 | 97 | #: models.py:80 98 | msgid "ordering" 99 | msgstr "" 100 | 101 | #: models.py:84 102 | msgid "carousel image" 103 | msgstr "" 104 | 105 | #: models.py:85 106 | msgid "carousel images" 107 | msgstr "" 108 | 109 | #: templates/simplegallery/feature_plugin.html:43 110 | msgid "more" 111 | msgstr "" 112 | 113 | #: templates/simplegallery/gallery_plugin.html:39 114 | msgid "enlarge" 115 | msgstr "" 116 | -------------------------------------------------------------------------------- /simplegallery/media/css/simplegallery.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /** 3 | * @framework CFF - Classy Frontend Framework 4 | * @author Angelo Dini 5 | * @copyright http://www.divio.ch under the BSD Licence 6 | */ 7 | 8 | /*##################################################|*/ 9 | /* #BASE# */ 10 | .plugin_gallery { margin:0 0 15px; position:relative; left:0; top:0; z-index:10; } 11 | 12 | /* gallery canvas */ 13 | .gallery-canvas { position:relative; left:0; top:0; z-index:20; margin:0; overflow:hidden; } 14 | .gallery-canvas .gallery-list { list-style:none; padding:0; margin:0; } 15 | .gallery-canvas .gallery-list .gallery-list-slide { padding:0; margin:0; zoom:1; width:100%; } 16 | .gallery-canvas .gallery-list .gallery-item { text-align:center; } 17 | 18 | .gallery-thumbs { display:none; } 19 | .gallery-thumbs ul { position:relative; left:0; top:0; z-index:20; list-style:none; padding:0; margin:0; } 20 | .gallery-thumbs ul li { padding:0; margin:0; } 21 | 22 | .gallery-controls { display:none; padding:0; margin:0; } 23 | .gallery-controls .gallery-ctrl-play, 24 | .gallery-controls .gallery-ctrl-pause { display:inline; } 25 | .gallery-controls .active { display:none; } 26 | 27 | .gallery-caption { display:none; } 28 | 29 | /*##################################################|*/ 30 | /* #CUSTOM# */ 31 | .gallery-canvas .gallery-list .gallery-item { padding-right:5px; } 32 | 33 | .gallery-thumbs {} 34 | .gallery-thumbs ul { text-align:center; display:none; } 35 | .gallery-thumbs ul li { float:left; display:inline-block; } 36 | .gallery-thumbs ul li a { float:left; display:inline-block; padding:0 5px; } 37 | .gallery-thumbs ul li a:hover { background-position:left bottom; } 38 | 39 | .gallery-thumbs ul li.gallery-thumbs-prev a {} 40 | .gallery-thumbs ul li.gallery-thumbs-next a {} 41 | .gallery-thumbs ul li.gallery-thumbs-next a:hover, 42 | .gallery-thumbs ul li.gallery-thumbs-prev a:hover {} 43 | 44 | .gallery-thumbs ul li.active a {} 45 | 46 | /* #CUSTOM/lite# */ -------------------------------------------------------------------------------- /simplegallery/media/js/jquery.simplegallery.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @framework CFF - Classy Frontend Framework 3 | * @author Angelo Dini 4 | * @copyright http://www.divio.ch under the BSD Licence 5 | * @requires jquery, cycle, classy 6 | * 7 | * check if classy.js and cycle exists */ 8 | if($.fn.cycle === undefined) log('jquery.gallery.js: cycle.js is required!'); 9 | if(window['Class'] === undefined) log('jquery.gallery.js: classy.js is required!'); 10 | 11 | /*##################################################|*/ 12 | /* #GALLERY# */ 13 | (function ($, Class) { 14 | /** 15 | * Cl.Gallery 16 | * @version: 3.0.0 17 | * @params 18 | - fx: transition style - see http://jquery.malsup.com/cycle/browser.html 19 | - timeout: default timeout 20 | - speed: transition speed 21 | - startingSlide: index where to initiate the gallery 22 | - activePagerClass: active class for selected page 23 | - before: add trigger event for gallery 24 | - after: add trigger event for gallery 25 | - ui: enable/disable or add ui elements 26 | - plugins: enable/disable or add plugins 27 | - keys: define keycodes for next/prev event 28 | - cls: modify finder classes 29 | - autoplay: should gallery autoplay? 30 | */ 31 | Cl.Gallery = Class.$extend({ 32 | 33 | options: { 34 | /* cycle settings | see http://jquery.malsup.com/cycle/options.html */ 35 | fx: 'fade', /* */ 36 | timeout: 5000, 37 | speed: 900, 38 | startingSlide: 0, 39 | activePagerClass: 'active', 40 | before: function () {$(this).trigger('cycle.before');}, 41 | after: function () {$(this).trigger('cycle.after');}, 42 | /* ui loaders */ 43 | ui: { 44 | caption: true, 45 | controls: true, 46 | thumbnails: true 47 | }, 48 | /* plugin loaders */ 49 | plugins: { 50 | external: true, 51 | keycontrol: true, 52 | lightbox: true, 53 | lightboxOptions: {} 54 | }, 55 | /* use jquery keycodes */ 56 | keys: { 57 | next: 39, 58 | prev: 37 59 | }, 60 | /* control css classes */ 61 | cls: { 62 | canvas: '.gallery-list', 63 | canvas_elements: '.gallery-list-slide', 64 | active: 'active', 65 | controls: '.gallery-controls', 66 | controls_play: '.gallery-ctrl-play', 67 | controls_pause: '.gallery-ctrl-pause', 68 | controls_next: '.gallery-ctrl-next', 69 | controls_prev: '.gallery-ctrl-prev', 70 | caption: '.gallery-caption', 71 | thumb: '.gallery-thumbs', 72 | thumb_els: '.gallery-thumbs-slide', 73 | thumb_next: '.gallery-thumbs-next', 74 | thumb_prev: '.gallery-thumbs-prev' 75 | }, 76 | /* custom settings */ 77 | autoplay: true 78 | }, 79 | 80 | initialize: function (el, options) { 81 | var classy = this; 82 | // check if only one element is given 83 | if($(el).length > 2) { log('Gallery Error: one element expected, multiple elements given.'); return false; } 84 | 85 | /* merge defaults */ 86 | this.options = $.extend(this.options, options); 87 | this.hooks = {}; 88 | 89 | this.gallery = $(el); 90 | this.canvas = this.gallery.find(this.options.cls.canvas); 91 | this.elements = this.gallery.find(this.options.cls.canvas_elements); 92 | 93 | // load ui/plugin elements 94 | this.loadUI(); 95 | this.loadPlugins(); 96 | 97 | // init gallery 98 | this.initGallery(); 99 | }, 100 | 101 | loadUI: function () { 102 | var ui = this.options.ui; 103 | 104 | if(ui.caption) this.uiCaption(); 105 | if(ui.controls) this.uiControls(); 106 | if(ui.thumbnails) this.uiThumbnails(); 107 | }, 108 | 109 | loadPlugins: function () { 110 | var plugins = this.options.plugins; 111 | 112 | if(plugins.external) this.pluginExternal(); 113 | if(plugins.keycontrol) this.pluginKeyControl(); 114 | if(plugins.lightbox) this.pluginLightbox(); 115 | }, 116 | 117 | uiCaption: function () { 118 | this.gallery.find(this.options.cls.caption).show(); 119 | }, 120 | 121 | uiControls: function () { 122 | var classy = this; 123 | var cls = this.options.cls; 124 | var play = this.gallery.find(cls.controls+' '+cls.controls_play); 125 | (this.options.autoplay) ? play.data('active', true) : play.data('active', false); 126 | var pause = this.gallery.find(cls.controls+' '+cls.controls_pause); 127 | (this.options.autoplay) ? pause.data('active', false) : play.data('active', true); 128 | var next = this.gallery.find(cls.controls+' '+cls.controls_next); 129 | var prev = this.gallery.find(cls.controls+' '+cls.controls_prev); 130 | 131 | // show element 132 | this.gallery.find(cls.controls).show(); 133 | 134 | // initial setup 135 | if(play.data('active')) play.addClass(cls.active); 136 | if(pause.data('active')) play.addClass(cls.active); 137 | 138 | // play button 139 | play.bind('click', function (e) { 140 | e.preventDefault(); 141 | classy.canvas.cycle('resume'); 142 | 143 | play.data('active', true).addClass(cls.active); 144 | pause.data('active', false).removeClass(cls.active); 145 | }); 146 | 147 | // pause button 148 | pause.bind('click', function (e) { 149 | e.preventDefault(); 150 | classy.canvas.cycle('pause'); 151 | 152 | pause.data('active', true).addClass(cls.active); 153 | play.data('active', false).removeClass(cls.active); 154 | }); 155 | 156 | // next button 157 | next.bind('click', function (e) { 158 | e.preventDefault(); 159 | classy.canvas.cycle('next'); 160 | }); 161 | 162 | // prev button 163 | prev.bind('click', function (e) { 164 | e.preventDefault(); 165 | classy.canvas.cycle('prev'); 166 | }); 167 | }, 168 | 169 | uiThumbnails: function () { 170 | var classy = this; 171 | var cls = this.options.cls; 172 | var thumbs = this.gallery.find(cls.thumb); 173 | thumbs.find('> ul').show(); 174 | var elements = thumbs.find(cls.thumb_els); 175 | var next = thumbs.find(cls.thumb_next); 176 | var prev = thumbs.find(cls.thumb_prev); 177 | var bound = elements.length; 178 | var index = null; 179 | 180 | // catch before event 181 | this.elements.bind('cycle.before', function (e) { 182 | index = classy.elements.index($(e.currentTarget)); 183 | 184 | // add / remove active class 185 | elements.removeClass(cls.active); 186 | $(elements[index]).addClass(cls.active); 187 | 188 | // check if first in loop and add active state 189 | (index == 0) ? prev.addClass(cls.active) : prev.removeClass(cls.active); 190 | // check if last in loop and add active state 191 | (index == (bound-1)) ? next.addClass(cls.active) : next.removeClass(cls.active); 192 | }); 193 | 194 | // add click event to thumbnails 195 | elements.bind('click', function (e) { 196 | e.preventDefault(); 197 | classy.canvas.cycle(elements.index($(e.currentTarget))); 198 | }); 199 | 200 | // next button 201 | next.bind('click', function () { 202 | classy.canvas.cycle('next'); 203 | return false; 204 | }); 205 | 206 | // back button 207 | prev.bind('click', function () { 208 | classy.canvas.cycle('prev'); 209 | return false; 210 | }); 211 | }, 212 | 213 | // navigate to specific gallery item via hashcode 214 | // http://localhost:8000/de/plugins/#3 (jump to slide 3) 215 | pluginExternal: function () { 216 | var classy = this; 217 | var hash = window.location.hash.split('#')[1]-1; 218 | // if(hash == 'NaN') hash = 0; 219 | hash = (!isNaN(hash)) ? hash : 0; 220 | // transfere value 221 | this.options.startingSlide = hash; 222 | 223 | // catch before event 224 | this.elements.bind('cycle.before', function (e) { 225 | index = classy.elements.index($(e.currentTarget)); 226 | window.location.hash = index+1; 227 | }); 228 | }, 229 | 230 | pluginKeyControl: function () { 231 | var classy = this; 232 | $(document).keypress(function (key) { 233 | if(key.keyCode == classy.options.keys.next) classy.canvas.cycle('next'); 234 | if(key.keyCode == classy.options.keys.prev) classy.canvas.cycle('prev'); 235 | }); 236 | }, 237 | 238 | pluginLightbox: function () { 239 | // attach lightbox to elements 240 | if($.fn.colorbox !== undefined) this.elements.find('a[rel^=lightbox]').colorbox(this.options.lightboxOptions); 241 | if($.fn.shadowbox !== undefined) this.elements.find('a[rel^=lightbox]').shadowbox(this.options.lightboxOptions); 242 | if($.fn.fancybox !== undefined) this.elements.find('a[rel^=lightbox]').fancybox(this.options.lightboxOptions); 243 | }, 244 | 245 | initGallery: function () { 246 | // start gallery 247 | this.canvas.parent().css('max-height', ''); /* fix showing all images */ 248 | this.canvas.cycle(this.options); 249 | } 250 | 251 | }); 252 | })(jQuery, Class); -------------------------------------------------------------------------------- /simplegallery/migrations/0002_add_groups.py: -------------------------------------------------------------------------------- 1 | # encoding: utf-8 2 | import datetime 3 | from south.db import db 4 | from south.v2 import SchemaMigration 5 | from django.db import models 6 | 7 | class Migration(SchemaMigration): 8 | 9 | def forwards(self, orm): 10 | 11 | # Changing field 'GalleryTranslation.language_code' 12 | db.alter_column('simplegallery_gallery_translation', 'language_code', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=15, blank=True)) 13 | 14 | # Adding M2M table for field groups on 'Gallery' 15 | db.create_table('simplegallery_gallery_groups', ( 16 | ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), 17 | ('gallery', models.ForeignKey(orm['simplegallery.gallery'], null=False)), 18 | ('group', models.ForeignKey(orm['auth.group'], null=False)) 19 | )) 20 | db.create_unique('simplegallery_gallery_groups', ['gallery_id', 'group_id']) 21 | 22 | # Changing field 'ImageTranslation.language_code' 23 | db.alter_column('simplegallery_image_translation', 'language_code', self.gf('django.db.models.fields.CharField')(db_index=True, max_length=15, blank=True)) 24 | 25 | 26 | def backwards(self, orm): 27 | 28 | # Changing field 'GalleryTranslation.language_code' 29 | db.alter_column('simplegallery_gallery_translation', 'language_code', self.gf('django.db.models.fields.CharField')(blank=True, max_length=5, db_index=True)) 30 | 31 | # Removing M2M table for field groups on 'Gallery' 32 | db.delete_table('simplegallery_gallery_groups') 33 | 34 | # Changing field 'ImageTranslation.language_code' 35 | db.alter_column('simplegallery_image_translation', 'language_code', self.gf('django.db.models.fields.CharField')(blank=True, max_length=5, db_index=True)) 36 | 37 | 38 | models = { 39 | 'auth.group': { 40 | 'Meta': {'object_name': 'Group'}, 41 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 42 | 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), 43 | 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}) 44 | }, 45 | 'auth.permission': { 46 | 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, 47 | 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 48 | 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), 49 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 50 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) 51 | }, 52 | 'auth.user': { 53 | 'Meta': {'object_name': 'User'}, 54 | 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 55 | 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), 56 | 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), 57 | 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'blank': 'True'}), 58 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 59 | 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), 60 | 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 61 | 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 62 | 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 63 | 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), 64 | 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 65 | 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'blank': 'True'}), 66 | 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) 67 | }, 68 | 'cms.cmsplugin': { 69 | 'Meta': {'object_name': 'CMSPlugin'}, 70 | 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 71 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 72 | 'language': ('django.db.models.fields.CharField', [], {'max_length': '5', 'db_index': 'True'}), 73 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 74 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 75 | 'page': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Page']"}), 76 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), 77 | 'placeholder': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), 78 | 'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), 79 | 'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), 80 | 'publisher_is_draft': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True', 'blank': 'True'}), 81 | 'publisher_public': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'publisher_draft'", 'unique': 'True', 'null': 'True', 'to': "orm['cms.CMSPlugin']"}), 82 | 'publisher_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '0', 'db_index': 'True'}), 83 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 84 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) 85 | }, 86 | 'cms.page': { 87 | 'Meta': {'object_name': 'Page'}, 88 | 'changed_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}), 89 | 'created_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}), 90 | 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 91 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 92 | 'in_navigation': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True', 'blank': 'True'}), 93 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 94 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 95 | 'login_required': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 96 | 'menu_login_required': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 97 | 'moderator_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '1', 'blank': 'True'}), 98 | 'navigation_extenders': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '80', 'null': 'True', 'blank': 'True'}), 99 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['cms.Page']"}), 100 | 'publication_date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), 101 | 'publication_end_date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), 102 | 'published': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 103 | 'publisher_is_draft': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True', 'blank': 'True'}), 104 | 'publisher_public': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'publisher_draft'", 'unique': 'True', 'null': 'True', 'to': "orm['cms.Page']"}), 105 | 'publisher_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '0', 'db_index': 'True'}), 106 | 'reverse_id': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '40', 'null': 'True', 'blank': 'True'}), 107 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 108 | 'site': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['sites.Site']"}), 109 | 'soft_root': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True', 'blank': 'True'}), 110 | 'template': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 111 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) 112 | }, 113 | 'contenttypes.contenttype': { 114 | 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, 115 | 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 116 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 117 | 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 118 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) 119 | }, 120 | 'filer.file': { 121 | 'Meta': {'object_name': 'File'}, 122 | '_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 123 | '_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 124 | '_file_type_plugin_name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), 125 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 126 | 'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), 127 | 'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 128 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 129 | 'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 130 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 131 | 'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 132 | 'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': "orm['auth.User']"}), 133 | 'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) 134 | }, 135 | 'filer.folder': { 136 | 'Meta': {'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, 137 | 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 138 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 139 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 140 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 141 | 'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 142 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), 143 | 'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': "orm['auth.User']"}), 144 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), 145 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 146 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 147 | 'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) 148 | }, 149 | 'filer.image': { 150 | 'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, 151 | '_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 152 | '_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 153 | 'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 154 | 'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), 155 | 'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 156 | 'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 157 | 'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), 158 | 'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 159 | 'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 160 | 'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) 161 | }, 162 | 'simplegallery.carouselfeature': { 163 | 'Meta': {'object_name': 'CarouselFeature', 'db_table': "'cmsplugin_carouselfeature'", '_ormbases': ['cms.CMSPlugin']}, 164 | 'aspect_ratio': ('django.db.models.fields.FloatField', [], {'default': '1'}), 165 | 'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), 166 | 'interval': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '3'}), 167 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}) 168 | }, 169 | 'simplegallery.carouselimage': { 170 | 'Meta': {'object_name': 'CarouselImage'}, 171 | 'carousel_feature': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['simplegallery.CarouselFeature']"}), 172 | 'date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), 173 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 174 | 'description_2': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 175 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 176 | 'image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']"}), 177 | 'ordering': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), 178 | 'page_link': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Page']", 'null': 'True', 'blank': 'True'}), 179 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), 180 | 'title_2': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), 181 | 'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) 182 | }, 183 | 'simplegallery.gallery': { 184 | 'Meta': {'object_name': 'Gallery'}, 185 | 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']"}), 186 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 187 | 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) 188 | }, 189 | 'simplegallery.gallerypublication': { 190 | 'Meta': {'object_name': 'GalleryPublication', 'db_table': "'cmsplugin_gallerypublication'", '_ormbases': ['cms.CMSPlugin']}, 191 | 'aspect_ratio': ('django.db.models.fields.FloatField', [], {'default': '1'}), 192 | 'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), 193 | 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['simplegallery.Gallery']"}), 194 | 'interval': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}), 195 | 'style': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) 196 | }, 197 | 'simplegallery.gallerytranslation': { 198 | 'Meta': {'unique_together': "(('language_code', 'master'),)", 'object_name': 'GalleryTranslation', 'db_table': "'simplegallery_gallery_translation'"}, 199 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 200 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 201 | 'language_code': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '15', 'blank': 'True'}), 202 | 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['simplegallery.Gallery']"}), 203 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}) 204 | }, 205 | 'simplegallery.image': { 206 | 'Meta': {'object_name': 'Image'}, 207 | 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['simplegallery.Gallery']"}), 208 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 209 | 'image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']"}), 210 | 'ordering': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 211 | 'page_link': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Page']", 'null': 'True', 'blank': 'True'}) 212 | }, 213 | 'simplegallery.imagetranslation': { 214 | 'Meta': {'unique_together': "(('language_code', 'master'),)", 'object_name': 'ImageTranslation', 'db_table': "'simplegallery_image_translation'"}, 215 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 216 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 217 | 'language_code': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '15', 'blank': 'True'}), 218 | 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['simplegallery.Image']"}), 219 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}) 220 | }, 221 | 'sites.site': { 222 | 'Meta': {'object_name': 'Site', 'db_table': "'django_site'"}, 223 | 'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 224 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 225 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) 226 | } 227 | } 228 | 229 | complete_apps = ['simplegallery'] 230 | -------------------------------------------------------------------------------- /simplegallery/migrations/0003_auto__add_field_gallerypublication_raw_aspect_ratio.py: -------------------------------------------------------------------------------- 1 | # encoding: utf-8 2 | import datetime 3 | from south.db import db 4 | from south.v2 import SchemaMigration 5 | from django.db import models 6 | 7 | class Migration(SchemaMigration): 8 | 9 | def forwards(self, orm): 10 | 11 | # Adding field 'GalleryPublication.raw_aspect_ratio' 12 | db.add_column('cmsplugin_gallerypublication', 'raw_aspect_ratio', self.gf('django.db.models.fields.CharField')(max_length=20, null=True, blank=True), keep_default=False) 13 | 14 | 15 | def backwards(self, orm): 16 | 17 | # Deleting field 'GalleryPublication.raw_aspect_ratio' 18 | db.delete_column('cmsplugin_gallerypublication', 'raw_aspect_ratio') 19 | 20 | 21 | models = { 22 | 'auth.group': { 23 | 'Meta': {'object_name': 'Group'}, 24 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 25 | 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), 26 | 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) 27 | }, 28 | 'auth.permission': { 29 | 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, 30 | 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 31 | 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), 32 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 33 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) 34 | }, 35 | 'auth.user': { 36 | 'Meta': {'object_name': 'User'}, 37 | 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 38 | 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), 39 | 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), 40 | 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), 41 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 42 | 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), 43 | 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 44 | 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 45 | 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 46 | 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), 47 | 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 48 | 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), 49 | 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) 50 | }, 51 | 'cms.cmsplugin': { 52 | 'Meta': {'object_name': 'CMSPlugin'}, 53 | 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 54 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 55 | 'language': ('django.db.models.fields.CharField', [], {'max_length': '5', 'db_index': 'True'}), 56 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 57 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 58 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), 59 | 'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), 60 | 'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), 61 | 'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), 62 | 'publisher_is_draft': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True', 'blank': 'True'}), 63 | 'publisher_public': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'publisher_draft'", 'unique': 'True', 'null': 'True', 'to': "orm['cms.CMSPlugin']"}), 64 | 'publisher_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '0', 'db_index': 'True'}), 65 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 66 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) 67 | }, 68 | 'cms.page': { 69 | 'Meta': {'object_name': 'Page'}, 70 | 'changed_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}), 71 | 'created_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}), 72 | 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 73 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 74 | 'in_navigation': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True', 'blank': 'True'}), 75 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 76 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 77 | 'login_required': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 78 | 'menu_login_required': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 79 | 'moderator_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '1', 'blank': 'True'}), 80 | 'navigation_extenders': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '80', 'null': 'True', 'blank': 'True'}), 81 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['cms.Page']"}), 82 | 'placeholders': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['cms.Placeholder']", 'symmetrical': 'False'}), 83 | 'publication_date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), 84 | 'publication_end_date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), 85 | 'published': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 86 | 'publisher_is_draft': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True', 'blank': 'True'}), 87 | 'publisher_public': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'publisher_draft'", 'unique': 'True', 'null': 'True', 'to': "orm['cms.Page']"}), 88 | 'publisher_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '0', 'db_index': 'True'}), 89 | 'reverse_id': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '40', 'null': 'True', 'blank': 'True'}), 90 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 91 | 'site': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['sites.Site']"}), 92 | 'soft_root': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True', 'blank': 'True'}), 93 | 'template': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 94 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) 95 | }, 96 | 'cms.placeholder': { 97 | 'Meta': {'object_name': 'Placeholder'}, 98 | 'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), 99 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 100 | 'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) 101 | }, 102 | 'contenttypes.contenttype': { 103 | 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, 104 | 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 105 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 106 | 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 107 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) 108 | }, 109 | 'filer.file': { 110 | 'Meta': {'object_name': 'File'}, 111 | '_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 112 | '_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 113 | '_file_type_plugin_name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), 114 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 115 | 'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), 116 | 'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 117 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 118 | 'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 119 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 120 | 'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 121 | 'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': "orm['auth.User']"}), 122 | 'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) 123 | }, 124 | 'filer.folder': { 125 | 'Meta': {'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, 126 | 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 127 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 128 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 129 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 130 | 'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 131 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), 132 | 'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': "orm['auth.User']"}), 133 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), 134 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 135 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 136 | 'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) 137 | }, 138 | 'filer.image': { 139 | 'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, 140 | '_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 141 | '_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 142 | 'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 143 | 'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), 144 | 'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 145 | 'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 146 | 'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), 147 | 'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 148 | 'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 149 | 'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) 150 | }, 151 | 'simplegallery.carouselfeature': { 152 | 'Meta': {'object_name': 'CarouselFeature', 'db_table': "'cmsplugin_carouselfeature'", '_ormbases': ['cms.CMSPlugin']}, 153 | 'aspect_ratio': ('django.db.models.fields.FloatField', [], {'default': '1'}), 154 | 'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), 155 | 'interval': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '3'}), 156 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}) 157 | }, 158 | 'simplegallery.carouselimage': { 159 | 'Meta': {'object_name': 'CarouselImage'}, 160 | 'carousel_feature': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['simplegallery.CarouselFeature']"}), 161 | 'date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), 162 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 163 | 'description_2': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 164 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 165 | 'image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']"}), 166 | 'ordering': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), 167 | 'page_link': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Page']", 'null': 'True', 'blank': 'True'}), 168 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), 169 | 'title_2': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), 170 | 'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) 171 | }, 172 | 'simplegallery.gallery': { 173 | 'Meta': {'object_name': 'Gallery'}, 174 | 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False'}), 175 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 176 | 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) 177 | }, 178 | 'simplegallery.gallerypublication': { 179 | 'Meta': {'object_name': 'GalleryPublication', 'db_table': "'cmsplugin_gallerypublication'", '_ormbases': ['cms.CMSPlugin']}, 180 | 'aspect_ratio': ('django.db.models.fields.FloatField', [], {'default': '1'}), 181 | 'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), 182 | 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['simplegallery.Gallery']"}), 183 | 'interval': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}), 184 | 'raw_aspect_ratio': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), 185 | 'style': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) 186 | }, 187 | 'simplegallery.gallerytranslation': { 188 | 'Meta': {'unique_together': "(('language_code', 'master'),)", 'object_name': 'GalleryTranslation', 'db_table': "'simplegallery_gallery_translation'"}, 189 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 190 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 191 | 'language_code': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '15', 'blank': 'True'}), 192 | 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['simplegallery.Gallery']"}), 193 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}) 194 | }, 195 | 'simplegallery.image': { 196 | 'Meta': {'object_name': 'Image'}, 197 | 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['simplegallery.Gallery']"}), 198 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 199 | 'image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']"}), 200 | 'ordering': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 201 | 'page_link': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Page']", 'null': 'True', 'blank': 'True'}) 202 | }, 203 | 'simplegallery.imagetranslation': { 204 | 'Meta': {'unique_together': "(('language_code', 'master'),)", 'object_name': 'ImageTranslation', 'db_table': "'simplegallery_image_translation'"}, 205 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 206 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 207 | 'language_code': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '15', 'blank': 'True'}), 208 | 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['simplegallery.Image']"}), 209 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}) 210 | }, 211 | 'sites.site': { 212 | 'Meta': {'object_name': 'Site', 'db_table': "'django_site'"}, 213 | 'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 214 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 215 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) 216 | } 217 | } 218 | 219 | complete_apps = ['simplegallery'] 220 | -------------------------------------------------------------------------------- /simplegallery/migrations/0005_auto__del_field_gallerytranslation_drop_up_label.py: -------------------------------------------------------------------------------- 1 | # encoding: utf-8 2 | import datetime 3 | from south.db import db 4 | from south.v2 import SchemaMigration 5 | from django.db import models 6 | 7 | class Migration(SchemaMigration): 8 | 9 | def forwards(self, orm): 10 | 11 | # Deleting field 'GalleryTranslation.drop_up_label' 12 | db.delete_column('simplegallery_gallery_translation', 'drop_up_label') 13 | 14 | 15 | def backwards(self, orm): 16 | 17 | # Adding field 'GalleryTranslation.drop_up_label' 18 | db.add_column('simplegallery_gallery_translation', 'drop_up_label', self.gf('django.db.models.fields.CharField')(default='', max_length=100, blank=True), keep_default=False) 19 | 20 | 21 | models = { 22 | 'auth.group': { 23 | 'Meta': {'object_name': 'Group'}, 24 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 25 | 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), 26 | 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) 27 | }, 28 | 'auth.permission': { 29 | 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, 30 | 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 31 | 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), 32 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 33 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) 34 | }, 35 | 'auth.user': { 36 | 'Meta': {'object_name': 'User'}, 37 | 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 38 | 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), 39 | 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), 40 | 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), 41 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 42 | 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), 43 | 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 44 | 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 45 | 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 46 | 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), 47 | 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 48 | 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), 49 | 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) 50 | }, 51 | 'cms.cmsplugin': { 52 | 'Meta': {'object_name': 'CMSPlugin'}, 53 | 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 54 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 55 | 'language': ('django.db.models.fields.CharField', [], {'max_length': '5', 'db_index': 'True'}), 56 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 57 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 58 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), 59 | 'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), 60 | 'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), 61 | 'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), 62 | 'publisher_is_draft': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True', 'blank': 'True'}), 63 | 'publisher_public': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'publisher_draft'", 'unique': 'True', 'null': 'True', 'to': "orm['cms.CMSPlugin']"}), 64 | 'publisher_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '0', 'db_index': 'True'}), 65 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 66 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) 67 | }, 68 | 'cms.page': { 69 | 'Meta': {'object_name': 'Page'}, 70 | 'changed_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}), 71 | 'created_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}), 72 | 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 73 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 74 | 'in_navigation': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True', 'blank': 'True'}), 75 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 76 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 77 | 'login_required': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 78 | 'menu_login_required': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 79 | 'moderator_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '1', 'blank': 'True'}), 80 | 'navigation_extenders': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '80', 'null': 'True', 'blank': 'True'}), 81 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['cms.Page']"}), 82 | 'placeholders': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['cms.Placeholder']", 'symmetrical': 'False'}), 83 | 'publication_date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), 84 | 'publication_end_date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), 85 | 'published': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 86 | 'publisher_is_draft': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True', 'blank': 'True'}), 87 | 'publisher_public': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'publisher_draft'", 'unique': 'True', 'null': 'True', 'to': "orm['cms.Page']"}), 88 | 'publisher_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '0', 'db_index': 'True'}), 89 | 'reverse_id': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '40', 'null': 'True', 'blank': 'True'}), 90 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 91 | 'site': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['sites.Site']"}), 92 | 'soft_root': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True', 'blank': 'True'}), 93 | 'template': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 94 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) 95 | }, 96 | 'cms.placeholder': { 97 | 'Meta': {'object_name': 'Placeholder'}, 98 | 'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), 99 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 100 | 'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) 101 | }, 102 | 'contenttypes.contenttype': { 103 | 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, 104 | 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 105 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 106 | 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 107 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) 108 | }, 109 | 'filer.file': { 110 | 'Meta': {'object_name': 'File'}, 111 | '_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 112 | '_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 113 | '_file_type_plugin_name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), 114 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 115 | 'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), 116 | 'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 117 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 118 | 'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 119 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 120 | 'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 121 | 'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': "orm['auth.User']"}), 122 | 'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) 123 | }, 124 | 'filer.folder': { 125 | 'Meta': {'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, 126 | 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 127 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 128 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 129 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 130 | 'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 131 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), 132 | 'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': "orm['auth.User']"}), 133 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), 134 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 135 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 136 | 'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) 137 | }, 138 | 'filer.image': { 139 | 'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, 140 | '_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 141 | '_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 142 | 'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 143 | 'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), 144 | 'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 145 | 'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 146 | 'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), 147 | 'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 148 | 'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 149 | 'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) 150 | }, 151 | 'simplegallery.carouselfeature': { 152 | 'Meta': {'object_name': 'CarouselFeature', 'db_table': "'cmsplugin_carouselfeature'", '_ormbases': ['cms.CMSPlugin']}, 153 | 'aspect_ratio': ('django.db.models.fields.FloatField', [], {'default': '1'}), 154 | 'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), 155 | 'interval': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '3'}), 156 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}) 157 | }, 158 | 'simplegallery.carouselimage': { 159 | 'Meta': {'object_name': 'CarouselImage'}, 160 | 'carousel_feature': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['simplegallery.CarouselFeature']"}), 161 | 'date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), 162 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 163 | 'description_2': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 164 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 165 | 'image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']"}), 166 | 'ordering': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), 167 | 'page_link': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Page']", 'null': 'True', 'blank': 'True'}), 168 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), 169 | 'title_2': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), 170 | 'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) 171 | }, 172 | 'simplegallery.gallery': { 173 | 'Meta': {'object_name': 'Gallery'}, 174 | 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False'}), 175 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 176 | 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) 177 | }, 178 | 'simplegallery.gallerypublication': { 179 | 'Meta': {'object_name': 'GalleryPublication', 'db_table': "'cmsplugin_gallerypublication'", '_ormbases': ['cms.CMSPlugin']}, 180 | 'aspect_ratio': ('django.db.models.fields.FloatField', [], {'default': '1'}), 181 | 'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), 182 | 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['simplegallery.Gallery']"}), 183 | 'interval': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}), 184 | 'raw_aspect_ratio': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), 185 | 'style': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) 186 | }, 187 | 'simplegallery.gallerytranslation': { 188 | 'Meta': {'unique_together': "(('language_code', 'master'),)", 'object_name': 'GalleryTranslation', 'db_table': "'simplegallery_gallery_translation'"}, 189 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 190 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 191 | 'language_code': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '15', 'blank': 'True'}), 192 | 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['simplegallery.Gallery']"}), 193 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}) 194 | }, 195 | 'simplegallery.image': { 196 | 'Meta': {'object_name': 'Image'}, 197 | 'drop_up_links': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['sites.Site']", 'symmetrical': 'False', 'blank': 'True'}), 198 | 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['simplegallery.Gallery']"}), 199 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 200 | 'image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']"}), 201 | 'ordering': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 202 | 'page_link': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Page']", 'null': 'True', 'blank': 'True'}) 203 | }, 204 | 'simplegallery.imagetranslation': { 205 | 'Meta': {'unique_together': "(('language_code', 'master'),)", 'object_name': 'ImageTranslation', 'db_table': "'simplegallery_image_translation'"}, 206 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 207 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 208 | 'language_code': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '15', 'blank': 'True'}), 209 | 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['simplegallery.Image']"}), 210 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}) 211 | }, 212 | 'sites.site': { 213 | 'Meta': {'object_name': 'Site', 'db_table': "'django_site'"}, 214 | 'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 215 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 216 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) 217 | } 218 | } 219 | 220 | complete_apps = ['simplegallery'] 221 | -------------------------------------------------------------------------------- /simplegallery/migrations/0006_fix_null_on_textfields_1of2.py: -------------------------------------------------------------------------------- 1 | # encoding: utf-8 2 | import datetime 3 | from south.db import db 4 | from south.v2 import DataMigration 5 | from django.db import models 6 | 7 | class Migration(DataMigration): 8 | 9 | def forwards(self, orm): 10 | ''' 11 | Empty CharFields and TextFields should never be 'NULL', 12 | they should be an empty string (''). 13 | ''' 14 | for t in orm['simplegallery.gallerytranslation'].objects.all(): 15 | if not t.description: 16 | t.description = '' 17 | if not t.title: 18 | t.title = '' 19 | t.save() 20 | for t in orm['simplegallery.imagetranslation'].objects.all(): 21 | if not t.description: 22 | t.description = '' 23 | if not t.title: 24 | t.title = '' 25 | t.save() 26 | 27 | 28 | def backwards(self, orm): 29 | "Write your backwards methods here." 30 | 31 | 32 | models = { 33 | 'auth.group': { 34 | 'Meta': {'object_name': 'Group'}, 35 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 36 | 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), 37 | 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) 38 | }, 39 | 'auth.permission': { 40 | 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, 41 | 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 42 | 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), 43 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 44 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) 45 | }, 46 | 'auth.user': { 47 | 'Meta': {'object_name': 'User'}, 48 | 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 49 | 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), 50 | 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), 51 | 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), 52 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 53 | 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), 54 | 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 55 | 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 56 | 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 57 | 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), 58 | 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 59 | 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), 60 | 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) 61 | }, 62 | 'cms.cmsplugin': { 63 | 'Meta': {'object_name': 'CMSPlugin'}, 64 | 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 65 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 66 | 'language': ('django.db.models.fields.CharField', [], {'max_length': '5', 'db_index': 'True'}), 67 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 68 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 69 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), 70 | 'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), 71 | 'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), 72 | 'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), 73 | 'publisher_is_draft': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True', 'blank': 'True'}), 74 | 'publisher_public': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'publisher_draft'", 'unique': 'True', 'null': 'True', 'to': "orm['cms.CMSPlugin']"}), 75 | 'publisher_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '0', 'db_index': 'True'}), 76 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 77 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) 78 | }, 79 | 'cms.page': { 80 | 'Meta': {'object_name': 'Page'}, 81 | 'changed_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}), 82 | 'created_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}), 83 | 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 84 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 85 | 'in_navigation': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True', 'blank': 'True'}), 86 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 87 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 88 | 'limit_visibility_in_menu': ('django.db.models.fields.SmallIntegerField', [], {'default': 'None', 'null': 'True', 'db_index': 'True', 'blank': 'True'}), 89 | 'login_required': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 90 | 'moderator_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '1', 'blank': 'True'}), 91 | 'navigation_extenders': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '80', 'null': 'True', 'blank': 'True'}), 92 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['cms.Page']"}), 93 | 'placeholders': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['cms.Placeholder']", 'symmetrical': 'False'}), 94 | 'publication_date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), 95 | 'publication_end_date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), 96 | 'published': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 97 | 'publisher_is_draft': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True', 'blank': 'True'}), 98 | 'publisher_public': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'publisher_draft'", 'unique': 'True', 'null': 'True', 'to': "orm['cms.Page']"}), 99 | 'publisher_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '0', 'db_index': 'True'}), 100 | 'reverse_id': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '40', 'null': 'True', 'blank': 'True'}), 101 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 102 | 'site': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['sites.Site']"}), 103 | 'soft_root': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True', 'blank': 'True'}), 104 | 'template': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 105 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) 106 | }, 107 | 'cms.placeholder': { 108 | 'Meta': {'object_name': 'Placeholder'}, 109 | 'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), 110 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 111 | 'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) 112 | }, 113 | 'contenttypes.contenttype': { 114 | 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, 115 | 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 116 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 117 | 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 118 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) 119 | }, 120 | 'filer.file': { 121 | 'Meta': {'object_name': 'File'}, 122 | '_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 123 | '_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 124 | '_file_type_plugin_name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), 125 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 126 | 'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), 127 | 'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 128 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 129 | 'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 130 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 131 | 'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 132 | 'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': "orm['auth.User']"}), 133 | 'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) 134 | }, 135 | 'filer.folder': { 136 | 'Meta': {'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, 137 | 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 138 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 139 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 140 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 141 | 'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 142 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), 143 | 'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': "orm['auth.User']"}), 144 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), 145 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 146 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 147 | 'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) 148 | }, 149 | 'filer.image': { 150 | 'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, 151 | '_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 152 | '_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 153 | 'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 154 | 'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), 155 | 'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 156 | 'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 157 | 'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), 158 | 'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 159 | 'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), 160 | 'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) 161 | }, 162 | 'simplegallery.carouselfeature': { 163 | 'Meta': {'object_name': 'CarouselFeature', 'db_table': "'cmsplugin_carouselfeature'", '_ormbases': ['cms.CMSPlugin']}, 164 | 'aspect_ratio': ('django.db.models.fields.FloatField', [], {'default': '1'}), 165 | 'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), 166 | 'interval': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '3'}), 167 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}) 168 | }, 169 | 'simplegallery.carouselimage': { 170 | 'Meta': {'object_name': 'CarouselImage'}, 171 | 'carousel_feature': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['simplegallery.CarouselFeature']"}), 172 | 'date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), 173 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 174 | 'description_2': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 175 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 176 | 'image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']"}), 177 | 'ordering': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), 178 | 'page_link': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Page']", 'null': 'True', 'blank': 'True'}), 179 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), 180 | 'title_2': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), 181 | 'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) 182 | }, 183 | 'simplegallery.gallery': { 184 | 'Meta': {'object_name': 'Gallery'}, 185 | 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False'}), 186 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 187 | 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) 188 | }, 189 | 'simplegallery.gallerypublication': { 190 | 'Meta': {'object_name': 'GalleryPublication', 'db_table': "'cmsplugin_gallerypublication'", '_ormbases': ['cms.CMSPlugin']}, 191 | 'aspect_ratio': ('django.db.models.fields.FloatField', [], {'default': '1'}), 192 | 'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), 193 | 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['simplegallery.Gallery']"}), 194 | 'interval': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}), 195 | 'raw_aspect_ratio': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), 196 | 'style': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) 197 | }, 198 | 'simplegallery.gallerytranslation': { 199 | 'Meta': {'unique_together': "(('language_code', 'master'),)", 'object_name': 'GalleryTranslation', 'db_table': "'simplegallery_gallery_translation'"}, 200 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 201 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 202 | 'language_code': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '15', 'blank': 'True'}), 203 | 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['simplegallery.Gallery']"}), 204 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}) 205 | }, 206 | 'simplegallery.image': { 207 | 'Meta': {'object_name': 'Image'}, 208 | 'drop_up_links': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['sites.Site']", 'symmetrical': 'False', 'blank': 'True'}), 209 | 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['simplegallery.Gallery']"}), 210 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 211 | 'image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']"}), 212 | 'ordering': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 213 | 'page_link': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Page']", 'null': 'True', 'blank': 'True'}) 214 | }, 215 | 'simplegallery.imagetranslation': { 216 | 'Meta': {'unique_together': "(('language_code', 'master'),)", 'object_name': 'ImageTranslation', 'db_table': "'simplegallery_image_translation'"}, 217 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 218 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 219 | 'language_code': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '15', 'blank': 'True'}), 220 | 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['simplegallery.Image']"}), 221 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}) 222 | }, 223 | 'sites.site': { 224 | 'Meta': {'object_name': 'Site', 'db_table': "'django_site'"}, 225 | 'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 226 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 227 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) 228 | } 229 | } 230 | 231 | complete_apps = ['simplegallery'] 232 | -------------------------------------------------------------------------------- /simplegallery/migrations/0008_auto__add_field_image_free_link__add_field_carouselimage_free_link.py: -------------------------------------------------------------------------------- 1 | # encoding: utf-8 2 | import datetime 3 | from south.db import db 4 | from south.v2 import SchemaMigration 5 | from django.db import models 6 | 7 | class Migration(SchemaMigration): 8 | 9 | def forwards(self, orm): 10 | 11 | # Adding field 'Image.free_link' 12 | db.add_column('simplegallery_image', 'free_link', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True), keep_default=False) 13 | 14 | # Adding field 'CarouselImage.free_link' 15 | db.add_column('simplegallery_carouselimage', 'free_link', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True), keep_default=False) 16 | 17 | 18 | def backwards(self, orm): 19 | 20 | # Deleting field 'Image.free_link' 21 | db.delete_column('simplegallery_image', 'free_link') 22 | 23 | # Deleting field 'CarouselImage.free_link' 24 | db.delete_column('simplegallery_carouselimage', 'free_link') 25 | 26 | 27 | models = { 28 | 'auth.group': { 29 | 'Meta': {'object_name': 'Group'}, 30 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 31 | 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), 32 | 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) 33 | }, 34 | 'auth.permission': { 35 | 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, 36 | 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 37 | 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), 38 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 39 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) 40 | }, 41 | 'auth.user': { 42 | 'Meta': {'object_name': 'User'}, 43 | 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 44 | 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), 45 | 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), 46 | 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), 47 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 48 | 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), 49 | 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 50 | 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 51 | 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 52 | 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), 53 | 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 54 | 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), 55 | 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) 56 | }, 57 | 'cms.cmsplugin': { 58 | 'Meta': {'object_name': 'CMSPlugin'}, 59 | 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 60 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 61 | 'language': ('django.db.models.fields.CharField', [], {'max_length': '5', 'db_index': 'True'}), 62 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 63 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 64 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), 65 | 'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), 66 | 'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), 67 | 'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), 68 | 'publisher_is_draft': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}), 69 | 'publisher_public': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'publisher_draft'", 'unique': 'True', 'null': 'True', 'to': "orm['cms.CMSPlugin']"}), 70 | 'publisher_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '0', 'db_index': 'True'}), 71 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 72 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) 73 | }, 74 | 'cms.page': { 75 | 'Meta': {'ordering': "('site', 'tree_id', 'lft')", 'object_name': 'Page'}, 76 | 'changed_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}), 77 | 'created_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}), 78 | 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 79 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 80 | 'in_navigation': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}), 81 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 82 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 83 | 'limit_visibility_in_menu': ('django.db.models.fields.SmallIntegerField', [], {'default': 'None', 'null': 'True', 'db_index': 'True', 'blank': 'True'}), 84 | 'login_required': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 85 | 'moderator_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '1', 'blank': 'True'}), 86 | 'navigation_extenders': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '80', 'null': 'True', 'blank': 'True'}), 87 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['cms.Page']"}), 88 | 'placeholders': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['cms.Placeholder']", 'symmetrical': 'False'}), 89 | 'publication_date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), 90 | 'publication_end_date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), 91 | 'published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 92 | 'publisher_is_draft': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}), 93 | 'publisher_public': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'publisher_draft'", 'unique': 'True', 'null': 'True', 'to': "orm['cms.Page']"}), 94 | 'publisher_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '0', 'db_index': 'True'}), 95 | 'reverse_id': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '40', 'null': 'True', 'blank': 'True'}), 96 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 97 | 'site': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['sites.Site']"}), 98 | 'soft_root': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}), 99 | 'template': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 100 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) 101 | }, 102 | 'cms.placeholder': { 103 | 'Meta': {'object_name': 'Placeholder'}, 104 | 'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), 105 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 106 | 'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) 107 | }, 108 | 'contenttypes.contenttype': { 109 | 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, 110 | 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 111 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 112 | 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 113 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) 114 | }, 115 | 'filer.file': { 116 | 'Meta': {'object_name': 'File'}, 117 | '_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 118 | '_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 119 | '_file_type_plugin_name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), 120 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 121 | 'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), 122 | 'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 123 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 124 | 'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 125 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 126 | 'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 127 | 'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': "orm['auth.User']"}), 128 | 'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) 129 | }, 130 | 'filer.folder': { 131 | 'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, 132 | 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 133 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 134 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 135 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 136 | 'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 137 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), 138 | 'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': "orm['auth.User']"}), 139 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), 140 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 141 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 142 | 'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) 143 | }, 144 | 'filer.image': { 145 | 'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, 146 | '_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 147 | '_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 148 | 'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 149 | 'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), 150 | 'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 151 | 'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 152 | 'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), 153 | 'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 154 | 'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 155 | 'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) 156 | }, 157 | 'simplegallery.carouselfeature': { 158 | 'Meta': {'object_name': 'CarouselFeature', 'db_table': "'cmsplugin_carouselfeature'", '_ormbases': ['cms.CMSPlugin']}, 159 | 'aspect_ratio': ('django.db.models.fields.FloatField', [], {'default': '1'}), 160 | 'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), 161 | 'interval': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '3'}), 162 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}) 163 | }, 164 | 'simplegallery.carouselimage': { 165 | 'Meta': {'ordering': "('ordering',)", 'object_name': 'CarouselImage'}, 166 | 'carousel_feature': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['simplegallery.CarouselFeature']"}), 167 | 'date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), 168 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 169 | 'description_2': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 170 | 'free_link': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 171 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 172 | 'image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']"}), 173 | 'ordering': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), 174 | 'page_link': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Page']", 'null': 'True', 'blank': 'True'}), 175 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), 176 | 'title_2': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), 177 | 'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) 178 | }, 179 | 'simplegallery.gallery': { 180 | 'Meta': {'object_name': 'Gallery'}, 181 | 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False'}), 182 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 183 | 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) 184 | }, 185 | 'simplegallery.gallerypublication': { 186 | 'Meta': {'object_name': 'GalleryPublication', 'db_table': "'cmsplugin_gallerypublication'", '_ormbases': ['cms.CMSPlugin']}, 187 | 'aspect_ratio': ('django.db.models.fields.FloatField', [], {'default': '1'}), 188 | 'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), 189 | 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['simplegallery.Gallery']"}), 190 | 'interval': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}), 191 | 'raw_aspect_ratio': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), 192 | 'style': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) 193 | }, 194 | 'simplegallery.gallerytranslation': { 195 | 'Meta': {'ordering': "('language_code',)", 'unique_together': "(('language_code', 'master'),)", 'object_name': 'GalleryTranslation', 'db_table': "'simplegallery_gallery_translation'"}, 196 | 'description': ('tinymce.models.HTMLField', [], {'default': "''", 'blank': 'True'}), 197 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 198 | 'language_code': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '15', 'blank': 'True'}), 199 | 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['simplegallery.Gallery']"}), 200 | 'title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}) 201 | }, 202 | 'simplegallery.image': { 203 | 'Meta': {'ordering': "('ordering',)", 'object_name': 'Image'}, 204 | 'drop_up_links': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['sites.Site']", 'symmetrical': 'False', 'blank': 'True'}), 205 | 'free_link': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 206 | 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['simplegallery.Gallery']"}), 207 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 208 | 'image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']"}), 209 | 'ordering': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 210 | 'page_link': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Page']", 'null': 'True', 'blank': 'True'}) 211 | }, 212 | 'simplegallery.imagetranslation': { 213 | 'Meta': {'ordering': "('language_code',)", 'unique_together': "(('language_code', 'master'),)", 'object_name': 'ImageTranslation', 'db_table': "'simplegallery_image_translation'"}, 214 | 'description': ('tinymce.models.HTMLField', [], {'default': "''", 'blank': 'True'}), 215 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 216 | 'language_code': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '15', 'blank': 'True'}), 217 | 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['simplegallery.Image']"}), 218 | 'title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}) 219 | }, 220 | 'sites.site': { 221 | 'Meta': {'ordering': "('domain',)", 'object_name': 'Site', 'db_table': "'django_site'"}, 222 | 'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 223 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 224 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) 225 | } 226 | } 227 | 228 | complete_apps = ['simplegallery'] 229 | -------------------------------------------------------------------------------- /simplegallery/migrations/0009_auto__del_field_carouselimage_title_2__del_field_carouselimage_descrip.py: -------------------------------------------------------------------------------- 1 | # encoding: utf-8 2 | import datetime 3 | from south.db import db 4 | from south.v2 import SchemaMigration 5 | from django.db import models 6 | 7 | class Migration(SchemaMigration): 8 | 9 | def forwards(self, orm): 10 | 11 | # Deleting field 'CarouselImage.title_2' 12 | db.delete_column('simplegallery_carouselimage', 'title_2') 13 | 14 | # Deleting field 'CarouselImage.description_2' 15 | db.delete_column('simplegallery_carouselimage', 'description_2') 16 | 17 | 18 | def backwards(self, orm): 19 | 20 | # Adding field 'CarouselImage.title_2' 21 | db.add_column('simplegallery_carouselimage', 'title_2', self.gf('django.db.models.fields.CharField')(max_length=150, null=True, blank=True), keep_default=False) 22 | 23 | # Adding field 'CarouselImage.description_2' 24 | db.add_column('simplegallery_carouselimage', 'description_2', self.gf('django.db.models.fields.TextField')(null=True, blank=True), keep_default=False) 25 | 26 | 27 | models = { 28 | 'auth.group': { 29 | 'Meta': {'object_name': 'Group'}, 30 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 31 | 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), 32 | 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) 33 | }, 34 | 'auth.permission': { 35 | 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, 36 | 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 37 | 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), 38 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 39 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) 40 | }, 41 | 'auth.user': { 42 | 'Meta': {'object_name': 'User'}, 43 | 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 44 | 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), 45 | 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), 46 | 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), 47 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 48 | 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), 49 | 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 50 | 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 51 | 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 52 | 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), 53 | 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 54 | 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), 55 | 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) 56 | }, 57 | 'cms.cmsplugin': { 58 | 'Meta': {'object_name': 'CMSPlugin'}, 59 | 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 60 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 61 | 'language': ('django.db.models.fields.CharField', [], {'max_length': '5', 'db_index': 'True'}), 62 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 63 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 64 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), 65 | 'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), 66 | 'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), 67 | 'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), 68 | 'publisher_is_draft': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}), 69 | 'publisher_public': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'publisher_draft'", 'unique': 'True', 'null': 'True', 'to': "orm['cms.CMSPlugin']"}), 70 | 'publisher_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '0', 'db_index': 'True'}), 71 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 72 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) 73 | }, 74 | 'cms.page': { 75 | 'Meta': {'ordering': "('site', 'tree_id', 'lft')", 'object_name': 'Page'}, 76 | 'changed_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}), 77 | 'created_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}), 78 | 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 79 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 80 | 'in_navigation': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}), 81 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 82 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 83 | 'limit_visibility_in_menu': ('django.db.models.fields.SmallIntegerField', [], {'default': 'None', 'null': 'True', 'db_index': 'True', 'blank': 'True'}), 84 | 'login_required': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 85 | 'moderator_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '1', 'blank': 'True'}), 86 | 'navigation_extenders': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '80', 'null': 'True', 'blank': 'True'}), 87 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['cms.Page']"}), 88 | 'placeholders': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['cms.Placeholder']", 'symmetrical': 'False'}), 89 | 'publication_date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), 90 | 'publication_end_date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), 91 | 'published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 92 | 'publisher_is_draft': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}), 93 | 'publisher_public': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'publisher_draft'", 'unique': 'True', 'null': 'True', 'to': "orm['cms.Page']"}), 94 | 'publisher_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '0', 'db_index': 'True'}), 95 | 'reverse_id': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '40', 'null': 'True', 'blank': 'True'}), 96 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 97 | 'site': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['sites.Site']"}), 98 | 'soft_root': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}), 99 | 'template': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 100 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) 101 | }, 102 | 'cms.placeholder': { 103 | 'Meta': {'object_name': 'Placeholder'}, 104 | 'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), 105 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 106 | 'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) 107 | }, 108 | 'contenttypes.contenttype': { 109 | 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, 110 | 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 111 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 112 | 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 113 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) 114 | }, 115 | 'filer.file': { 116 | 'Meta': {'object_name': 'File'}, 117 | '_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 118 | '_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 119 | '_file_type_plugin_name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), 120 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 121 | 'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), 122 | 'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 123 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 124 | 'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 125 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 126 | 'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 127 | 'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': "orm['auth.User']"}), 128 | 'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) 129 | }, 130 | 'filer.folder': { 131 | 'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, 132 | 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 133 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 134 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 135 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 136 | 'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 137 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), 138 | 'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': "orm['auth.User']"}), 139 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), 140 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 141 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 142 | 'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) 143 | }, 144 | 'filer.image': { 145 | 'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, 146 | '_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 147 | '_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 148 | 'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 149 | 'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), 150 | 'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 151 | 'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 152 | 'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), 153 | 'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 154 | 'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 155 | 'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) 156 | }, 157 | 'simplegallery.carouselfeature': { 158 | 'Meta': {'object_name': 'CarouselFeature', 'db_table': "'cmsplugin_carouselfeature'", '_ormbases': ['cms.CMSPlugin']}, 159 | 'aspect_ratio': ('django.db.models.fields.FloatField', [], {'default': '1'}), 160 | 'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), 161 | 'interval': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '3'}), 162 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}) 163 | }, 164 | 'simplegallery.carouselimage': { 165 | 'Meta': {'ordering': "('ordering',)", 'object_name': 'CarouselImage'}, 166 | 'carousel_feature': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['simplegallery.CarouselFeature']"}), 167 | 'date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), 168 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 169 | 'free_link': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 170 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 171 | 'image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']"}), 172 | 'ordering': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), 173 | 'page_link': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Page']", 'null': 'True', 'blank': 'True'}), 174 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), 175 | 'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) 176 | }, 177 | 'simplegallery.gallery': { 178 | 'Meta': {'object_name': 'Gallery'}, 179 | 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False'}), 180 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 181 | 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) 182 | }, 183 | 'simplegallery.gallerypublication': { 184 | 'Meta': {'object_name': 'GalleryPublication', 'db_table': "'cmsplugin_gallerypublication'", '_ormbases': ['cms.CMSPlugin']}, 185 | 'aspect_ratio': ('django.db.models.fields.FloatField', [], {'default': '1'}), 186 | 'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), 187 | 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['simplegallery.Gallery']"}), 188 | 'interval': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}), 189 | 'raw_aspect_ratio': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), 190 | 'style': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) 191 | }, 192 | 'simplegallery.gallerytranslation': { 193 | 'Meta': {'ordering': "('language_code',)", 'unique_together': "(('language_code', 'master'),)", 'object_name': 'GalleryTranslation', 'db_table': "'simplegallery_gallery_translation'"}, 194 | 'description': ('tinymce.models.HTMLField', [], {'default': "''", 'blank': 'True'}), 195 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 196 | 'language_code': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '15', 'blank': 'True'}), 197 | 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['simplegallery.Gallery']"}), 198 | 'title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}) 199 | }, 200 | 'simplegallery.image': { 201 | 'Meta': {'ordering': "('ordering',)", 'object_name': 'Image'}, 202 | 'drop_up_links': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['sites.Site']", 'symmetrical': 'False', 'blank': 'True'}), 203 | 'free_link': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 204 | 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['simplegallery.Gallery']"}), 205 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 206 | 'image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']"}), 207 | 'ordering': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 208 | 'page_link': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Page']", 'null': 'True', 'blank': 'True'}) 209 | }, 210 | 'simplegallery.imagetranslation': { 211 | 'Meta': {'ordering': "('language_code',)", 'unique_together': "(('language_code', 'master'),)", 'object_name': 'ImageTranslation', 'db_table': "'simplegallery_image_translation'"}, 212 | 'description': ('tinymce.models.HTMLField', [], {'default': "''", 'blank': 'True'}), 213 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 214 | 'language_code': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '15', 'blank': 'True'}), 215 | 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['simplegallery.Image']"}), 216 | 'title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}) 217 | }, 218 | 'sites.site': { 219 | 'Meta': {'ordering': "('domain',)", 'object_name': 'Site', 'db_table': "'django_site'"}, 220 | 'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 221 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 222 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) 223 | } 224 | } 225 | 226 | complete_apps = ['simplegallery'] 227 | -------------------------------------------------------------------------------- /simplegallery/migrations/0010_auto__chg_field_image_free_link__chg_field_carouselimage_free_link.py: -------------------------------------------------------------------------------- 1 | # encoding: utf-8 2 | import datetime 3 | from south.db import db 4 | from south.v2 import SchemaMigration 5 | from django.db import models 6 | 7 | class Migration(SchemaMigration): 8 | 9 | def forwards(self, orm): 10 | 11 | # Changing field 'Image.free_link' 12 | db.alter_column('simplegallery_image', 'free_link', self.gf('django.db.models.fields.CharField')(max_length=2048, null=True)) 13 | 14 | # Changing field 'CarouselImage.free_link' 15 | db.alter_column('simplegallery_carouselimage', 'free_link', self.gf('django.db.models.fields.CharField')(max_length=2048, null=True)) 16 | 17 | 18 | def backwards(self, orm): 19 | 20 | # Changing field 'Image.free_link' 21 | db.alter_column('simplegallery_image', 'free_link', self.gf('django.db.models.fields.CharField')(max_length=255, null=True)) 22 | 23 | # Changing field 'CarouselImage.free_link' 24 | db.alter_column('simplegallery_carouselimage', 'free_link', self.gf('django.db.models.fields.CharField')(max_length=255, null=True)) 25 | 26 | 27 | models = { 28 | 'auth.group': { 29 | 'Meta': {'object_name': 'Group'}, 30 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 31 | 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), 32 | 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) 33 | }, 34 | 'auth.permission': { 35 | 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, 36 | 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 37 | 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), 38 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 39 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) 40 | }, 41 | 'auth.user': { 42 | 'Meta': {'object_name': 'User'}, 43 | 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 44 | 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), 45 | 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), 46 | 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), 47 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 48 | 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), 49 | 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 50 | 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 51 | 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 52 | 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), 53 | 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 54 | 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), 55 | 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) 56 | }, 57 | 'cms.cmsplugin': { 58 | 'Meta': {'object_name': 'CMSPlugin'}, 59 | 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 60 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 61 | 'language': ('django.db.models.fields.CharField', [], {'max_length': '5', 'db_index': 'True'}), 62 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 63 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 64 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), 65 | 'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), 66 | 'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), 67 | 'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), 68 | 'publisher_is_draft': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}), 69 | 'publisher_public': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'publisher_draft'", 'unique': 'True', 'null': 'True', 'to': "orm['cms.CMSPlugin']"}), 70 | 'publisher_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '0', 'db_index': 'True'}), 71 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 72 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) 73 | }, 74 | 'cms.page': { 75 | 'Meta': {'ordering': "('site', 'tree_id', 'lft')", 'object_name': 'Page'}, 76 | 'changed_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}), 77 | 'created_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}), 78 | 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 79 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 80 | 'in_navigation': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}), 81 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 82 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 83 | 'limit_visibility_in_menu': ('django.db.models.fields.SmallIntegerField', [], {'default': 'None', 'null': 'True', 'db_index': 'True', 'blank': 'True'}), 84 | 'login_required': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 85 | 'moderator_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '1', 'blank': 'True'}), 86 | 'navigation_extenders': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '80', 'null': 'True', 'blank': 'True'}), 87 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['cms.Page']"}), 88 | 'placeholders': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['cms.Placeholder']", 'symmetrical': 'False'}), 89 | 'publication_date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), 90 | 'publication_end_date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), 91 | 'published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 92 | 'publisher_is_draft': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}), 93 | 'publisher_public': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'publisher_draft'", 'unique': 'True', 'null': 'True', 'to': "orm['cms.Page']"}), 94 | 'publisher_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '0', 'db_index': 'True'}), 95 | 'reverse_id': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '40', 'null': 'True', 'blank': 'True'}), 96 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 97 | 'site': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['sites.Site']"}), 98 | 'soft_root': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}), 99 | 'template': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 100 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) 101 | }, 102 | 'cms.placeholder': { 103 | 'Meta': {'object_name': 'Placeholder'}, 104 | 'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), 105 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 106 | 'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) 107 | }, 108 | 'contenttypes.contenttype': { 109 | 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, 110 | 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 111 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 112 | 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 113 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) 114 | }, 115 | 'filer.file': { 116 | 'Meta': {'object_name': 'File'}, 117 | '_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 118 | '_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 119 | '_file_type_plugin_name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), 120 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 121 | 'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), 122 | 'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 123 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 124 | 'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 125 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 126 | 'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 127 | 'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': "orm['auth.User']"}), 128 | 'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) 129 | }, 130 | 'filer.folder': { 131 | 'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, 132 | 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 133 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 134 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 135 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 136 | 'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 137 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), 138 | 'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': "orm['auth.User']"}), 139 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), 140 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 141 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 142 | 'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) 143 | }, 144 | 'filer.image': { 145 | 'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, 146 | '_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 147 | '_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 148 | 'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 149 | 'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), 150 | 'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 151 | 'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 152 | 'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), 153 | 'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 154 | 'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 155 | 'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) 156 | }, 157 | 'simplegallery.carouselfeature': { 158 | 'Meta': {'object_name': 'CarouselFeature', 'db_table': "'cmsplugin_carouselfeature'", '_ormbases': ['cms.CMSPlugin']}, 159 | 'aspect_ratio': ('django.db.models.fields.FloatField', [], {'default': '1'}), 160 | 'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), 161 | 'interval': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '3'}), 162 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}) 163 | }, 164 | 'simplegallery.carouselimage': { 165 | 'Meta': {'ordering': "('ordering',)", 'object_name': 'CarouselImage'}, 166 | 'carousel_feature': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['simplegallery.CarouselFeature']"}), 167 | 'date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), 168 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 169 | 'free_link': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}), 170 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 171 | 'image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']"}), 172 | 'ordering': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), 173 | 'page_link': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Page']", 'null': 'True', 'blank': 'True'}), 174 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), 175 | 'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) 176 | }, 177 | 'simplegallery.gallery': { 178 | 'Meta': {'object_name': 'Gallery'}, 179 | 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False'}), 180 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 181 | 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) 182 | }, 183 | 'simplegallery.gallerypublication': { 184 | 'Meta': {'object_name': 'GalleryPublication', 'db_table': "'cmsplugin_gallerypublication'", '_ormbases': ['cms.CMSPlugin']}, 185 | 'aspect_ratio': ('django.db.models.fields.FloatField', [], {'default': '1'}), 186 | 'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), 187 | 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['simplegallery.Gallery']"}), 188 | 'interval': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}), 189 | 'raw_aspect_ratio': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), 190 | 'style': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) 191 | }, 192 | 'simplegallery.gallerytranslation': { 193 | 'Meta': {'ordering': "('language_code',)", 'unique_together': "(('language_code', 'master'),)", 'object_name': 'GalleryTranslation', 'db_table': "'simplegallery_gallery_translation'"}, 194 | 'description': ('tinymce.models.HTMLField', [], {'default': "''", 'blank': 'True'}), 195 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 196 | 'language_code': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '15', 'blank': 'True'}), 197 | 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['simplegallery.Gallery']"}), 198 | 'title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}) 199 | }, 200 | 'simplegallery.image': { 201 | 'Meta': {'ordering': "('ordering',)", 'object_name': 'Image'}, 202 | 'drop_up_links': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['sites.Site']", 'symmetrical': 'False', 'blank': 'True'}), 203 | 'free_link': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}), 204 | 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['simplegallery.Gallery']"}), 205 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 206 | 'image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']"}), 207 | 'ordering': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 208 | 'page_link': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Page']", 'null': 'True', 'blank': 'True'}) 209 | }, 210 | 'simplegallery.imagetranslation': { 211 | 'Meta': {'ordering': "('language_code',)", 'unique_together': "(('language_code', 'master'),)", 'object_name': 'ImageTranslation', 'db_table': "'simplegallery_image_translation'"}, 212 | 'description': ('tinymce.models.HTMLField', [], {'default': "''", 'blank': 'True'}), 213 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 214 | 'language_code': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '15', 'blank': 'True'}), 215 | 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['simplegallery.Image']"}), 216 | 'title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}) 217 | }, 218 | 'sites.site': { 219 | 'Meta': {'ordering': "('domain',)", 'object_name': 'Site', 'db_table': "'django_site'"}, 220 | 'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 221 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 222 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) 223 | } 224 | } 225 | 226 | complete_apps = ['simplegallery'] 227 | -------------------------------------------------------------------------------- /simplegallery/migrations/0011_auto__add_field_gallery_folder.py: -------------------------------------------------------------------------------- 1 | # encoding: utf-8 2 | import datetime 3 | from south.db import db 4 | from south.v2 import SchemaMigration 5 | from django.db import models 6 | 7 | class Migration(SchemaMigration): 8 | 9 | def forwards(self, orm): 10 | 11 | # Adding field 'Gallery.folder' 12 | db.add_column('simplegallery_gallery', 'folder', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['filer.Folder'], null=True, blank=True), keep_default=False) 13 | 14 | 15 | def backwards(self, orm): 16 | 17 | # Deleting field 'Gallery.folder' 18 | db.delete_column('simplegallery_gallery', 'folder_id') 19 | 20 | 21 | models = { 22 | 'auth.group': { 23 | 'Meta': {'object_name': 'Group'}, 24 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 25 | 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), 26 | 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) 27 | }, 28 | 'auth.permission': { 29 | 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, 30 | 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 31 | 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), 32 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 33 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) 34 | }, 35 | 'auth.user': { 36 | 'Meta': {'object_name': 'User'}, 37 | 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 38 | 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), 39 | 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), 40 | 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), 41 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 42 | 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), 43 | 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 44 | 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 45 | 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 46 | 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), 47 | 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), 48 | 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), 49 | 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) 50 | }, 51 | 'cms.cmsplugin': { 52 | 'Meta': {'object_name': 'CMSPlugin'}, 53 | 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 54 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 55 | 'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}), 56 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 57 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 58 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}), 59 | 'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}), 60 | 'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}), 61 | 'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), 62 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 63 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) 64 | }, 65 | 'cms.page': { 66 | 'Meta': {'ordering': "('site', 'tree_id', 'lft')", 'object_name': 'Page'}, 67 | 'changed_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}), 68 | 'created_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}), 69 | 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), 70 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 71 | 'in_navigation': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}), 72 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 73 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 74 | 'limit_visibility_in_menu': ('django.db.models.fields.SmallIntegerField', [], {'default': 'None', 'null': 'True', 'db_index': 'True', 'blank': 'True'}), 75 | 'login_required': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 76 | 'moderator_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '1', 'blank': 'True'}), 77 | 'navigation_extenders': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '80', 'null': 'True', 'blank': 'True'}), 78 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['cms.Page']"}), 79 | 'placeholders': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['cms.Placeholder']", 'symmetrical': 'False'}), 80 | 'publication_date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), 81 | 'publication_end_date': ('django.db.models.fields.DateTimeField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), 82 | 'published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 83 | 'publisher_is_draft': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'db_index': 'True'}), 84 | 'publisher_public': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'publisher_draft'", 'unique': 'True', 'null': 'True', 'to': "orm['cms.Page']"}), 85 | 'publisher_state': ('django.db.models.fields.SmallIntegerField', [], {'default': '0', 'db_index': 'True'}), 86 | 'reverse_id': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '40', 'null': 'True', 'blank': 'True'}), 87 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 88 | 'site': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['sites.Site']"}), 89 | 'soft_root': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}), 90 | 'template': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 91 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}) 92 | }, 93 | 'cms.placeholder': { 94 | 'Meta': {'object_name': 'Placeholder'}, 95 | 'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}), 96 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 97 | 'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) 98 | }, 99 | 'contenttypes.contenttype': { 100 | 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, 101 | 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 102 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 103 | 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 104 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) 105 | }, 106 | 'filer.file': { 107 | 'Meta': {'object_name': 'File'}, 108 | '_file_size': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 109 | '_file_type_plugin_name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), 110 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 111 | 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 112 | 'folder': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'all_files'", 'null': 'True', 'to': "orm['filer.Folder']"}), 113 | 'has_all_mandatory_data': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 114 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 115 | 'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 116 | 'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 117 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 118 | 'original_filename': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 119 | 'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_files'", 'null': 'True', 'to': "orm['auth.User']"}), 120 | 'sha1': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '40', 'blank': 'True'}), 121 | 'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) 122 | }, 123 | 'filer.folder': { 124 | 'Meta': {'ordering': "('name',)", 'unique_together': "(('parent', 'name'),)", 'object_name': 'Folder'}, 125 | 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), 126 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 127 | 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 128 | 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 129 | 'modified_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), 130 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), 131 | 'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'filer_owned_folders'", 'null': 'True', 'to': "orm['auth.User']"}), 132 | 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['filer.Folder']"}), 133 | 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 134 | 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}), 135 | 'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}) 136 | }, 137 | 'filer.image': { 138 | 'Meta': {'object_name': 'Image', '_ormbases': ['filer.File']}, 139 | '_height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 140 | '_width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 141 | 'author': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 142 | 'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), 143 | 'default_alt_text': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 144 | 'default_caption': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), 145 | 'file_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['filer.File']", 'unique': 'True', 'primary_key': 'True'}), 146 | 'must_always_publish_author_credit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 147 | 'must_always_publish_copyright': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), 148 | 'subject_location': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '64', 'null': 'True', 'blank': 'True'}) 149 | }, 150 | 'simplegallery.carouselfeature': { 151 | 'Meta': {'object_name': 'CarouselFeature', 'db_table': "'cmsplugin_carouselfeature'", '_ormbases': ['cms.CMSPlugin']}, 152 | 'aspect_ratio': ('django.db.models.fields.FloatField', [], {'default': '1'}), 153 | 'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), 154 | 'interval': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '3'}), 155 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}) 156 | }, 157 | 'simplegallery.carouselimage': { 158 | 'Meta': {'ordering': "('ordering',)", 'object_name': 'CarouselImage'}, 159 | 'carousel_feature': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['simplegallery.CarouselFeature']"}), 160 | 'date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), 161 | 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), 162 | 'free_link': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}), 163 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 164 | 'image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']"}), 165 | 'ordering': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}), 166 | 'page_link': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Page']", 'null': 'True', 'blank': 'True'}), 167 | 'title': ('django.db.models.fields.CharField', [], {'max_length': '150', 'null': 'True', 'blank': 'True'}), 168 | 'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}) 169 | }, 170 | 'simplegallery.gallery': { 171 | 'Meta': {'object_name': 'Gallery'}, 172 | 'folder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Folder']", 'null': 'True', 'blank': 'True'}), 173 | 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), 174 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 175 | 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}) 176 | }, 177 | 'simplegallery.gallerypublication': { 178 | 'Meta': {'object_name': 'GalleryPublication', 'db_table': "'cmsplugin_gallerypublication'", '_ormbases': ['cms.CMSPlugin']}, 179 | 'aspect_ratio': ('django.db.models.fields.FloatField', [], {'default': '1'}), 180 | 'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), 181 | 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['simplegallery.Gallery']"}), 182 | 'interval': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}), 183 | 'raw_aspect_ratio': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), 184 | 'style': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) 185 | }, 186 | 'simplegallery.gallerytranslation': { 187 | 'Meta': {'ordering': "('language_code',)", 'unique_together': "(('language_code', 'master'),)", 'object_name': 'GalleryTranslation', 'db_table': "'simplegallery_gallery_translation'"}, 188 | 'description': ('tinymce.models.HTMLField', [], {'default': "''", 'blank': 'True'}), 189 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 190 | 'language_code': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '15', 'blank': 'True'}), 191 | 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['simplegallery.Gallery']"}), 192 | 'title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}) 193 | }, 194 | 'simplegallery.image': { 195 | 'Meta': {'ordering': "('ordering',)", 'object_name': 'Image'}, 196 | 'drop_up_links': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['sites.Site']", 'symmetrical': 'False', 'blank': 'True'}), 197 | 'free_link': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}), 198 | 'gallery': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'images'", 'to': "orm['simplegallery.Gallery']"}), 199 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 200 | 'image': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['filer.Image']"}), 201 | 'ordering': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), 202 | 'page_link': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Page']", 'null': 'True', 'blank': 'True'}) 203 | }, 204 | 'simplegallery.imagetranslation': { 205 | 'Meta': {'ordering': "('language_code',)", 'unique_together': "(('language_code', 'master'),)", 'object_name': 'ImageTranslation', 'db_table': "'simplegallery_image_translation'"}, 206 | 'description': ('tinymce.models.HTMLField', [], {'default': "''", 'blank': 'True'}), 207 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 208 | 'language_code': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '15', 'blank': 'True'}), 209 | 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'to': "orm['simplegallery.Image']"}), 210 | 'title': ('django.db.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}) 211 | }, 212 | 'sites.site': { 213 | 'Meta': {'ordering': "('domain',)", 'object_name': 'Site', 'db_table': "'django_site'"}, 214 | 'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}), 215 | 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 216 | 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) 217 | } 218 | } 219 | 220 | complete_apps = ['simplegallery'] 221 | -------------------------------------------------------------------------------- /simplegallery/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/divio/django-simplegallery/00d15b12a27d65bdbecc0c196dc70c15fbce5c7d/simplegallery/migrations/__init__.py -------------------------------------------------------------------------------- /simplegallery/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | from django.utils.translation import ugettext_lazy as _ 3 | from django.conf import settings 4 | 5 | from django.contrib.auth.models import Group 6 | from cms.models import Page 7 | from cms.models import CMSPlugin 8 | from cms.models.fields import PageField 9 | from django.utils.text import truncate_words 10 | from multilingual.translation import TranslationModel 11 | 12 | from filer.fields.image import FilerImageField 13 | from filer.models.foldermodels import Folder 14 | from filer.models import File as FilerFileModel 15 | from filer.models import Image as FilerImageModel 16 | 17 | from simplegallery.fields import AspectRatioField 18 | 19 | from tinymce.models import HTMLField 20 | from simplegallery import south_introspections # make sure south knows about the HTMLField 21 | 22 | CMSPLUGIN_SIMPLE_GALLERY_STYLE_CHOICES = getattr( settings, 'CMSPLUGIN_SIMPLE_GALLERY_STYLE_CHOICES',() ) 23 | 24 | 25 | class Gallery(models.Model): 26 | name = models.CharField(max_length=255, unique=True, 27 | help_text=_("A unique identifier for this gallery, this will only be used in the admin panel.")) 28 | groups = models.ManyToManyField(Group, blank=True) 29 | folder = models.ForeignKey(Folder, blank=True, null=True, help_text="Caution! Saving this gallery will remove any images that are not in the selected folder.") 30 | 31 | def sync_folder(self): 32 | ''' 33 | Check if the Gallery is linked to a Filer.Folder, in this case 34 | sync it, by deleting images not in the folder from the gallery 35 | and adding new images from the folder, to the existing gallery 36 | ''' 37 | if self.folder: 38 | # Delete images, which doesnt have a parent folder equal 39 | # to the gallery.folder 40 | self.images.exclude(image__in=FilerImageModel.objects.filter(folder=self.folder)).delete() 41 | 42 | # Loop over all images that are in the folder, except the 43 | # ones we already have in the gallery and add them 44 | for f in self.folder.all_files.exclude(pk__in=[im.image.pk for im in self.images.all()]): 45 | if f.image: 46 | self.images.create(image=f.image) 47 | 48 | class Translation(TranslationModel): 49 | title = models.CharField(_('title'), max_length=255, blank=True, default='') 50 | description = HTMLField(blank=True, default='') 51 | 52 | class Meta: 53 | verbose_name = _('gallery') 54 | verbose_name_plural = _('galleries') 55 | 56 | def __unicode__(self): 57 | return self.name 58 | 59 | def has_drop_up(self): 60 | if not hasattr(self, '_has_drop_up'): 61 | self._has_drop_up = bool(self.images.filter(drop_up_links__isnull=False).count()) 62 | return self._has_drop_up 63 | 64 | class Image(models.Model): 65 | gallery = models.ForeignKey(Gallery, related_name="images") 66 | image = FilerImageField() 67 | page_link = PageField(verbose_name=_('page link'), null=True, blank=True) 68 | free_link = models.CharField(_("link"), max_length=2048, blank=True, null=True, 69 | help_text=_("an absolute url")) 70 | ordering = models.IntegerField(null=True, blank=True) 71 | drop_up_links = models.ManyToManyField('sites.Site', blank=True) 72 | 73 | class Translation(TranslationModel): 74 | title = models.CharField(_('title'), max_length=255, blank=True, default='') 75 | description = HTMLField(_('description'), blank=True, default='') 76 | 77 | class Meta: 78 | ordering = ('ordering',) 79 | verbose_name = _('image') 80 | verbose_name_plural = _('images') 81 | 82 | def __unicode__(self): 83 | if isinstance(self.title, basestring): 84 | return self.title 85 | return unicode(self.pk) 86 | 87 | @property 88 | def file(self): 89 | return self.image.file 90 | 91 | @property 92 | def link(self): 93 | if self.free_link: 94 | return self.free_link 95 | elif self.page_link and self.page_link: 96 | return self.page_link.get_absolute_url() 97 | else: 98 | return '' 99 | 100 | aspect_ratio_choices = getattr(settings, "IMAGE_ASPECT_RATIO_CHOICES", ( 101 | (1, '1:1'), 102 | (1.33333, '4:3'), 103 | (1.77777, '16:9'), 104 | )) 105 | 106 | 107 | class GalleryPublication(CMSPlugin): 108 | gallery = models.ForeignKey(Gallery) 109 | interval = models.PositiveSmallIntegerField(_('interval'), default=0) 110 | style = models.CharField(_("gallery style"), max_length=255, blank=True, choices=CMSPLUGIN_SIMPLE_GALLERY_STYLE_CHOICES) 111 | aspect_ratio = models.FloatField(_('aspect ratio'), choices=aspect_ratio_choices, default=1) 112 | raw_aspect_ratio = AspectRatioField(null=True, blank=True, max_length=20) 113 | 114 | def get_aspect_ratio(self): 115 | if self.raw_aspect_ratio: 116 | x,y = self.raw_aspect_ratio 117 | return float(x) / float(y) 118 | return self.aspect_ratio 119 | 120 | class CarouselImage(models.Model): 121 | carousel_feature = models.ForeignKey('CarouselFeature', related_name="images") 122 | image = FilerImageField() 123 | date = models.DateField(_('date'), null=True, blank=True) 124 | title = models.CharField(_('title'), max_length=150, null=True, blank=True) 125 | description = models.TextField(_('description'), null=True, blank=True) 126 | #title_2 = models.CharField(_('title 2'), max_length=150, null=True, blank=True) 127 | #description_2 = models.TextField(_('description 2'), null=True, blank=True) 128 | page_link = PageField(verbose_name=_('page link'), null=True, blank=True) 129 | free_link = models.CharField(_("link"), max_length=2048, blank=True, null=True, 130 | help_text=_("an absolute url")) 131 | url = models.URLField(_('URL'), blank=True, \ 132 | help_text=_('If the %(page_link)s field is not used, you can enter an external URL here.') % {'page_link': _('page link')}) 133 | ordering = models.PositiveSmallIntegerField(_('ordering'), null=True, blank=True) 134 | 135 | class Meta: 136 | ordering = ('ordering',) 137 | verbose_name = _('carousel image') 138 | verbose_name_plural = _('carousel images') 139 | 140 | def __unicode__(self): 141 | return self.title 142 | 143 | @property 144 | def file(self): 145 | return self.image.file 146 | 147 | def get_url(self): 148 | if self.page_link: 149 | return self.page_link.get_absolute_url() 150 | elif self.url: 151 | return self.url 152 | @property 153 | def link(self): 154 | if self.free_link: 155 | return self.free_link 156 | elif self.page_link and self.page_link: 157 | return self.page_link.get_absolute_url() 158 | else: 159 | return '' 160 | 161 | class CarouselFeature(CMSPlugin): 162 | title = models.CharField(_('title'), max_length=50, blank=True) 163 | interval = models.PositiveSmallIntegerField(_('interval'), default=3) 164 | aspect_ratio = models.FloatField(_('aspect ratio'), choices=aspect_ratio_choices, default=1) 165 | 166 | def __unicode__(self): 167 | return truncate_words(self.title, 3)[:20] + "..." 168 | 169 | def get_aspect_ratio(self): 170 | return self.aspect_ratio 171 | 172 | 173 | from django.db.models.signals import post_save 174 | def sync_folder_signal(sender, instance, created=False, **kwargs): 175 | print "Please sync me", instance, sender 176 | if sender in (FilerFileModel, FilerImageModel) and instance.folder: 177 | [g.sync_folder() for g in instance.folder.gallery_set.all()] 178 | elif sender in (FilerFileModel, FilerImageModel) and not instance.folder: 179 | print "sync (remove)", Gallery.objects.filter(images__image__in=[instance]) 180 | [g.sync_folder() for g in Gallery.objects.filter(images__image__in=[instance])] 181 | post_save.connect(sync_folder_signal, sender=FilerFileModel) -------------------------------------------------------------------------------- /simplegallery/south_introspections.py: -------------------------------------------------------------------------------- 1 | from south.modelsinspector import add_introspection_rules 2 | from tinymce.models import HTMLField 3 | from django.conf import settings 4 | from django.db.models.fields import NOT_PROVIDED 5 | 6 | 7 | rules = [ 8 | ( 9 | (HTMLField, ), 10 | [], 11 | {"null": ["null", {"default": False}], 12 | "blank": ["blank", {"default": False, "ignore_if":"primary_key"}], 13 | "primary_key": ["primary_key", {"default": False}], 14 | "max_length": ["max_length", {"default": None}], 15 | "unique": ["_unique", {"default": False}], 16 | "db_index": ["db_index", {"default": False}], 17 | "default": ["default", {"default": NOT_PROVIDED}], 18 | "db_column": ["db_column", {"default": None}], 19 | "db_tablespace": ["db_tablespace", {"default": settings.DEFAULT_INDEX_TABLESPACE}], 20 | }, 21 | ), 22 | ] 23 | 24 | add_introspection_rules(rules, ["^tinymce\.models\.HTMLField$"]) -------------------------------------------------------------------------------- /simplegallery/templates/simplegallery/gallery_lite.html: -------------------------------------------------------------------------------- 1 | {% extends "simplegallery/gallery_plugin.html" %} 2 | {% load i18n sekizai_tags %} 3 | 4 | {% block gallery_css %}plugin_gallery-lite{% endblock %} 5 | 6 | {% block galery_options %} 7 | {% addtoblock "js" %} 8 | 31 | {% endaddtoblock %} 32 | {% endblock %} -------------------------------------------------------------------------------- /simplegallery/templates/simplegallery/gallery_plugin.html: -------------------------------------------------------------------------------- 1 | {% load i18n thumbnail sekizai_tags %} 2 | {% addtoblock "js" %}{% endaddtoblock %} 3 | {% addtoblock "js" %}{% endaddtoblock "js" %} 4 | {% addtoblock "js" %}{% endaddtoblock "js" %} 5 | {% addtoblock "js" %}{% endaddtoblock "js" %} 6 | {% addtoblock "css" %}{% endaddtoblock "css" %} 7 | {% block galery_options %} 8 | {% addtoblock "js" %} 9 | 32 | {% endaddtoblock %} 33 | {% endblock %} 34 | 35 | 36 | 88 | -------------------------------------------------------------------------------- /simplegallery/templates/simplegallery/plugin_form.html: -------------------------------------------------------------------------------- 1 | {% extends "admin/cms/page/plugin_change_form.html" %} 2 | 3 | {% block top %}{% endblock %} --------------------------------------------------------------------------------