position de carte selon gabarit (#66959) #253
Loading…
Reference in New Issue
No description provided.
Delete Branch "wip/66959-map-initial-position-template"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
7fb11cf911
to274af38061
274af38061
to30532fc6a3
30532fc6a3
to4d6cea8305
4d6cea8305
to83fa0aa4fd
83fa0aa4fd
toafafc75fe3
@ -2302,0 +2309,4 @@
'max_zoom',
'initial_position',
'position_template',
'data_source',
Avec le passage en plusieurs lignes on ne le voit pas bien, c'est l'ajout de initial_position et position_template.
@ -2549,0 +2565,4 @@
options=(
('', _('Default position (from markers)'), ''),
('template', _('From template'), 'template'),
),
La position de départ est soit déterminée selon les marqueurs (situation actuelle), soit selon ce qui sera donné dans le gabarit en question.
@ -3537,0 +3583,4 @@
'initial_position',
'default_position',
'position_template',
]
Pour les champs carte il y a initial_position et position_template ajoutés, init_with_geoloc retiré (il devient une des valeurs possibles pour initial_position).
@ -3537,0 +3594,4 @@
elif self.default_position:
self.initial_position = 'point'
changed = True
return changed
Code de migration, précédemment on pouvait avoir en parallèle la géoloc et une position par défaut, désormais il faut choisir, le choix de la géoloc était prioritaire avant, donc on garde de manière préférentielle celui-ci.
@ -3541,0 +3608,4 @@
('point', _('Specific point'), 'point'),
('geoloc', _('Device geolocation'), 'geoloc'),
('template', _('From template'), 'template'),
),
Pour les champs "carte" on a ces 4 options, les 3 qui existaient + la possibilité de gabarit.
Pour les champs liste affichés sous forme de carte on a uniquement 2 options, le choix par défaut (position selon les marqueurs) et le choix "gabarit" (qui est la demande à l'origine du ticket). Ça pourrait être étendu pour avoir les options point et géoloc mais je me suis dit que j'attendrais la demande.
@ -3375,0 +3397,4 @@
self.map_attributes['data-def-lat'] = position.split(';')[0]
self.map_attributes['data-def-lng'] = position.split(';')[1]
else:
# address?
C'est le même comportement que celui adopté pour le préremplissage par un gabarit d'un champ carte, soit le gabarit donne des coordonnées, soit on on part sur le géocodage.
@ -2642,0 +2642,4 @@
div[data-dynamic-display-child-of="initial_position"] {
margin-top: -1.5em;
}
Dans l'admin, pour coller davantage le champ qui vient directement sous la sélection du type de position initiale.
@ -16,0 +23,4 @@
}
});
// refresh maps that may have been shown
$(this).parents('form').find('.qommon-map').trigger('qommon:invalidate');
Pour la configuration des champs liste en mode carte, on a désormais une cascade possible, affichage carte -> le champ position initiale s'affiche -> le champ gabarit associé peut s'afficher, ou pas.
Le code ici cache tout ce qui serait dépendant du champ "position initiale" quand celui-ci est caché, et joue le trigger "change" quand il est affiché (ce qui amènera les champs dépendants à s'afficher).
@ -110,0 +117,4 @@
// has been given.
} else {
map.fitBounds(geo_json.getBounds());
}
Si la carte a une position par défaut via un gabarit, on ne fait rien (elle a été centrée dessus plus tôt), sinon s'il y a un marqueur sélectionné on se centre dessus (nouveau comportement), sinon on reste sur l'ancien comportement d'ajuster la carte pour afficher les marqueurs.
Le besoin initial concerne uniquement le champ liste affiché en carte mais ça n'aurait pas été terrible de lui ajouter une option de centrage de carte que le champ carte n'aurait pas eu, donc ça l'ajoute aussi au champ carte, et plutôt que faire une succession de possibilités (position par défaut qui peut être vide, case à cocher pour la géolocalisation par l'appareil), ça modifie l'interface pour avoir d'abord une série de boutons radio :
et dessous, si point est choisi une carte, et si gabarit est choisi un champ texte pour le saisir.
Une fois ça en place, juste un peu de js supplémentaire pour le cas "choix d'un marqueur" et c'est plié.
WIP: position de carte selon gabarit (#66959)to position de carte selon gabarit (#66959)