diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-02-19 19:22:08 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-02-19 19:22:08 +0100 |
commit | c3f043e4937bd9ed7c68a38488e588866943f4c5 (patch) | |
tree | 48ecf37a9c135f85786e7ba9d1d24c75b4366c29 /chimere/admin.py | |
parent | b3058742a5acc9ca19a5edc31260b9ad0ca5ba5a (diff) | |
download | Chimère-c3f043e4937bd9ed7c68a38488e588866943f4c5.tar.bz2 Chimère-c3f043e4937bd9ed7c68a38488e588866943f4c5.zip |
Flake8
Diffstat (limited to 'chimere/admin.py')
-rw-r--r-- | chimere/admin.py | 165 |
1 files changed, 90 insertions, 75 deletions
diff --git a/chimere/admin.py b/chimere/admin.py index 686a656..3ea5b7b 100644 --- a/chimere/admin.py +++ b/chimere/admin.py @@ -37,17 +37,16 @@ except ImportError: pass from chimere.forms import MarkerAdminForm, RouteAdminForm, AreaAdminForm,\ - NewsAdminForm, CategoryAdminForm, ImporterAdminForm, OSMForm, \ - PageAdminForm, PictureFileAdminForm, MultimediaFileAdminForm + NewsAdminForm, CategoryAdminForm, ImporterAdminForm, OSMForm, \ + PageAdminForm, PictureFileAdminForm, MultimediaFileAdminForm from chimere import models from chimere.models import Category, Icon, SubCategory, Marker, \ - PropertyModel, News, Route, Area, ColorTheme, Color, \ - MultimediaFile, PictureFile, Importer, Layer, AreaLayers,\ - PropertyModelChoice, MultimediaExtension, Page,\ - get_areas_for_user, get_users_by_area, ImporterKeyCategories,\ - SubCategoryUserLimit -from chimere.utils import unicode_normalize, ShapefileManager, KMLManager,\ - CSVManager + PropertyModel, News, Route, Area, ColorTheme, Color, \ + MultimediaFile, PictureFile, Importer, Layer, AreaLayers,\ + PropertyModelChoice, Page, get_areas_for_user, \ + ImporterKeyCategories, SubCategoryUserLimit +from chimere.utils import ShapefileManager, KMLManager, CSVManager + def disable(modeladmin, request, queryset): for item in queryset: @@ -55,23 +54,26 @@ def disable(modeladmin, request, queryset): item.save() disable.short_description = _(u"Disable") + def validate(modeladmin, request, queryset): for item in queryset: item.status = 'A' item.save() validate.short_description = _(u"Validate") + def export_to_kml(modeladmin, request, queryset): u""" Export data to KML """ filename, result = KMLManager.export(queryset) response = HttpResponse(result, - mimetype='application/vnd.google-earth.kml+xml') + mimetype='application/vnd.google-earth.kml+xml') response['Content-Disposition'] = 'attachment; filename=%s' % filename return response export_to_kml.short_description = _(u"Export to KML") + def export_to_shapefile(modeladmin, request, queryset): u""" Export data to Shapefile @@ -86,6 +88,7 @@ def export_to_shapefile(modeladmin, request, queryset): return response export_to_shapefile.short_description = _(u"Export to Shapefile") + def export_to_csv(modeladmin, request, queryset): u""" Export data to CSV @@ -96,6 +99,7 @@ def export_to_csv(modeladmin, request, queryset): return response export_to_csv.short_description = _(u"Export to CSV") + def managed_modified(modeladmin, request, queryset): # not very clean... There is must be a better way to do that redirect_url = request.get_full_path().split('admin_modification')[0] @@ -108,8 +112,8 @@ def managed_modified(modeladmin, request, queryset): item = queryset.all()[0] if not item.ref_item or item.ref_item == item: try: - item = modeladmin.model.objects.filter(ref_item=item - ).exclude(pk=item.pk).all()[0] + item = modeladmin.model.objects.filter(ref_item=item)\ + .exclude(pk=item.pk).all()[0] except IndexError: messages.error(request, _(u"No modified item associated " u"to the selected item.")) @@ -160,7 +164,7 @@ def managed_modified(modeladmin, request, queryset): messages.success(request, _(u"Modified item traited.")) return HttpResponseRedirect(redirect_url) return render_to_response('admin/chimere/managed_modified.html', - {'item':item, 'item_ref':item_ref}, + {'item': item, 'item_ref': item_ref}, context_instance=RequestContext(request)) managed_modified.short_description = _(u"Managed modified items") @@ -284,28 +288,24 @@ class MarkerAdmin(admin.ModelAdmin): export_to_shapefile, export_to_csv] exclude = ['submiter_session_key', 'import_key', 'import_version', 'available_date', 'ref_item'] - readonly_fields = ['submiter_email', 'submiter_comment', 'import_source', - 'submiter_name', 'ref_item', 'modified_since_import', 'route'] + readonly_fields = [ + 'submiter_email', 'submiter_comment', 'import_source', + 'submiter_name', 'ref_item', 'modified_since_import', 'route'] form = MarkerAdminForm fieldsets = ((None, { - 'fields': ['point', 'name', 'status', 'categories', - 'description', 'keywords', 'start_date', 'end_date'] - }), - (_(u"Submitter"), { - 'classes':('collapse',), - 'fields': ('submiter_name', 'submiter_email', - 'submiter_comment') - }), - (_(u"Import"), { - 'classes':('collapse',), - 'fields': ('not_for_osm', 'modified_since_import', - 'import_source', 'origin', 'license') - }), - (_(u"Associated items"), { - 'classes':('collapse',), - 'fields': ('ref_item', 'route',) - }), - ) + 'fields': ['point', 'name', 'status', 'categories', 'description', + 'keywords', 'start_date', 'end_date'] + }), (_(u"Submitter"), { + 'classes': ('collapse',), + 'fields': ('submiter_name', 'submiter_email', 'submiter_comment') + }), (_(u"Import"), { + 'classes': ('collapse',), + 'fields': ('not_for_osm', 'modified_since_import', 'import_source', + 'origin', 'license') + }), (_(u"Associated items"), { + 'classes': ('collapse',), + 'fields': ('ref_item', 'route',) + }),) inlines = [MultimediaInline, PictureInline] has_properties = True @@ -315,8 +315,8 @@ class MarkerAdmin(admin.ModelAdmin): """ if self.has_properties: main_fields = self.fieldsets[0][1]['fields'] - for pm in PropertyModel.objects.filter(available=True).order_by('order' - ).all(): + for pm in PropertyModel.objects.filter(available=True)\ + .order_by('order').all(): pm_name = pm.getNamedId() if pm_name not in main_fields: main_fields.append(pm_name) @@ -334,13 +334,14 @@ class MarkerAdmin(admin.ModelAdmin): ''' Redirect to the marker modification form ''' - return managed_modified(self, request, - Marker.objects.filter(pk=item_id)) + return managed_modified( + self, request, Marker.objects.filter(pk=item_id)) def get_urls(self): from django.conf.urls.defaults import patterns, url urls = super(MarkerAdmin, self).get_urls() - my_urls = patterns('', + my_urls = patterns( + '', url(r'^admin_modification/(?P<item_id>\d+)/$', self.admin_site.admin_view(self.admin_modification), name='admin-modification'), @@ -372,25 +373,19 @@ class RouteAdmin(MarkerAdmin): actions = [validate, disable, managed_modified, export_to_kml, export_to_shapefile, export_to_csv] fieldsets = ((None, { - 'fields': ['route', 'name', 'status', 'categories', - 'start_date', 'end_date'] - }), - (_(u"Submitter"), { - 'classes':('collapse',), - 'fields': ('submiter_name', 'submiter_email', - 'submiter_comment') - }), - (_(u"Import"), { - 'classes':('collapse',), - 'fields': ('modified_since_import', 'import_source', - 'origin', 'license') - }), - (_(u"Associated items"), { - 'classes':('collapse',), - 'fields': ('ref_item', 'associated_file', - 'has_associated_marker') - }), - ) + 'fields': ['route', 'name', 'status', 'categories', 'start_date', + 'end_date'] + }), (_(u"Submitter"), { + 'classes': ('collapse',), + 'fields': ('submiter_name', 'submiter_email', 'submiter_comment') + }), (_(u"Import"), { + 'classes': ('collapse',), + 'fields': ('modified_since_import', 'import_source', 'origin', + 'license') + }), (_(u"Associated items"), { + 'classes': ('collapse',), + 'fields': ('ref_item', 'associated_file', 'has_associated_marker') + }),) inlines = [] has_properties = False @@ -409,10 +404,12 @@ class RouteAdmin(MarkerAdmin): return managed_modified(self, request, Route.objects.filter(pk=item_id)) + class LayerInline(admin.TabularInline): model = AreaLayers extra = 1 + class AreaAdmin(admin.ModelAdmin): """ Specialized the area field. @@ -422,6 +419,7 @@ class AreaAdmin(admin.ModelAdmin): inlines = [LayerInline] list_display = ['name', 'order', 'available', 'default'] + def importing(modeladmin, request, queryset): for importer in queryset: importer.state = unicode(tasks.IMPORT_MESSAGES['import_pending'][0]) @@ -429,63 +427,72 @@ def importing(modeladmin, request, queryset): tasks.importing(importer.pk) importing.short_description = _(u"Import") + def cancel_import(modeladmin, request, queryset): for importer in queryset: importer.state = tasks.IMPORT_MESSAGES['import_cancel'][0] importer.save() cancel_import.short_description = _(u"Cancel import") + def cancel_export(modeladmin, request, queryset): for importer in queryset: importer.state = tasks.IMPORT_MESSAGES['export_cancel'][0] importer.save() cancel_export.short_description = _(u"Cancel export") + def export_to_osm(modeladmin, request, queryset): if queryset.count() > 1: - messages.error(request, _(u"Can manage only one OSM export at a time.")) + messages.error(request, + _(u"Can manage only one OSM export at a time.")) return HttpResponseRedirect(request.get_full_path()) importer = queryset.all()[0] if Marker.objects.filter(categories__in=importer.categories.all(), status='I').count(): - messages.error(request, _(u"You must treat all item with the status "\ + messages.error(request, _(u"You must treat all item with the status " u"\"imported\" before exporting to OSM.")) return HttpResponseRedirect(request.get_full_path()) if importer.importer_type != 'OSM': - messages.error(request, _(u"Only OSM importer are managed for export.")) + messages.error(request, + _(u"Only OSM importer are managed for export.")) return HttpResponseRedirect(request.get_full_path()) - item_nb = Marker.objects.filter(status='A', - categories=importer.categories.all(), - not_for_osm=False, modified_since_import=True, - route=None).count() + item_nb = Marker.objects.filter( + status='A', categories=importer.categories.all(), not_for_osm=False, + modified_since_import=True, route=None).count() if not item_nb: - messages.error(request, _(u"No point of interest are concerned by this " - u"export.")) + messages.error(request, + _(u"No point of interest are concerned by this " + u"export.")) return HttpResponseRedirect(request.get_full_path()) form = None if request.method == 'POST' and ( - 'email' in request.POST or 'api' in request.POST - or 'password' in request.POST): + 'email' in request.POST or 'api' in request.POST + or 'password' in request.POST): form = OSMForm(request.POST) if form.is_valid(): - importer.state = unicode(tasks.IMPORT_MESSAGES['export_pending'][0]) + importer.state = unicode( + tasks.IMPORT_MESSAGES['export_pending'][0]) importer.save() tasks.exporting(importer.pk, form.cleaned_data) messages.success(request, _(u"Export launched.")) return HttpResponseRedirect(request.get_full_path()) else: form = OSMForm() - msg_item = _(u"%s point(s) of interest concerned by this export before "\ + msg_item = _(u"%s point(s) of interest concerned by this export before " u"bounding box filter.") % item_nb - return render_to_response('admin/chimere/osm_export.html', {'item':importer, - 'form':form, 'msg_item':msg_item}, + return render_to_response('admin/chimere/osm_export.html', + {'item': importer, 'form': form, + 'msg_item': msg_item}, context_instance=RequestContext(request)) export_to_osm.short_description = _(u"Export to osm") + class ImporterKeyInline(admin.TabularInline): model = ImporterKeyCategories extra = 1 + class ImporterAdmin(admin.ModelAdmin): form = ImporterAdminForm list_display = ('importer_type', 'display_categories', 'default_name', @@ -496,14 +503,13 @@ class ImporterAdmin(admin.ModelAdmin): inlines = [ImporterKeyInline] admin.site.register(Importer, ImporterAdmin) + class PageAdmin(admin.ModelAdmin): """ Use the TinyMCE widget for the page content """ form = PageAdminForm -class PropertyModelAdmin(admin.ModelAdmin): - list_display = ('name', 'order', 'available') class NewsAdmin(admin.ModelAdmin): """ @@ -511,10 +517,12 @@ class NewsAdmin(admin.ModelAdmin): """ form = NewsAdminForm + class SubcatInline(admin.TabularInline): model = SubCategory extra = 1 + class CategoryAdmin(admin.ModelAdmin): """ Use the TinyMCE widget for categories @@ -523,20 +531,27 @@ class CategoryAdmin(admin.ModelAdmin): inlines = [SubcatInline] list_display = ['name', 'order'] + class ColorInline(admin.TabularInline): model = Color + class ColorThemeAdmin(admin.ModelAdmin): - inlines = [ColorInline,] + inlines = [ColorInline] + class IconAdmin(admin.ModelAdmin): exclude = ['height', 'width'] list_display = ['name'] + class PropertyModelChoiceInline(admin.TabularInline): model = PropertyModelChoice extra = 1 + + class PropertyModelAdmin(admin.ModelAdmin): + list_display = ('name', 'order', 'available') inlines = [PropertyModelChoiceInline] # register of differents database fields |