toulouse-maelis: return recurrent week pattern from subscription data (#74438)
This commit is contained in:
parent
de5ebe8316
commit
cb46e3049e
|
@ -2666,7 +2666,34 @@ class ToulouseMaelis(BaseResource, HTTPResource):
|
|||
},
|
||||
'dateRef': ref_date,
|
||||
}
|
||||
return {'data': self.call('Activity', 'getPersonUnitInfo', getPersonUnitInfoRequestBean=params)}
|
||||
response = self.call('Activity', 'getPersonUnitInfo', getPersonUnitInfoRequestBean=params)
|
||||
|
||||
day_names = ['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche']
|
||||
recurrent_week = []
|
||||
weekly_calendar = response['weeklyCalendarActivity']
|
||||
if response['calendarGeneration'].get('value') in ('O', 'F') and weekly_calendar:
|
||||
units = []
|
||||
for item in response.get('unitScheduleList') or []:
|
||||
key = item['unit']['calendarLetter']
|
||||
value = item['unit']['libelle']
|
||||
units.append((key, value))
|
||||
|
||||
for item in weekly_calendar.get('dayWeekInfoList') or []:
|
||||
if item['isOpen']:
|
||||
day_num = item['dayNum']
|
||||
day = day_names[day_num - 1]
|
||||
for key, value in units:
|
||||
recurrent_week.append(
|
||||
{
|
||||
'id': '%s-%s' % (day_num, key),
|
||||
'day': day,
|
||||
'label': value,
|
||||
'overlaps': ['%s-%s' % (day_num, k) for k, v in units if k != key],
|
||||
'text': '%s %s' % (day, value),
|
||||
}
|
||||
)
|
||||
response['recurrent_week'] = recurrent_week
|
||||
return {'data': response}
|
||||
|
||||
@endpoint(
|
||||
display_category='Inscriptions',
|
||||
|
@ -2699,6 +2726,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
|
|||
'idPlace': post_data['place_id'],
|
||||
'dateStartSubscribe': post_data['start_date'],
|
||||
'dateEndSubscribe': post_data['end_date'],
|
||||
'dayWeekInfoList': recurrent_week,
|
||||
}
|
||||
}
|
||||
response = self.call('Activity', 'addPersonUnitBasket', **payload)
|
||||
|
|
|
@ -5694,6 +5694,7 @@ def test_get_person_subscription_info(activity_service, con, app):
|
|||
'billingInformation': None,
|
||||
'action': 'ADD_SUBSCRIBE',
|
||||
'indicatorList': [],
|
||||
'recurrent_week': [],
|
||||
}
|
||||
|
||||
# no date provided
|
||||
|
@ -5814,6 +5815,60 @@ def test_get_person_subscription_info_with_recurrent_week(activity_service, con,
|
|||
'billingInformation': None,
|
||||
'action': 'ADD_SUBSCRIBE',
|
||||
'indicatorList': [],
|
||||
'recurrent_week': [
|
||||
{'id': '1-C', 'day': 'Lundi', 'label': 'Journée', 'overlaps': ['1-B'], 'text': 'Lundi Journée'},
|
||||
{
|
||||
'id': '1-B',
|
||||
'day': 'Lundi',
|
||||
'label': 'Demi-journée',
|
||||
'overlaps': ['1-C'],
|
||||
'text': 'Lundi Demi-journée',
|
||||
},
|
||||
{'id': '2-C', 'day': 'Mardi', 'label': 'Journée', 'overlaps': ['2-B'], 'text': 'Mardi Journée'},
|
||||
{
|
||||
'id': '2-B',
|
||||
'day': 'Mardi',
|
||||
'label': 'Demi-journée',
|
||||
'overlaps': ['2-C'],
|
||||
'text': 'Mardi Demi-journée',
|
||||
},
|
||||
{
|
||||
'id': '3-C',
|
||||
'day': 'Mercredi',
|
||||
'label': 'Journée',
|
||||
'overlaps': ['3-B'],
|
||||
'text': 'Mercredi Journée',
|
||||
},
|
||||
{
|
||||
'id': '3-B',
|
||||
'day': 'Mercredi',
|
||||
'label': 'Demi-journée',
|
||||
'overlaps': ['3-C'],
|
||||
'text': 'Mercredi Demi-journée',
|
||||
},
|
||||
{'id': '4-C', 'day': 'Jeudi', 'label': 'Journée', 'overlaps': ['4-B'], 'text': 'Jeudi Journée'},
|
||||
{
|
||||
'id': '4-B',
|
||||
'day': 'Jeudi',
|
||||
'label': 'Demi-journée',
|
||||
'overlaps': ['4-C'],
|
||||
'text': 'Jeudi Demi-journée',
|
||||
},
|
||||
{
|
||||
'id': '5-C',
|
||||
'day': 'Vendredi',
|
||||
'label': 'Journée',
|
||||
'overlaps': ['5-B'],
|
||||
'text': 'Vendredi Journée',
|
||||
},
|
||||
{
|
||||
'id': '5-B',
|
||||
'day': 'Vendredi',
|
||||
'label': 'Demi-journée',
|
||||
'overlaps': ['5-C'],
|
||||
'text': 'Vendredi Demi-journée',
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
# no date provided
|
||||
|
|
Loading…
Reference in New Issue