passerelle/passerelle/contrib/toulouse_maelis/tools/get_person_catalogue_activi...

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())