wip/78311-parsifal-change-catalog-interval (#78311) #276
|
@ -212,15 +212,6 @@ class ToulouseMaelis(BaseResource, HTTPResource):
|
|||
id_key, text_key = 'schoolYear', 'schoolYear'
|
||||
self.update_referential(referential_name, data, id_key, text_key)
|
||||
|
||||
def get_activity_catalog_raw(self, year):
|
||||
return self.call(
|
||||
'Activity',
|
||||
'readActivityList',
|
||||
schoolyear=year,
|
||||
dateStartCalend='%s-09-01' % year,
|
||||
dateEndCalend='%s-08-31' % (year + 1),
|
||||
)
|
||||
|
||||
def update_activity_referentials(self):
|
||||
for referential_name in ('ActivityNatureType', 'Direct', 'Service'):
|
||||
id_key, text_key = 'code', 'libelle'
|
||||
|
@ -2678,7 +2669,8 @@ class ToulouseMaelis(BaseResource, HTTPResource):
|
|||
},
|
||||
)
|
||||
def read_activity_list(self, request, ref_date=None):
|
||||
reference_year = utils.get_reference_year_from_date(ref_date or now())
|
||||
if not ref_date:
|
||||
ref_date = now().date()
|
||||
labels = {
|
||||
'service': 'Service',
|
||||
'nature': "Nature de l'activité",
|
||||
|
@ -2691,7 +2683,15 @@ class ToulouseMaelis(BaseResource, HTTPResource):
|
|||
all_criterias = {key: {'text': value, 'data': {}} for key, value in labels.items()}
|
||||
criterias = {key: {'text': value, 'data': {}} for key, value in labels.items()}
|
||||
|
||||
activities = self.get_activity_catalog_raw(reference_year)
|
||||
activities = self.call(
|
||||
'Activity',
|
||||
'readActivityList',
|
||||
# pass schoolyear as '1970', it's not actually used and activities will be
|
||||
# returned according to dateStartCalend/dateEndCalend.
|
||||
schoolyear='1970',
|
||||
dateStartCalend=(ref_date - datetime.timedelta(days=365)).isoformat(),
|
||||
dateEndCalend=(ref_date + datetime.timedelta(days=365)).isoformat(),
|
||||
)
|
||||
|
||||
def add_criteria(label_key, criteria_key, criteria_value):
|
||||
if not criteria_value:
|
||||
|
@ -2774,7 +2774,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
|
|||
return {
|
||||
'data': data,
|
||||
'meta': {
|
||||
'reference_year': reference_year,
|
||||
'ref_date': ref_date.isoformat(),
|
||||
'all_criterias': all_criterias,
|
||||
'all_criterias_order': ['service', 'nature', 'type', 'public', 'day', 'place'],
|
||||
},
|
||||
|
|
|
@ -7,8 +7,8 @@ import pprint
|
|||
import utils
|
||||
from zeep.helpers import serialize_object
|
||||
|
||||
YEAR = '2022'
|
||||
START_DATE = '2023-01-01'
|
||||
YEAR = '1970'
|
||||
START_DATE = '2022-01-01'
|
||||
END_DATE = '2023-12-31'
|
||||
|
||||
|
||||
|
|
|
@ -6137,12 +6137,21 @@ def test_get_public_criterias(start_dob, end_dob, expected):
|
|||
|
||||
|
||||
def test_read_activity_list(activity_service, con, app):
|
||||
activity_service.add_soap_response('readActivityList', get_xml_file('R_read_activity_list.xml'))
|
||||
def request_check(request):
|
||||
assert request.schoolyear == 1970
|
||||
assert request.dateStartCalend == datetime.datetime(2023, 3, 1, 0, 0)
|
||||
assert request.dateEndCalend == datetime.datetime(2025, 2, 28, 0, 0)
|
||||
|
||||
activity_service.add_soap_response(
|
||||
'readActivityList',
|
||||
get_xml_file('R_read_activity_list.xml'),
|
||||
request_check=request_check,
|
||||
)
|
||||
url = get_endpoint('read-activity-list')
|
||||
|
||||
con.loisir_nature_codes = '1,4,L,, S '
|
||||
con.save()
|
||||
params = {'ref_date': '2023-01-01'}
|
||||
params = {'ref_date': '2024-02-29'}
|
||||
resp = app.get(url, params=params)
|
||||
assert resp.json['err'] == 0
|
||||
assert len(resp.json['data']) == 8
|
||||
|
@ -6208,7 +6217,7 @@ def test_read_activity_list(activity_service, con, app):
|
|||
},
|
||||
}
|
||||
assert resp.json['meta'] == {
|
||||
'reference_year': 2022,
|
||||
'ref_date': '2024-02-29',
|
||||
'all_criterias': {
|
||||
'service': {'text': 'Service', 'data': {'sorties': 'Sorties'}, 'order': ['sorties']},
|
||||
'nature': {
|
||||
|
@ -6273,7 +6282,7 @@ def test_read_activity_list(activity_service, con, app):
|
|||
assert resp.json == {
|
||||
'data': [],
|
||||
'meta': {
|
||||
'reference_year': 2022,
|
||||
'ref_date': '2024-02-29',
|
||||
'all_criterias': {
|
||||
'service': {'text': 'Service', 'data': {}, 'order': []},
|
||||
'nature': {'text': "Nature de l'activité", 'data': {}, 'order': []},
|
||||
|
@ -6288,6 +6297,16 @@ def test_read_activity_list(activity_service, con, app):
|
|||
}
|
||||
|
||||
|
||||
def test_read_activity_list_without_date(activity_service, con, app, freezer):
|
||||
activity_service.add_soap_response('readActivityList', get_xml_file('R_read_activity_list.xml'))
|
||||
url = get_endpoint('read-activity-list')
|
||||
|
||||
freezer.move_to('2024-02-29')
|
||||
resp = app.get(url)
|
||||
assert resp.json['err'] == 0
|
||||
assert resp.json['meta']['ref_date'] == '2024-02-29'
|
||||
|
||||
|
||||
def test_read_activity_list_no_nature(activity_service, con, app):
|
||||
activity_service.add_soap_response('readActivityList', get_xml_file('R_read_activity_list_no_nature.xml'))
|
||||
url = get_endpoint('read-activity-list')
|
||||
|
|
Loading…
Reference in New Issue