Example #1
0
def imagestore_processor(request):
    template = getattr(settings, 'IMAGESTORE_TEMPLATE', False)
    ret = {
        'IMAGESTORE_SHOW_USER':
        getattr(settings, 'IMAGESTORE_SHOW_USER', True),
        'IMAGESTORE_SHOW_TAGS':
        getattr(settings, 'IMAGESTORE_SHOW_TAGS',
                not swapper.is_swapped('imagestore', 'Image')),
        'IMAGESTORE_LOAD_CSS':
        getattr(settings, 'IMAGESTORE_LOAD_CSS', True)
    }
    try:
        ret['imagestore_index_url'] = reverse('imagestore:index')
    except NoReverseMatch:  # Bastard django-cms from hell!!!!111
        pass
    if template:
        ret['IMAGESTORE_TEMPLATE'] = template
    image_applabel, image_classname = Image._meta.app_label, Image.__name__.lower(
    )
    album_applabel, album_classname = Album._meta.app_label, Album.__name__.lower(
    )
    ret['imagestore_perms'] = {
        'add_image':
        request.user.has_perm('%s.add_%s' % (image_applabel, image_classname)),
        'add_album':
        request.user.has_perm('%s.add_%s' % (album_applabel, album_classname)),
    }
    return ret
Example #2
0
def load_model_patched(app_label, model, require_ready=True):
    """
    TODO: remove if https://github.com/wq/django-swappable-models/pull/23 gets merged
    """
    swapped = is_swapped(app_label, model)
    if swapped:
        app_label, model = split(swapped)
    return apps.get_model(app_label, model, require_ready=require_ready)
Example #3
0
def imagestore_processor(request):
    template = getattr(settings, 'IMAGESTORE_TEMPLATE', False)
    ret = {
        'IMAGESTORE_SHOW_USER': getattr(settings, 'IMAGESTORE_SHOW_USER', True),
        'IMAGESTORE_SHOW_TAGS': getattr(settings, 'IMAGESTORE_SHOW_TAGS',
                                        not swapper.is_swapped('imagestore', 'Image')),
        'IMAGESTORE_LOAD_CSS': getattr(settings, 'IMAGESTORE_LOAD_CSS', True)
    }
    try:
        ret['imagestore_index_url'] = reverse('imagestore:index')
    except NoReverseMatch:  # Bastard django-cms from hell!!!!111
        pass
    if template:
        ret['IMAGESTORE_TEMPLATE'] = template
    image_applabel, image_classname = Image._meta.app_label, Image.__name__.lower()
    album_applabel, album_classname = Album._meta.app_label, Album.__name__.lower()
    ret['imagestore_perms'] = {
        'add_image': request.user.has_perm('%s.add_%s' % (image_applabel, image_classname)),
        'add_album': request.user.has_perm('%s.add_%s' % (album_applabel, album_classname)),
    }
    return ret
Example #4
0
    fieldsets = ((None, {
        'fields': ['name', 'brief', 'user', 'is_public', 'order']
    }), )
    list_display = ('name', 'admin_thumbnail', 'user', 'created', 'updated',
                    'is_public', 'order')
    list_editable = ('order', )
    inlines = [InlineImageAdmin]


class ImageAdmin(admin.ModelAdmin):
    fieldsets = ((None, {
        'fields':
        ['user', 'title', 'image', 'description', 'order', 'tags', 'album']
    }), )
    list_display = ('admin_thumbnail', 'user', 'order', 'album', 'title')
    raw_id_fields = ('user', )
    list_filter = ('album', )


class AlbumUploadAdmin(admin.ModelAdmin):
    def has_change_permission(self, request, obj=None):
        return False


if not swapper.is_swapped('imagestore', 'Image'):
    admin.site.register(Image, ImageAdmin)

if not swapper.is_swapped('imagestore', 'Album'):
    admin.site.register(Album, AlbumAdmin)
    admin.site.register(AlbumUpload, AlbumUploadAdmin)
Example #5
0
    list_display = ['name_std', 'city']
    search_fields = ['name', 'name_std']


class AltNameAdmin(admin.ModelAdmin):
    ordering = ['name']
    list_display = [
        'name', 'language_code', 'is_preferred', 'is_short', 'is_historic'
    ]
    list_filter = ['is_preferred', 'is_short', 'is_historic', 'language_code']
    search_fields = ['name']


class PostalCodeAdmin(CitiesAdmin):
    ordering = ['code']
    list_display = ['code', 'subregion_name', 'region_name', 'country']
    search_fields = ['code', 'country__name', 'region_name', 'subregion_name']


if not swapper.is_swapped('cities', 'Continent'):
    admin.site.register(Continent, ContinentAdmin)
if not swapper.is_swapped('cities', 'Country'):
    admin.site.register(Country, CountryAdmin)
admin.site.register(Region, RegionAdmin)
admin.site.register(Subregion, SubregionAdmin)
if not swapper.is_swapped('cities', 'City'):
    admin.site.register(City, CityAdmin)
admin.site.register(District, DistrictAdmin)
admin.site.register(AlternativeName, AltNameAdmin)
admin.site.register(PostalCode, PostalCodeAdmin)
Example #6
0
    search_fields = ("name",)
    # TODO: добавить действие публиковать, отменить публикацию
    fieldsets = ((None, {"fields": ["name", "brief", "user", "is_public", "order"]}),)
    list_display = ("name", "admin_thumbnail", "user", "created", "updated", "is_public", "order")
    list_editable = ("order",)
    list_filter = ("is_public",)
    inlines = [InlineImageAdmin]


class ImageAdmin(admin.ModelAdmin):
    search_fields = ("title", "album")
    fieldsets = (
        (None, {"fields": ["user", "title", "image", "description", "order", "tags", "album", "views", "links"]}),
    )
    list_display = ("admin_thumbnail", "user", "order", "album", "title")
    raw_id_fields = ("user",)
    list_filter = ("album",)


class AlbumUploadAdmin(admin.ModelAdmin):
    def has_change_permission(self, request, obj=None):
        return False


if not swapper.is_swapped("imagestore", "Image"):
    admin.site.register(Image, ImageAdmin)

if not swapper.is_swapped("imagestore", "Album"):
    admin.site.register(Album, AlbumAdmin)
    admin.site.register(AlbumUpload, AlbumUploadAdmin)
Example #7
0
class ParameterAdmin(patterns.IdentifiedModelAdmin):
    list_display = ('name', 'units')
    list_filter = ('units', 'is_numeric')


class ReportAdmin(admin.ModelAdmin):
    inlines = [ResultInline]


class EventAdmin(admin.ModelAdmin):
    inlines = [ReportInline]


# Register models with admin, but only if they haven't been swapped
default_admin = {
    'Site': patterns.IdentifiedRelatedModelAdmin,
    'Event': EventAdmin,
    'Report': ReportAdmin,
    'ReportStatus': admin.ModelAdmin,
    'Parameter': ParameterAdmin,
}
for model in default_admin:
    if swapper.is_swapped('vera', model):
        continue
    admin.site.register(swapper.load_model('vera', model),
                        default_admin[model])

# Auto-register relevant patterns' type models
admin.site.register(Authority, patterns.AuthorityAdmin)
admin.site.register(RelationshipType)
 def test_is_token_model_swapped(self):
     swapped_token_model = swapper.is_swapped('multitoken', 'Token')
     self.assertEqual(swapped_token_model, settings.MULTITOKEN_TOKEN_MODEL)
Example #9
0
            media=self.media,
            app_label=opts.app_label,
            opts=opts,
        )
        context.update(extra_context or {})

        return TemplateResponse(
            request, self.send_template or [
                'admin/%s/%s/send_object.html' %
                (opts.app_label, opts.object_name.lower()),
                'admin/%s/send_object.html' % opts.app_label,
                'admin/send_object.html',
            ], context)


if not swapper.is_swapped('campaign', 'Campaign'):
    admin.site.register(Campaign, CampaignAdmin)


class BlacklistEntryAdmin(admin.ModelAdmin):
    list_display = ('email', 'added')

    # def get_urls(self):
    #     from django.conf.urls import url

    #     def wrap(view):
    #         def wrapper(*args, **kwargs):
    #             return self.admin_site.admin_view(view)(*args, **kwargs)
    #         wrapper.model_admin = self
    #         return update_wrapper(wrapper, view)
Example #10
0
        )
        context.update(extra_context or {})

        return TemplateResponse(
            request,
            self.send_template
            or [
                "admin/%s/%s/send_object.html" % (opts.app_label, opts.object_name.lower()),
                "admin/%s/send_object.html" % opts.app_label,
                "admin/send_object.html",
            ],
            context,
        )


if not swapper.is_swapped("campaign", "Campaign"):
    admin.site.register(Campaign, CampaignAdmin)


class BlacklistEntryAdmin(admin.ModelAdmin):
    list_display = ("email", "added")

    # def get_urls(self):
    #     from django.conf.urls import url

    #     def wrap(view):
    #         def wrapper(*args, **kwargs):
    #             return self.admin_site.admin_view(view)(*args, **kwargs)
    #         wrapper.model_admin = self
    #         return update_wrapper(wrapper, view)
Example #11
0
        db_table = 'wq_parameter'
        swappable = swapper.swappable_setting('vera', 'Parameter')


class Result(BaseResult):
    class Meta(BaseResult.Meta):
        db_table = 'wq_result'
        swappable = swapper.swappable_setting('vera', 'Result')


EventResult = create_eventresult_model(Event,
                                       Result,
                                       swappable=swapper.swappable_setting(
                                           'vera', 'EventResult'))

if ((swapper.is_swapped('vera', 'Event')
     or swapper.is_swapped('vera', 'Result'))
        and not swapper.is_swapped('vera', 'EventResult')):
    raise ImproperlyConfigured(
        "Event or Result was swapped but EventResult was not!")


def nest_ordering(prefix, ordering, ignore_reverse=False):
    nest_order = []
    for field in ordering:
        reverse = ''
        if field.startswith('-'):
            field = field[1:]
            if not ignore_reverse:
                reverse = '-'
        nest_order.append(reverse + prefix + '__' + field)
Example #12
0
 def test_swap(self):
     self.assertEqual(swapper.is_swapped("vera", "Site"), "swap_app.Site")
     Site = swapper.load_model("vera", "Site")
     self.assertTrue(hasattr(Site, "identifiers"))
     site = Site.objects.find("Site 1")
     self.assertEqual(str(site), "Site 1")
#!/usr/bin/env python
# vim:fileencoding=utf-8
from __future__ import unicode_literals
import django
from django.db import models
import swapper

if django.VERSION[:2] < (1, 5):
    if swapper.is_swapped('imagestore', 'Album'):
        app_name, model_name = swapper.get_model_name('imagestore', 'Album').split('.')
        Album = models.get_model(app_name, model_name)
    else:
        from .album import Album

    if swapper.is_swapped('imagestore', 'Image'):
        app_name, model_name = swapper.get_model_name('imagestore', 'Image').split('.')
        Image = models.get_model(app_name, model_name)
    else:
        from .image import Image
else:
    from .album import Album
    from .image import Image

from .upload import AlbumUpload
 def test_swap_setting(self):
     self.assertTrue(swapper.is_swapped("default_app", "Type"))
     self.assertEqual(
         swapper.get_model_name("default_app", "Type"),
         "alt_app.Type"
     )
Example #15
0
    return EventResult


# Default implementation of the above classes, can be swapped
class Result(BaseResult):
    class Meta(BaseResult.Meta):
        db_table = 'wq_result'
        swappable = swapper.swappable_setting('results', 'Result')


EventResult = create_eventresult_model(Event,
                                       Result,
                                       swappable=swapper.swappable_setting(
                                           'results', 'EventResult'))

if ((swapper.is_swapped('series', 'Event')
     or swapper.is_swapped('results', 'Result'))
        and not swapper.is_swapped('results', 'EventResult')):
    raise ImproperlyConfigured(
        "Event or Result was swapped but EventResult was not!")


def nest_ordering(prefix, ordering, ignore_reverse=False):
    nest_order = []
    for field in ordering:
        reverse = ''
        if field.startswith('-'):
            field = field[1:]
            if not ignore_reverse:
                reverse = '-'
        nest_order.append(reverse + prefix + '__' + field)
Example #16
0
import swapper

from .models import (Continent, Country, Region, Subregion, City, District,
                     PostalCode, AlternativeName)


class CitiesAdmin(admin.ModelAdmin):
    raw_id_fields = ['alt_names']


class ContinentAdmin(CitiesAdmin):
    list_display = ['name', 'code']


if not swapper.is_swapped('cities', 'City'):
    admin.site.register(Continent, ContinentAdmin)


class CountryAdmin(CitiesAdmin):
    list_display = ['name', 'code', 'code3', 'tld', 'phone', 'continent', 'area', 'population']
    search_fields = ['name', 'code', 'code3', 'tld', 'phone']

if not swapper.is_swapped('cities', 'City'):
    admin.site.register(Country, CountryAdmin)


class RegionAdmin(CitiesAdmin):
    ordering = ['name_std']
    list_display = ['name_std', 'code', 'country']
    search_fields = ['name', 'name_std', 'code']
Example #17
0
 def test_swap(self):
     self.assertEqual(swapper.is_swapped("vera", "Site"), "swap_app.Site")
     Site = swapper.load_model("vera", "Site")
     self.assertTrue(hasattr(Site, "identifiers"))
     site = Site.objects.find("Site 1")
     self.assertEqual(str(site), "Site 1")
Example #18
0
    list_display = ('name', 'units')
    list_filter = ('units', 'is_numeric')


class ReportAdmin(admin.ModelAdmin):
    inlines = [ResultInline]


class EventAdmin(admin.ModelAdmin):
    inlines = [ReportInline]

# Register models with admin, but only if they haven't been swapped
default_admin = {
    'Site': admin.IdentifiedRelatedModelAdmin,
    'Event': EventAdmin,
    'Report': ReportAdmin,
    'ReportStatus': admin.ModelAdmin,
    'Parameter': ParameterAdmin,
}
for model in default_admin:
    if swapper.is_swapped('vera', model):
        continue
    admin.site.register(
        swapper.load_model('vera', model),
        default_admin[model]
    )

# Auto-register relevant patterns' type models
admin.site.register(Authority, admin.AuthorityAdmin)
admin.site.register(RelationshipType)
 def test_swap_setting(self):
     self.assertTrue(swapper.is_swapped("default_app", "Type"))
     self.assertEqual(
         swapper.get_model_name("default_app", "Type"),
         "alt_app.Type"
     )
Example #20
0
    class Meta(BaseParameter.Meta):
        db_table = 'wq_parameter'
        swappable = swapper.swappable_setting('vera', 'Parameter')


class Result(BaseResult):
    class Meta(BaseResult.Meta):
        db_table = 'wq_result'
        swappable = swapper.swappable_setting('vera', 'Result')


EventResult = create_eventresult_model(
    Event, Result, swappable=swapper.swappable_setting('vera', 'EventResult')
)

if ((swapper.is_swapped('vera', 'Event')
        or swapper.is_swapped('vera', 'Result'))
        and not swapper.is_swapped('vera', 'EventResult')):
    raise ImproperlyConfigured(
        "Event or Result was swapped but EventResult was not!"
    )


def nest_ordering(prefix, ordering, ignore_reverse=False):
    nest_order = []
    for field in ordering:
        reverse = ''
        if field.startswith('-'):
            field = field[1:]
            if not ignore_reverse:
                reverse = '-'
Example #21
0
File: models.py Project: wq/vera
    return EventResult


# Default implementation of the above classes, can be swapped
class Result(BaseResult):
    class Meta(BaseResult.Meta):
        db_table = 'wq_result'
        swappable = swapper.swappable_setting('results', 'Result')


EventResult = create_eventresult_model(
    Event, Result,
    swappable=swapper.swappable_setting('results', 'EventResult')
)

if ((swapper.is_swapped('series', 'Event')
        or swapper.is_swapped('results', 'Result'))
        and not swapper.is_swapped('results', 'EventResult')):
    raise ImproperlyConfigured(
        "Event or Result was swapped but EventResult was not!"
    )


def nest_ordering(prefix, ordering, ignore_reverse=False):
    nest_order = []
    for field in ordering:
        reverse = ''
        if field.startswith('-'):
            field = field[1:]
            if not ignore_reverse:
                reverse = '-'