toulouse-maelis: acces aux catalogue annuel complet des activités (#73730) #51
|
@ -14,6 +14,7 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import base64
|
||||
import copy
|
||||
import datetime
|
||||
from operator import itemgetter
|
||||
from urllib.parse import urljoin
|
||||
|
@ -169,6 +170,26 @@ class ToulouseMaelis(BaseResource, HTTPResource):
|
|||
data = self.get_referential_data('Activity', referential_name)
|
||||
self.update_referential(referential_name, data, id_key, text_key)
|
||||
|
||||
# put activity catalog per year as referential
|
||||
data = []
|
||||
reference_year = utils.get_reference_year_from_date(datetime.date.today())
|
||||
for year in range(reference_year, reference_year + 1):
|
||||
response = self.call(
|
||||
'Activity',
|
||||
'readActivityList',
|
||||
schoolyear=year,
|
||||
dateStartCalend='%s-09-01' % year,
|
||||
dateEndCalend='%s-09-01' % (year + 1),
|
||||
)
|
||||
data.append(
|
||||
{
|
||||
'id': str(year),
|
||||
'text': '%s-%s' % (year, year + 1),
|
||||
'data': serialize_object(response),
|
||||
}
|
||||
)
|
||||
self.update_referential('ActivityCatalog', data, 'id', 'text')
|
||||
|
||||
def update_ape_referentials(self):
|
||||
for referential_name in ('ApeIndicator',):
|
||||
id_key, text_key = 'level', 'level'
|
||||
|
@ -2143,6 +2164,107 @@ class ToulouseMaelis(BaseResource, HTTPResource):
|
|||
response = self.call('Family', 'presubscribeSchoolSibling', **post_data)
|
||||
return {'data': serialize_object(response)}
|
||||
|
||||
@endpoint(
|
||||
display_category='Inscriptions',
|
||||
description="Catalogue des activités loisir",
|
||||
name='read-activity-list',
|
||||
perm='can_access',
|
||||
parameters={
|
||||
'ref_date': {
|
||||
'description': "Date de référence, utilisée pour déduire l'année scolaire",
|
||||
'type': 'date',
|
||||
},
|
||||
},
|
||||
)
|
||||
def read_activity_list(self, request, ref_date):
|
||||
reference_year = utils.get_reference_year_from_date(ref_date)
|
||||
labels = {
|
||||
'nature': "Nature de l'activité",
|
||||
'type': "Type d'activité",
|
||||
'public': 'Public',
|
||||
'day': 'Jours',
|
||||
}
|
||||
day_names = ['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche']
|
||||
all_criterias = {key: {'text': value, 'data': {}} for key, value in labels.items()}
|
||||
criterias = {key: {'text': value, 'data': {}} for key, value in labels.items()}
|
||||
catalogs = self.get_referential('ActivityCatalog', id=reference_year)
|
||||
activities = catalogs[0]['data'] if catalogs else []
|
||||
|
||||
def add_criteria(label_key, criteria_key, criteria_value):
|
||||
criterias[label_key]['data'][criteria_key] = criteria_value
|
||||
if criteria_key not in all_criterias[label_key]['data']:
|
||||
all_criterias[label_key]['data'][criteria_key] = criteria_value
|
||||
|
||||
def update_criterias_order_field(criterias_dict, label_keys=None):
|
||||
if not label_keys:
|
||||
label_keys = criterias_dict.keys()
|
||||
for label_key in label_keys:
|
||||
if label_key in ('public', 'day'):
|
||||
criterias_dict[label_key]['order'] = sorted(x for x in criterias_dict[label_key]['data'])
|
||||
else:
|
||||
criterias_dict[label_key]['order'] = [
|
||||
x[0]
|
||||
for x in sorted(criterias_dict[label_key]['data'].items(), key=lambda x: x[1].lower())
|
||||
]
|
||||
|
||||
data = []
|
||||
for activity in activities:
|
||||
if activity['activityPortail']['activityType']['natureSpec']['code'] not in ('P', 'L', 'S'):
|
||||
continue
|
||||
activity['id'] = activity['activityPortail']['idAct']
|
||||
activity['text'] = activity['activityPortail']['libelle']
|
||||
activity_type = activity['activityPortail']['activityType']
|
||||
activity_nature = activity_type['natureSpec']
|
||||
|
||||
for label_key in criterias:
|
||||
criterias[label_key]['data'] = {}
|
||||
add_criteria('nature', activity_nature['code'], activity_nature['libelle'])
|
||||
add_criteria('type', activity_type['code'], activity_type['libelle'])
|
||||
|
||||
if activity['activityPortail']['weeklyCalendarActivityList']:
|
||||
for day in activity['activityPortail']['weeklyCalendarActivityList'][0]['dayWeekInfoList']:
|
||||
if day['isOpen']:
|
||||
add_criteria('day', str(day['dayNum']), day_names[day['dayNum'] - 1])
|
||||
|
||||
update_criterias_order_field(criterias, ['nature', 'type', 'day'])
|
||||
|
||||
for unit in activity.pop('unitPortailList'):
|
||||
unit['id'] = unit['idUnit']
|
||||
unit['text'] = unit['libelle']
|
||||
|
||||
criterias['public']['data'] = {}
|
||||
for key, value in utils.get_public_criterias(
|
||||
datetime.date.today(), unit['birthDateStart'], unit['birthDateEnd']
|
||||
):
|
||||
add_criteria('public', key, value)
|
||||
|
||||
update_criterias_order_field(criterias, ['public'])
|
||||
|
||||
for place in unit.pop('placeList'):
|
||||
place['id'] = place['id']
|
||||
place['text'] = place['lib2'] or place['lib']
|
||||
|
||||
data.append(
|
||||
{
|
||||
'id': '%s-%s-%s' % (activity['id'], unit['id'], place['id']),
|
||||
'text': '%s, %s, %s' % (activity['text'], unit['text'], place['text']),
|
||||
'activity': activity,
|
||||
'unit': unit,
|
||||
'place': place,
|
||||
'criterias': copy.deepcopy(criterias),
|
||||
}
|
||||
)
|
||||
|
||||
update_criterias_order_field(all_criterias)
|
||||
return {
|
||||
'data': data,
|
||||
'meta': {
|
||||
'reference_year': reference_year,
|
||||
'all_criterias': all_criterias,
|
||||
'all_criterias_order': ['nature', 'type', 'public', 'day'],
|
||||
},
|
||||
}
|
||||
|
||||
@endpoint(
|
||||
display_category='Inscriptions',
|
||||
description="Catalogue des activités d'une personne",
|
||||
|
|
|
@ -13,6 +13,11 @@
|
|||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from math import inf
|
||||
|
||||
from dateutil.relativedelta import relativedelta
|
||||
from django.utils.dateparse import parse_date
|
||||
|
||||
json_date_format = '%Y-%m-%d'
|
||||
|
||||
|
||||
|
@ -21,3 +26,25 @@ def get_reference_year_from_date(some_date):
|
|||
# between january and august, reference year is the year just before
|
||||
return some_date.year - 1
|
||||
return some_date.year
|
||||
|
||||
|
||||
def get_public_criterias(today, start_dob, end_dob):
|
||||
publics_txt = [
|
||||
'Petit enfant (- de 3 ans)',
|
||||
'Enfant (3-11 ans)',
|
||||
'Ado (12-17 ans)',
|
||||
'Jeune (18-25 ans)',
|
||||
'Adulte (26-59 ans)',
|
||||
'Sénior (60 ans et plus)',
|
||||
]
|
||||
ages = [0, 3, 12, 18, 26, 60, 62]
|
||||
|
||||
data = []
|
||||
max_age = relativedelta(today, parse_date(start_dob[:10])).years if start_dob else inf
|
||||
min_age = relativedelta(today, parse_date(end_dob[:10])).years if end_dob else 0
|
||||
for i in range(0, len(ages) - 1):
|
||||
for age in range(ages[i], ages[i + 1] - 1):
|
||||
if min_age <= age <= max_age:
|
||||
data.append((str(i), publics_txt[i]))
|
||||
break
|
||||
return data
|
||||
|
|
|
@ -0,0 +1,630 @@
|
|||
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
||||
<soap:Body>
|
||||
<ns2:readActivityListResponse xmlns:ns2="activity.ws.maelis.sigec.com" xmlns:ns3="bean.persistence.activity.ws.maelis.sigec.com">
|
||||
<ReadActivityPortailListResultBean>
|
||||
<activityUnitPlacePortailList>
|
||||
<activityPortail>
|
||||
<idAct>A10051141965</idAct>
|
||||
<libelle>Vitrail Fusing 1/2 Je Adultes 2022/2023 - Mardi 14h-17h</libelle>
|
||||
<dateStart>2022-09-01T00:00:00+02:00</dateStart>
|
||||
<dateEnd>2023-06-30T00:00:00+02:00</dateEnd>
|
||||
<birthControl>N</birthControl>
|
||||
<schoolYear>2022</schoolYear>
|
||||
<calendarGeneration>
|
||||
<code>FORBIDDEN</code>
|
||||
<value>I</value>
|
||||
</calendarGeneration>
|
||||
<calendarMode>C</calendarMode>
|
||||
<activityType>
|
||||
<code>LOI_ADU</code>
|
||||
<libelle>Loisirs Adultes</libelle>
|
||||
<natureSpec>
|
||||
<code>P</code>
|
||||
<libelle>Loisirs</libelle>
|
||||
</natureSpec>
|
||||
</activityType>
|
||||
<weeklyCalendarActivityList>
|
||||
<yearCalendar>2022</yearCalendar>
|
||||
<dayWeekInfoList>
|
||||
<dayNum>1</dayNum>
|
||||
<isOpen>false</isOpen>
|
||||
</dayWeekInfoList>
|
||||
<dayWeekInfoList>
|
||||
<dayNum>2</dayNum>
|
||||
<isOpen>true</isOpen>
|
||||
</dayWeekInfoList>
|
||||
<dayWeekInfoList>
|
||||
<dayNum>3</dayNum>
|
||||
<isOpen>false</isOpen>
|
||||
</dayWeekInfoList>
|
||||
<dayWeekInfoList>
|
||||
<dayNum>4</dayNum>
|
||||
<isOpen>false</isOpen>
|
||||
</dayWeekInfoList>
|
||||
<dayWeekInfoList>
|
||||
<dayNum>5</dayNum>
|
||||
<isOpen>false</isOpen>
|
||||
</dayWeekInfoList>
|
||||
<dayWeekInfoList>
|
||||
<dayNum>6</dayNum>
|
||||
<isOpen>false</isOpen>
|
||||
</dayWeekInfoList>
|
||||
<dayWeekInfoList>
|
||||
<dayNum>7</dayNum>
|
||||
<isOpen>false</isOpen>
|
||||
</dayWeekInfoList>
|
||||
</weeklyCalendarActivityList>
|
||||
<weeklyCalendarActivityList>
|
||||
<yearCalendar>2023</yearCalendar>
|
||||
<dayWeekInfoList>
|
||||
<dayNum>1</dayNum>
|
||||
<isOpen>false</isOpen>
|
||||
</dayWeekInfoList>
|
||||
<dayWeekInfoList>
|
||||
<dayNum>2</dayNum>
|
||||
<isOpen>true</isOpen>
|
||||
</dayWeekInfoList>
|
||||
<dayWeekInfoList>
|
||||
<dayNum>3</dayNum>
|
||||
<isOpen>true</isOpen>
|
||||
</dayWeekInfoList>
|
||||
<dayWeekInfoList>
|
||||
<dayNum>4</dayNum>
|
||||
<isOpen>true</isOpen>
|
||||
</dayWeekInfoList>
|
||||
<dayWeekInfoList>
|
||||
<dayNum>5</dayNum>
|
||||
<isOpen>false</isOpen>
|
||||
</dayWeekInfoList>
|
||||
<dayWeekInfoList>
|
||||
<dayNum>6</dayNum>
|
||||
<isOpen>false</isOpen>
|
||||
</dayWeekInfoList>
|
||||
<dayWeekInfoList>
|
||||
<dayNum>7</dayNum>
|
||||
<isOpen>false</isOpen>
|
||||
</dayWeekInfoList>
|
||||
</weeklyCalendarActivityList>
|
||||
</activityPortail>
|
||||
<openDayList>2022-12-06T00:00:00+01:00</openDayList>
|
||||
<openDayList>2022-12-13T00:00:00+01:00</openDayList>
|
||||
<openDayList>2022-12-20T00:00:00+01:00</openDayList>
|
||||
<openDayList>2022-12-27T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-01-03T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-01-04T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-01-05T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-01-10T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-01-11T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-01-12T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-01-17T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-01-18T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-01-19T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-01-24T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-01-25T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-01-26T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-01-31T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-02-01T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-02-02T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-02-07T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-02-08T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-02-09T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-02-14T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-02-15T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-02-16T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-02-21T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-02-22T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-02-23T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-02-28T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-03-01T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-03-02T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-03-07T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-03-08T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-03-09T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-03-14T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-03-15T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-03-16T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-03-21T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-03-22T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-03-23T00:00:00+01:00</openDayList>
|
||||
<openDayList>2023-03-28T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-03-29T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-03-30T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-04-04T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-04-05T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-04-06T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-04-11T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-04-12T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-04-13T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-04-19T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-04-20T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-04-25T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-04-26T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-04-27T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-05-02T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-05-03T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-05-04T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-05-09T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-05-10T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-05-11T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-05-16T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-05-17T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-05-18T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-05-23T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-05-24T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-05-25T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-05-30T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-05-31T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-06-01T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-06-07T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-06-08T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-06-13T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-06-14T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-06-15T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-06-20T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-06-21T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-06-22T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-06-27T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-06-28T00:00:00+02:00</openDayList>
|
||||
<openDayList>2023-06-29T00:00:00+02:00</openDayList>
|
||||
<unitPortailList>
|
||||
<idUnit>A10051141966</idUnit>
|
||||
<libelle>Vitrail Fusing 1/2 Je Adultes 2022/2023 - Mardi 14h-17h</libelle>
|
||||
<dateStart>2022-09-01T00:00:00+02:00</dateStart>
|
||||
<dateEnd>2023-06-30T00:00:00+02:00</dateEnd>
|
||||
<calendarLetter>X</calendarLetter>
|
||||
<subscribePublication>L</subscribePublication>
|
||||
<numOrder>0</numOrder>
|
||||
<calendarPublication>E</calendarPublication>
|
||||
<recordAbsence>O</recordAbsence>
|
||||
<placeList>
|
||||
<id>A10053179226</id>
|
||||
<lib>Centre Culturel ALBAN MINVILLE</lib>
|
||||
<adresse>
|
||||
<num>0</num>
|
||||
</adresse>
|
||||
</placeList>
|
||||
</unitPortailList>
|
||||
<unitPortailList>
|
||||
<idUnit>A10051141968</idUnit>
|
||||
<libelle>Inscription annuelle</libelle>
|
||||
<dateStart>2022-09-01T00:00:00+02:00</dateStart>
|
||||
<dateEnd>2023-06-30T00:00:00+02:00</dateEnd>
|
||||
<calendarLetter>B</calendarLetter>
|
||||
<subscribePublication>E</subscribePublication>
|
||||
<numOrder>0</numOrder>
|
||||
<calendarPublication>L</calendarPublication>
|
||||
<recordAbsence>N</recordAbsence>
|
||||
<calendList>
|
||||
<dateConso>2023-01-03T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-01-02T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-01-02T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-01-10T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-01-09T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-01-09T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-01-17T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-01-16T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-01-16T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-01-24T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-01-23T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-01-23T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-01-31T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-01-30T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-01-30T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-02-07T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-02-06T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-02-06T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-02-14T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-02-13T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-02-13T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-02-21T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-02-20T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-02-20T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-02-28T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-02-27T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-02-27T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-03-07T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-03-06T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-03-06T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-03-14T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-03-13T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-03-13T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-03-21T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-03-20T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-03-20T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-03-28T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-03-27T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-03-27T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-04-04T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-04-03T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-04-03T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-04-11T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-04-10T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-04-10T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-04-25T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-01-15T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-04-24T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-04-24T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-05-02T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-01-22T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-05-01T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-05-01T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-05-09T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-01-29T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-05-08T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-05-08T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-05-16T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-02-05T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-05-15T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-05-15T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-05-23T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-02-12T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-05-22T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-05-22T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-05-30T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-02-19T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-05-29T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-05-29T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-06-13T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-03-05T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-06-12T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-06-12T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-06-20T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-03-12T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-06-19T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-06-19T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-06-27T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-03-19T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-06-26T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-06-26T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<placeList>
|
||||
<id>A10053179226</id>
|
||||
<lib>Centre Culturel ALBAN MINVILLE</lib>
|
||||
<adresse>
|
||||
<num>0</num>
|
||||
</adresse>
|
||||
</placeList>
|
||||
</unitPortailList>
|
||||
<unitPortailList>
|
||||
<idUnit>A10051141970</idUnit>
|
||||
<libelle>Inscription 2ème semestre</libelle>
|
||||
<dateStart>2023-02-01T00:00:00+01:00</dateStart>
|
||||
<dateEnd>2023-06-30T00:00:00+02:00</dateEnd>
|
||||
<calendarLetter>C</calendarLetter>
|
||||
<subscribePublication>E</subscribePublication>
|
||||
<numOrder>0</numOrder>
|
||||
<calendarPublication>L</calendarPublication>
|
||||
<recordAbsence>O</recordAbsence>
|
||||
<calendList>
|
||||
<dateConso>2023-02-07T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-02-06T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-02-06T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-02-14T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-02-13T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-02-13T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-02-21T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-02-20T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-02-20T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-02-28T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-02-27T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-02-27T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-03-07T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-03-06T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-03-06T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-03-14T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-03-13T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-03-13T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-03-21T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-03-20T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-03-20T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-03-28T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-03-27T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-03-27T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-04-04T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-04-03T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-04-03T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-04-11T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-04-10T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-04-10T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-04-25T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-01-15T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-04-24T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-04-24T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-05-02T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-01-22T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-05-01T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-05-01T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-05-09T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-01-29T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-05-08T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-05-08T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-05-16T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-02-05T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-05-15T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-05-15T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-05-23T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-02-12T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-05-22T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-05-22T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-05-30T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-02-19T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-05-29T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-05-29T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-06-13T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-03-05T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-06-12T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-06-12T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-06-20T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-03-12T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-06-19T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-06-19T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-06-27T00:00:00+02:00</dateConso>
|
||||
<dateMin>2023-03-19T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-06-26T23:59:00+02:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-06-26T23:59:00+02:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<placeList>
|
||||
<id>A10053179226</id>
|
||||
<lib>Centre Culturel ALBAN MINVILLE</lib>
|
||||
<adresse>
|
||||
<num>0</num>
|
||||
</adresse>
|
||||
</placeList>
|
||||
</unitPortailList>
|
||||
<unitPortailList>
|
||||
<idUnit>A10051141990</idUnit>
|
||||
<libelle>Inscription 1er semestre</libelle>
|
||||
<dateStart>2022-09-01T00:00:00+02:00</dateStart>
|
||||
<dateEnd>2023-01-31T00:00:00+01:00</dateEnd>
|
||||
<calendarLetter>F</calendarLetter>
|
||||
<subscribePublication>E</subscribePublication>
|
||||
<dateEndSubscribe>2023-01-21T00:00:00+01:00</dateEndSubscribe>
|
||||
<numOrder>0</numOrder>
|
||||
<calendarPublication>L</calendarPublication>
|
||||
<recordAbsence>N</recordAbsence>
|
||||
<calendList>
|
||||
<dateConso>2023-01-03T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-01-02T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-01-02T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-01-10T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-01-09T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-01-09T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-01-17T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-01-16T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-01-16T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-01-24T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-01-23T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-01-23T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<calendList>
|
||||
<dateConso>2023-01-31T00:00:00+01:00</dateConso>
|
||||
<dateMin>2023-01-01T00:00:00+01:00</dateMin>
|
||||
<dateMax>2023-01-30T23:59:00+01:00</dateMax>
|
||||
<dateMinVisu>2023-01-01T00:00:00+01:00</dateMinVisu>
|
||||
<dateMaxVisu>2023-07-15T23:59:00+02:00</dateMaxVisu>
|
||||
<dateMaxMajPrev>2023-01-30T23:59:00+01:00</dateMaxMajPrev>
|
||||
</calendList>
|
||||
<placeList>
|
||||
<id>A10053179226</id>
|
||||
<lib>Centre Culturel ALBAN MINVILLE</lib>
|
||||
<adresse>
|
||||
<num>0</num>
|
||||
</adresse>
|
||||
</placeList>
|
||||
</unitPortailList>
|
||||
</activityUnitPlacePortailList>
|
||||
</ReadActivityPortailListResultBean>
|
||||
</ns2:readActivityListResponse>
|
||||
</soap:Body>
|
||||
</soap:Envelope>
|
|
@ -21,10 +21,12 @@ from unittest import mock
|
|||
|
||||
import pytest
|
||||
import responses
|
||||
from django.utils.dateparse import parse_date
|
||||
from requests.exceptions import ConnectionError
|
||||
from zeep import Settings
|
||||
|
||||
from passerelle.contrib.toulouse_maelis.models import Link, Referential, ToulouseMaelis
|
||||
from passerelle.contrib.toulouse_maelis.utils import get_public_criterias, json_date_format
|
||||
from passerelle.utils.jsonresponse import APIError
|
||||
from passerelle.utils.soap import SOAPError
|
||||
from tests.utils import FakedResponse, ResponsesSoap, generic_endpoint_url, setup_access_rights
|
||||
|
@ -186,6 +188,7 @@ def django_db_setup(django_db_setup, django_db_blocker):
|
|||
activity_mock.add_soap_response(
|
||||
'readActivityNatureTypeList', get_xml_file('R_read_activity_nature_type_list.xml')
|
||||
)
|
||||
activity_mock.add_soap_response('readActivityList', get_xml_file('R_read_activity_list.xml'))
|
||||
con.update_activity_referentials()
|
||||
|
||||
with ape_service() as ape_mock:
|
||||
|
@ -351,6 +354,7 @@ def test_update_referential(mocked_get, con):
|
|||
def test_cron(db):
|
||||
assert Referential.objects.filter(referential_name='Category').count() == 3
|
||||
assert sorted(list({x.referential_name for x in Referential.objects.all()})) == [
|
||||
'ActivityCatalog',
|
||||
'ActivityNatureType',
|
||||
'ApeIndicator',
|
||||
'CSP',
|
||||
|
@ -4691,6 +4695,92 @@ def test_create_child_school_pre_registration_with_sibling(family_service, con,
|
|||
assert resp.json['data']['derogComment'] == 'SERGHEI3 LISA'
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
'start_dob, end_dob, expected',
|
||||
[
|
||||
(
|
||||
None,
|
||||
None,
|
||||
[
|
||||
'Petit enfant (- de 3 ans)',
|
||||
'Enfant (3-11 ans)',
|
||||
'Ado (12-17 ans)',
|
||||
'Jeune (18-25 ans)',
|
||||
'Adulte (26-59 ans)',
|
||||
'Sénior (60 ans et plus)',
|
||||
],
|
||||
),
|
||||
('2011-01-01', '2020-12-31', ['Enfant (3-11 ans)', 'Ado (12-17 ans)']),
|
||||
('2011-01-01', '2015-12-31', ['Enfant (3-11 ans)', 'Ado (12-17 ans)']),
|
||||
('1900-01-01', '1963-01-01', ['Sénior (60 ans et plus)']),
|
||||
('1963-01-02', '1997-01-01', ['Adulte (26-59 ans)']),
|
||||
('1997-01-02', '2005-01-01', ['Jeune (18-25 ans)']),
|
||||
('2005-01-02', '2011-01-01', ['Ado (12-17 ans)']),
|
||||
('2011-01-02', '2020-01-01', ['Enfant (3-11 ans)']),
|
||||
('2020-01-02', '2023-01-01', ['Petit enfant (- de 3 ans)']),
|
||||
],
|
||||
)
|
||||
def test_get_public_criterias(start_dob, end_dob, expected):
|
||||
today = parse_date('2023-01-01')
|
||||
result = get_public_criterias(today, start_dob, end_dob)
|
||||
assert expected == [x[1] for x in result]
|
||||
|
||||
|
||||
def test_read_activity_list(con, app, freezer):
|
||||
freezer.move_to('2023-01-01 12:00')
|
||||
url = get_endpoint('read-activity-list')
|
||||
|
||||
params = {'ref_date': datetime.date.today().strftime(json_date_format)}
|
||||
resp = app.get(url, params=params)
|
||||
assert resp.json['err'] == 0
|
||||
item = resp.json['data'][0]
|
||||
item['activity'] = 'N/A'
|
||||
item['unit'] = 'N/A'
|
||||
item['place'] = 'N/A'
|
||||
assert item == {
|
||||
'id': 'A10051141965-A10051141966-A10053179226',
|
||||
'text': 'Vitrail Fusing 1/2 Je Adultes 2022/2023'
|
||||
+ ' - Mardi 14h-17h, Vitrail Fusing 1/2 Je Adultes 2022/2023'
|
||||
+ ' - Mardi 14h-17h, Centre Culturel ALBAN MINVILLE',
|
||||
'activity': 'N/A',
|
||||
'unit': 'N/A',
|
||||
'place': 'N/A',
|
||||
'criterias': {
|
||||
'nature': {'text': "Nature de l'activité", 'data': {'P': 'Loisirs'}, 'order': ['P']},
|
||||
'type': {'text': "Type d'activité", 'data': {'LOI_ADU': 'Loisirs Adultes'}, 'order': ['LOI_ADU']},
|
||||
'public': {
|
||||
'text': 'Public',
|
||||
'data': {
|
||||
'0': 'Petit enfant (- de 3 ans)',
|
||||
'1': 'Enfant (3-11 ans)',
|
||||
'2': 'Ado (12-17 ans)',
|
||||
'3': 'Jeune (18-25 ans)',
|
||||
'4': 'Adulte (26-59 ans)',
|
||||
'5': 'Sénior (60 ans et plus)',
|
||||
},
|
||||
'order': ['0', '1', '2', '3', '4', '5'],
|
||||
},
|
||||
'day': {'text': 'Jours', 'data': {'2': 'Mardi'}, 'order': ['2']},
|
||||
},
|
||||
}
|
||||
|
||||
resp = app.get(url + '?ref_date=1970-01-01')
|
||||
assert resp.json == {
|
||||
'data': [],
|
||||
'meta': {
|
||||
'reference_year': 1969,
|
||||
'all_criterias': {
|
||||
'nature': {'text': "Nature de l'activité", 'data': {}, 'order': []},
|
||||
'type': {'text': "Type d'activité", 'data': {}, 'order': []},
|
||||
'public': {'text': 'Public', 'data': {}, 'order': []},
|
||||
'day': {'text': 'Jours', 'data': {}, 'order': []},
|
||||
},
|
||||
'all_criterias_order': ['nature', 'type', 'public', 'day'],
|
||||
},
|
||||
'err': 0,
|
||||
}
|
||||
|
||||
|
||||
def test_get_person_activity_list(activity_service, con, app):
|
||||
def request_check(request):
|
||||
assert request.yearSchool == 2022
|
||||
|
|
Loading…
Reference in New Issue