summaryrefslogtreecommitdiff
path: root/chimere/admin.py
diff options
context:
space:
mode:
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
commitc3f043e4937bd9ed7c68a38488e588866943f4c5 (patch)
tree48ecf37a9c135f85786e7ba9d1d24c75b4366c29 /chimere/admin.py
parentb3058742a5acc9ca19a5edc31260b9ad0ca5ba5a (diff)
downloadChimère-c3f043e4937bd9ed7c68a38488e588866943f4c5.tar.bz2
Chimère-c3f043e4937bd9ed7c68a38488e588866943f4c5.zip
Flake8
Diffstat (limited to 'chimere/admin.py')
-rw-r--r--chimere/admin.py165
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