AtelierSoude / OpenRepairPlatform

OpenRepairPlatform is a web application based on Django designed to organizing collaborative and non-profits repair structures - Still in development
34 stars 16 forks source link

Inversion Latitude Longitude #144

Open Skrattoune opened 2 years ago

Skrattoune commented 2 years ago

Selon les conventions, les geolocalisations sont listées dans l'ordre latitude, longitude or, aussi bien dans le model que dans le formulaire, ils ont été listés dans l'ordre inverse.

Du coup, quand j'ai créé mon premier lieu, j'ai cru qu'il y avait un problème car votre super système de cartes affichait ... rien.

serait-il possible d'inverser dans le model comme dans

class PlaceForm(ModelForm):
    longitude = forms.CharField(widget=forms.HiddenInput)
    latitude = forms.CharField(widget=forms.HiddenInput)

l'ordre des deux fields ?

Si vous voulez, je peux aussi le faire directement

Skrattoune commented 2 years ago

Il y a un changement dans le model location entre dev et dev_CH:

location = models.PointField(null=True, blank=True, geography=True)

@property
    def latitude(self):
        if self.location:
            return self.location.y
        return None

    @property
    def longitude(self):
        if self.location:
            return self.location.x
        return None

A part le coté historique interne à l'application, y a-t-il une raison de garder location = (longitude, latitude) plutôt que location = (latitude, longitude) ?

cf aussi le form: instance.location = Point(longitude, latitude)

Je pense que ça pourrait être bien de rajoutter un help_text='instance.location = Point(longitude, latitude)' dans la definition du model: location = models.PointField(null=True, blank=True, geography=True, help_text='instance.location = Point(longitude, latitude)')

ClemsP commented 2 years ago

Alors, c'est normal.

On utilise GeoDjango et en effet, le Point() est défini dans cet ordre. Voir la documentation : https://docs.djangoproject.com/fr/4.0/ref/contrib/gis/tutorial/#id13

Dans tous les cas, oui il y a des différence entre notre branch dev_branch et la branche dev_fr_suisse. Nous avons développé la fonctionnalité d'entrée sur la plateforme par localisation sur dev_branch. Or, on utilise l'API du gouvernement Française et ce n'est pas utilisable chez vous dans l'état. C'est pour ça que nous avons créé cette branche commune dev_fr_suisse.

Je l'avais mentionné à Nico mais il te n'a peut être pas fait passé l'info. @LucienD