diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-11-22 20:13:02 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-11-22 20:13:02 +0100 |
commit | be70ae3016861cb13f1600c266522782b8e4dc90 (patch) | |
tree | d22cd609e67665511cc9bcaa5c190c45f65bd569 /chimere | |
parent | 83fc9015eb778b958a921e68c0580ed37990624f (diff) | |
download | Chimère-be70ae3016861cb13f1600c266522782b8e4dc90.tar.bz2 Chimère-be70ae3016861cb13f1600c266522782b8e4dc90.zip |
Admin: improve layout of markers and routes
Diffstat (limited to 'chimere')
-rw-r--r-- | chimere/admin.py | 51 | ||||
-rw-r--r-- | chimere/models.py | 13 | ||||
-rw-r--r-- | chimere/static/chimere/css/forms.css | 15 | ||||
-rw-r--r-- | chimere/widgets.py | 6 |
4 files changed, 74 insertions, 11 deletions
diff --git a/chimere/admin.py b/chimere/admin.py index e611ee0..b4231a7 100644 --- a/chimere/admin.py +++ b/chimere/admin.py @@ -165,8 +165,39 @@ class MarkerAdmin(admin.ModelAdmin): readonly_fields = ['submiter_email', 'submiter_comment', 'import_source', 'ref_item', 'modified_since_import'] form = MarkerAdminForm + fieldsets = ((None, { + 'fields': ['point', 'name', 'status', 'categories', + 'description', 'start_date', 'end_date'] + }), + (_(u"Submiter"), { + 'classes':('collapse',), + 'fields': ('submiter_name', 'submiter_email', + 'submiter_comment') + }), + (_(u"Import"), { + 'classes':('collapse',), + 'fields': ('modified_since_import', 'import_source', + 'origin', 'license') + }), + (_(u"Advanced options"), { + 'classes':('collapse',), + 'fields': ('ref_item', 'route',) + }), + ) inlines = [MultimediaInline, PictureInline] + def __init__(self, *args, **kwargs): + """ + Manage properties in fieldsets. + """ + main_fields = self.fieldsets[0][1]['fields'] + 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) + super(MarkerAdmin, self).__init__(*args, **kwargs) + def queryset(self, request): qs = self.model._default_manager.get_query_set() if not request.user.is_superuser: @@ -192,6 +223,26 @@ class RouteAdmin(admin.ModelAdmin): readonly_fields = ('associated_file',) 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"Submiter"), { + 'classes':('collapse',), + 'fields': ('submiter_name', 'submiter_email', + 'submiter_comment') + }), + (_(u"Import"), { + 'classes':('collapse',), + 'fields': ('modified_since_import', 'import_source', + 'origin', 'license') + }), + (_(u"Advanced options"), { + 'classes':('collapse',), + 'fields': ('ref_item', 'associated_file', + 'has_associated_marker') + }), + ) def queryset(self, request): qs = self.model._default_manager.get_query_set() diff --git a/chimere/models.py b/chimere/models.py index dfca2f2..8086c57 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -301,13 +301,12 @@ class GeographicItem(models.Model): blank=True, null=True) license = models.CharField(_(u"License"), max_length=100, blank=True, null=True) - if settings.CHIMERE_DAYS_BEFORE_EVENT: - start_date = models.DateField(_(u"Start date"), blank=True, null=True, - help_text=_(u"Not mandatory. Set it for dated item such as event. "\ - u"Format YYYY-MM-DD")) - end_date = models.DateField(_(u"End date"), blank=True, null=True, - help_text=_(u"Not mandatory. Set it only if you have a multi-day "\ - u"event. Format YYYY-MM-DD")) + start_date = models.DateField(_(u"Start date"), blank=True, null=True, + help_text=_(u"Not mandatory. Set it for dated item such as event. "\ + u"Format YYYY-MM-DD")) + end_date = models.DateField(_(u"End date"), blank=True, null=True, + help_text=_(u"Not mandatory. Set it only if you have a multi-day "\ + u"event. Format YYYY-MM-DD")) class Meta: abstract = True diff --git a/chimere/static/chimere/css/forms.css b/chimere/static/chimere/css/forms.css index b75f947..7466bfa 100644 --- a/chimere/static/chimere/css/forms.css +++ b/chimere/static/chimere/css/forms.css @@ -130,16 +130,31 @@ div.bottomform{ height:16px; } +.form-row.field-route, +.form-row.field-point, .form-row.field-filtr.field-map{ float:right; width:50%; } +.form-row.field-route .help-route{ + width:150px; +} + #id_filtr{ width:400px; } +.aligned .form-row.field-route label, +.aligned .form-row.field-point label, .aligned .input-osm label{ display:inline; float:none; } + +form .aligned .form-row.field-marker p, +form .aligned .form-row.field-route p, +form .aligned .input-osm p{ + padding:0.2em; + margin:0; +} diff --git a/chimere/widgets.py b/chimere/widgets.py index 7359115..4cccf32 100644 --- a/chimere/widgets.py +++ b/chimere/widgets.py @@ -204,7 +204,7 @@ class PointChooserWidget(forms.TextInput): #TODO: manage area tpl = u"<script type='text/javascript'><!--\n"\ u"%s// !--></script>\n" % js - tpl += u"<div id='map_edit'></div>"\ + tpl += u"</div><div id='map_edit'></div>"\ u"<div id='live_lonlat'>"\ u" <p><label for='live_latitude'>%s</label>"\ u" <input type='texte' name='live_latitude' id='live_latitude' "\ @@ -212,7 +212,6 @@ class PointChooserWidget(forms.TextInput): u"<p><label for='live_longitude'>%s</label><input type='texte' "\ u"name='live_longitude' id='live_longitude' size='8' "\ u"disabled='true' value='%f'/></p>"\ - u"</div>"\ u"<input type='hidden' name='%s' id='id_%s' value='%s'/>" % ( _("Latitude"), value_y, _("Longitude"), value_x, name, name, val) @@ -224,8 +223,7 @@ class PointChooserWidget(forms.TextInput): u' mylonlat.transform(EPSG_DISPLAY_PROJECTION, \n'\ u' EPSG_PROJECTION), true);\n' % ( value_x, value_y) - tpl += "// --></script>\n"\ - u"<hr class='spacer'/>\n" + tpl += "// --></script>\n" return mark_safe(tpl) class PointField(models.PointField): |