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
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)
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
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)
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)
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)
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)
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)
) 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)
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)
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" )
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)
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']
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)
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 = '-'
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 = '-'