add AreaOfInterest and GroupOfInterest
This commit is contained in:
parent
52958ec5fc
commit
9c202ab6cd
11 changed files with 194 additions and 13 deletions
|
@ -61,6 +61,10 @@ class MapitemFormMixin(ModelForm):
|
|||
# set field_name
|
||||
self.fields['levels'].to_field_name = 'name'
|
||||
|
||||
if 'groups' in self.fields:
|
||||
# set field_name
|
||||
self.fields['groups'].to_field_name = 'name'
|
||||
|
||||
if 'geometry' in self.fields:
|
||||
# hide geometry widget
|
||||
self.fields['geometry'].widget = HiddenInput()
|
||||
|
@ -94,12 +98,17 @@ class MapitemFormMixin(ModelForm):
|
|||
if 'geometry' in self.fields:
|
||||
if not self.cleaned_data.get('geometry'):
|
||||
raise ValidationError('Missing geometry.')
|
||||
|
||||
if hasattr(self.instance, 'titles') and not any(self.titles.values()):
|
||||
raise ValidationError(
|
||||
_('You have to select a title in at least one language.')
|
||||
)
|
||||
super().clean()
|
||||
|
||||
|
||||
def create_editor_form(mapitemtype):
|
||||
possible_fields = ['name', 'package', 'altitude', 'level', 'intermediate', 'levels', 'geometry',
|
||||
'elevator', 'button', 'crop_to_level', 'width']
|
||||
'elevator', 'button', 'crop_to_level', 'width', 'groups']
|
||||
existing_fields = [field for field in possible_fields if hasattr(mapitemtype, field)]
|
||||
|
||||
class EditorForm(MapitemFormMixin, ModelForm):
|
||||
|
|
|
@ -29,7 +29,7 @@ form button.invisiblesubmit {
|
|||
display: block;
|
||||
}
|
||||
|
||||
.leaflet-control-layers-toggle {
|
||||
.leaflet-container .leaflet-control-layers-toggle {
|
||||
color:#000000 !important;
|
||||
font-size:14px;
|
||||
text-align:center;
|
||||
|
@ -38,7 +38,7 @@ form button.invisiblesubmit {
|
|||
background-image:none;
|
||||
padding:0 8px;
|
||||
}
|
||||
.leaflet-control-layers-expanded {
|
||||
.leaflet-container .leaflet-control-layers-expanded {
|
||||
min-width:75px;
|
||||
}
|
||||
.leaflet-levels {
|
||||
|
|
|
@ -281,7 +281,8 @@ editor = {
|
|||
'elevatorlevel': '#9EF8FB',
|
||||
'levelconnector': '#FFFF00',
|
||||
'shadow': '#000000',
|
||||
'stair': '#FF0000'
|
||||
'stair': '#FF0000',
|
||||
'areaofinterest': '#0099FF'
|
||||
},
|
||||
_line_draw_geometry_style: function(style) {
|
||||
style.stroke = true;
|
||||
|
@ -300,12 +301,19 @@ editor = {
|
|||
},
|
||||
_get_mapitem_type_style: function (mapitem_type) {
|
||||
// get styles for a specific mapitem
|
||||
return {
|
||||
var result = {
|
||||
stroke: false,
|
||||
fillColor: editor._geometry_colors[mapitem_type],
|
||||
fillOpacity: 0.6,
|
||||
fillOpacity: (mapitem_type == 'areaofinterest') ? 0.2 : 0.6,
|
||||
smoothFactor: 0
|
||||
};
|
||||
if (mapitem_type == 'areaofinterest') {
|
||||
result.fillOpacity = 0.02;
|
||||
result.color = result.fillColor;
|
||||
result.stroke = true;
|
||||
result.weight = 1;
|
||||
}
|
||||
return result;
|
||||
},
|
||||
_register_geojson_feature: function (feature, layer) {
|
||||
// onEachFeature callback for GeoJSON loader – register all needed events
|
||||
|
|
|
@ -13,7 +13,8 @@
|
|||
</tr>
|
||||
{% endif %}
|
||||
<tr data-name="{{ item.name }}">
|
||||
<td>{{ item.name }}</td>
|
||||
|
||||
<td>{% if item.title != item.name %}{{ item.title }} <small>{{ item.name }}</small>{% else %}{{ item.name }}{% endif %}</td>
|
||||
{% if has_elevator %}
|
||||
<td><a href="{% url 'editor.mapitems.edit' mapitem_type='elevator' name=item.elevator.name %}">{{ item.elevator }}</a></td>
|
||||
{% endif %}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue