summaryrefslogtreecommitdiff
path: root/chimere
diff options
context:
space:
mode:
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
commitbe70ae3016861cb13f1600c266522782b8e4dc90 (patch)
treed22cd609e67665511cc9bcaa5c190c45f65bd569 /chimere
parent83fc9015eb778b958a921e68c0580ed37990624f (diff)
downloadChimère-be70ae3016861cb13f1600c266522782b8e4dc90.tar.bz2
Chimère-be70ae3016861cb13f1600c266522782b8e4dc90.zip
Admin: improve layout of markers and routes
Diffstat (limited to 'chimere')
-rw-r--r--chimere/admin.py51
-rw-r--r--chimere/models.py13
-rw-r--r--chimere/static/chimere/css/forms.css15
-rw-r--r--chimere/widgets.py6
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):