94 lines
3.5 KiB
Python
Executable File
94 lines
3.5 KiB
Python
Executable File
#!/usr/bin/python3
|
|
|
|
import argparse
|
|
import json
|
|
|
|
import utils
|
|
from zeep.helpers import serialize_object
|
|
|
|
FAMILY_ID = '322573' # NICO
|
|
PERSON_ID = '263781' # BART
|
|
|
|
|
|
def check(args):
|
|
utils.configure_logging(args.verbose)
|
|
client = utils.get_client(args.env, 'Activity')
|
|
|
|
results = client.service.getPersonCatalogueActivity(
|
|
getPersonCatalogueActivityRequestBean={
|
|
'numDossier': args.family,
|
|
'numPerson': args.person,
|
|
# facultatif, pour fitrer sur une nature d'activité
|
|
#'codeNatureActivity': None, # 'P' ou 'V'
|
|
# facultatif, ne fait que retirer des lignes
|
|
#'yearSchool': '2022', # aucune influence ici
|
|
#'dateStartActivity': '2022-09-01',
|
|
#'dateEndActivity': '2023-08-01',
|
|
}
|
|
)
|
|
|
|
if args.dump:
|
|
print(json.dumps(serialize_object(results), cls=utils.DjangoJSONEncoder, indent=2))
|
|
return
|
|
|
|
for activity in results['catalogueActivityList']:
|
|
if args.nature:
|
|
if args.nature.lower() == 'loisir':
|
|
if activity['activity']['activityType'] and activity['activity']['activityType'][
|
|
'natureSpec'
|
|
]['code'] in ['A', 'R', 'X']:
|
|
continue
|
|
elif args.nature and not (
|
|
activity['activity']['activityType']
|
|
and activity['activity']['activityType']['natureSpec']['code'] == args.nature
|
|
):
|
|
continue
|
|
|
|
print(
|
|
'* %s / %s'
|
|
% ( # / %s' % (
|
|
activity['activity']['idActivity'],
|
|
activity['activity']['libelle1'],
|
|
# activity['activity']['libelle2'],
|
|
)
|
|
)
|
|
|
|
# print(' calendarGeneration: %s' % activity['activity']['calendarGeneration']['code'])
|
|
if activity['activity']['activityType']:
|
|
print(
|
|
' type: %s / %s'
|
|
% (
|
|
activity['activity']['activityType']['code'],
|
|
activity['activity']['activityType']['natureSpec']['code'],
|
|
)
|
|
)
|
|
else:
|
|
print("' type: no activity type")
|
|
# print(' weeklyCalendarActivityList: %s' %
|
|
# bool('weeklyCalendarActivityList' in activity['activity']))
|
|
# print(' openDayList: %s' % len(activity['openDayList']))
|
|
|
|
for unit in activity['unitInfoList']:
|
|
print(' * %s / %s' % (unit['idUnit'], unit['libelle']))
|
|
print(' start: %s' % (unit['dateStart'].strftime('%Y-%m-%d')))
|
|
print(' end: %s' % (unit['dateEnd'].strftime('%Y-%m-%d')))
|
|
|
|
# print(' places: %s' % len(unit['placeInfoList']))
|
|
for item in unit['placeInfoList']:
|
|
place = item['place']
|
|
print(
|
|
' * %s / %s: (x/y: %s/%s)'
|
|
% (place['idPlace'], place['lib1'], place['longitude'], place['latitude'])
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('--verbose', '-v', type=int, default=2, help='display errors')
|
|
parser.add_argument('--env', '-e', default='integ', help='dev, test, integ, prod')
|
|
parser.add_argument('--dump', '-d', default=False, action='store_true', help='dump')
|
|
parser.add_argument('--family', '-f', default=FAMILY_ID, help='family id')
|
|
parser.add_argument('--person', '-P', default=PERSON_ID, help='person id')
|
|
parser.add_argument('--nature', '-n', default=None, help='code nature, ex: "X"')
|
|
check(parser.parse_args())
|