misc: improve TypeDeRdv interface
gitea/ants-hub/pipeline/head This commit looks good
Details
gitea/ants-hub/pipeline/head This commit looks good
Details
This commit is contained in:
parent
0974ce8372
commit
7199504489
|
@ -85,8 +85,8 @@ def available_time_slots_parse_qs(request):
|
|||
end_date = min(end_date, start_date + datetime.timedelta(days=180))
|
||||
reason = request.GET.get('reason', 'CNI').strip()
|
||||
try:
|
||||
reason = TypeDeRdv.from_label(reason)
|
||||
except ValueError:
|
||||
reason = TypeDeRdv.from_ants_name(reason)
|
||||
except KeyError:
|
||||
reason = TypeDeRdv.CNI
|
||||
try:
|
||||
documents_number = min(int(request.GET.get('documents_number', '').strip()), 4)
|
||||
|
|
|
@ -152,7 +152,13 @@ class RendezVousDisponibleView(View):
|
|||
for plage in plages:
|
||||
try:
|
||||
date = datetime.date.fromisoformat(plage['date'])
|
||||
types_rdv = [TypeDeRdv.from_label(typ) for typ in plage['types_rdv']]
|
||||
types_rdv = set()
|
||||
for typ in plage['types_rdv']:
|
||||
typ = typ.replace('-', '_')
|
||||
try:
|
||||
types_rdv.add(TypeDeRdv.from_ants_name(typ))
|
||||
except KeyError:
|
||||
types_rdv.add(TypeDeRdv.CNI)
|
||||
if not types_rdv:
|
||||
types_rdv = [TypeDeRdv.CNI]
|
||||
personnes = plage.get('personnes', 1)
|
||||
|
|
|
@ -113,15 +113,16 @@ class HoraireField(models.TextField):
|
|||
|
||||
class TypeDeRdv(models.IntegerChoices):
|
||||
CNI = 1, 'CNI'
|
||||
PASSPORT = 2, 'PASSPORT'
|
||||
CNI_PASSPORT = 3, 'CNI-PASSPORT'
|
||||
PASSPORT = 2, 'Passeport'
|
||||
CNI_PASSPORT = 3, 'CNI et passeport'
|
||||
|
||||
@property
|
||||
def ants_name(self):
|
||||
return super().name.replace('_', '-')
|
||||
|
||||
@classmethod
|
||||
def from_label(cls, label):
|
||||
for value, _label in cls.choices:
|
||||
if label == _label:
|
||||
return value
|
||||
raise ValueError(label)
|
||||
def from_ants_name(cls, name):
|
||||
return cls[name.replace('-', '_')]
|
||||
|
||||
|
||||
class TypeDeRdvField(models.SmallIntegerField):
|
||||
|
|
|
@ -1,8 +1,22 @@
|
|||
# ANTS-Hub - Copyright (C) Entr'ouvert
|
||||
|
||||
from ants_hub.data.models import Raccordement
|
||||
from ants_hub.data.models import Raccordement, TypeDeRdv
|
||||
|
||||
|
||||
def test_raccordement(db):
|
||||
apikey = Raccordement.objects.create(name='Example')
|
||||
assert len(apikey.apikey) >= 32
|
||||
|
||||
|
||||
def test_type_de_rdv():
|
||||
assert TypeDeRdv.CNI.ants_name == 'CNI'
|
||||
assert TypeDeRdv.PASSPORT.ants_name == 'PASSPORT'
|
||||
assert TypeDeRdv.CNI_PASSPORT.ants_name == 'CNI-PASSPORT'
|
||||
|
||||
assert TypeDeRdv.CNI.label == 'CNI'
|
||||
assert TypeDeRdv.PASSPORT.label == 'Passeport'
|
||||
assert TypeDeRdv.CNI_PASSPORT.label == 'CNI et passeport'
|
||||
|
||||
assert TypeDeRdv.from_ants_name('CNI') == TypeDeRdv.CNI
|
||||
assert TypeDeRdv.from_ants_name('PASSPORT') == TypeDeRdv.PASSPORT
|
||||
assert TypeDeRdv.from_ants_name('CNI-PASSPORT') == TypeDeRdv.CNI_PASSPORT
|
||||
|
|
Loading…
Reference in New Issue