def chois_verif_abs(_req): # Imports from app.forms.gest_abs import FiltrerVerificationAbsences from app.functions import init_form from app.functions import prep_dtab from app.models import TUtilisateur from django.http import HttpResponse from django.shortcuts import render import json output = None # Obtention d'une instance TUtilisateur obj_util = TUtilisateur.objects.get(pk=_req.user.pk) if _req.method == 'GET': # Initialisation du formulaire form_filtr_verif_abs = FiltrerVerificationAbsences(kw_util=obj_util) # Affichage du template output = render( _req, './gest_abs/chois_verif_abs.html', { 'dtab_filtr_verif_abs': form_filtr_verif_abs.init_dtab(_req), 'form_filtr_verif_abs': init_form(form_filtr_verif_abs), 'title': 'Choisir une absence en attente' }) else: # Soumission du formulaire form_filtr_verif_abs = FiltrerVerificationAbsences(_req.POST, kw_util=obj_util) # Rafraîchissement de la datatable ou affichage des erreurs if form_filtr_verif_abs.is_valid(): output = prep_dtab(form_filtr_verif_abs.init_dtab(_req)) else: output = HttpResponse(json.dumps(form_filtr_verif_abs.errors), content_type='application/json') return output
def chois_agent(_req): # Imports from app.forms.gest_agents import FiltrerAgents from app.functions import init_form from app.functions import prep_dtab from app.models import TUtilisateur from django.http import HttpResponse from django.shortcuts import render import json output = None if _req.method == 'GET': # Initialisation du formulaire form_filtr_agents = FiltrerAgents() # Affichage du template output = render( _req, './gest_agents/chois_agent.html', { 'dtab_filtr_agents': form_filtr_agents.init_dtab(_req), 'form_filtr_agents': init_form(form_filtr_agents), 'title': 'Choisir un agent' }) else: # Soumission du formulaire form_filtr_agents = FiltrerAgents(_req.POST) # Rafraîchissement de la datatable ou affichage des erreurs if form_filtr_agents.is_valid(): output = prep_dtab(form_filtr_agents.init_dtab(_req)) else: output = HttpResponse(json.dumps(form_filtr_agents.errors), content_type='application/json') return output
def consult_compte(_req): # Imports from app.forms.gest_agents import TrierTransactionsCetAgent from app.functions import init_consult from app.functions import init_fm from app.functions import init_form from app.functions import prep_dtab from app.functions import transform_bool from app.models import TUtilisateur from datetime import date from django.http import HttpResponse from django.shortcuts import render import json output = None # Obtention d'une instance TUtilisateur obj_util = TUtilisateur.objects.get(pk=_req.user.pk) if _req.method == 'GET': if 'action' in _req.GET: # Téléchargement de la fiche CET d'un agent if _req.GET['action'] == 'telecharger-cet-agent' and 'mode-de-tri' in _req.GET and \ 'historique' in _req.GET : hist_trans_cet_util = _req.GET['historique'] if hist_trans_cet_util: hist_trans_cet_util = int(hist_trans_cet_util) output = obj_util.get_fiche_cet(_req.GET['mode-de-tri'], hist_trans_cet_util) # Affichage des absences autorisées ou en attente if _req.GET[ 'action'] == 'consulter-absences' and 'annee' in _req.GET: output = prep_dtab(obj_util.get_tabl_abs(_req.GET['annee']), { 'modal_id': '#fm_consult_abs', 'modal_id_action': 'show' }) else: # Préparation des attributs disponibles en consultation tab_attrs_util = { 'courr_second_util': { 'label': 'Courriel secondaire', 'value': obj_util.get_courr_second_util() }, 'email': { 'label': 'Courriel principal', 'value': obj_util.get_email() }, 'email_auto_courr_princ': { 'label': 'Les notifications sont-elles envoyées sur le courriel principal ?', 'value': transform_bool(obj_util.get_email_auto_courr_princ()) }, 'email_auto_courr_second': { 'label': 'Les notifications sont-elles envoyées sur le courriel secondaire ?', 'value': transform_bool(obj_util.get_email_auto_courr_second()) }, 'en_act': { 'label': 'Êtes-vous en activité ?', 'value': transform_bool(obj_util.get_en_act()) }, 'first_name': { 'label': 'Prénom', 'value': obj_util.get_first_name() }, 'gpe_util': { 'label': 'Groupes d\'utilisateur', 'value': ', '.join( [str(gu) for gu in obj_util.get_gpe_util().all()]) }, 'last_name': { 'label': 'Nom de famille', 'value': obj_util.get_last_name() }, 'solde_cet_util': { 'label': 'Solde restant sur le compte épargne temps (CET)', 'value': obj_util.get_solde_cet_restant_util__str() }, 'type_util': { 'label': 'Quels sont les rôles assignés au compte ?', 'value': ', '.join( [str(tu) for tu in obj_util.get_type_util().all()]) }, 'username': { 'label': 'Nom d\'utilisateur', 'value': obj_util.get_username() } } # Initialisation des statuts agent tab_statut_util = [] for su in obj_util.get_statut_util_set().all(): # Détermination du statut agent actuel statut_util_actuel = False if date.today() > date(su.get_annee().get_pk(), su.get_mois_deb_statut_util(), 1): statut_util_actuel = True for elem in tab_statut_util: if elem['class']: elem['class'] = None tab_statut_util.append({ 'class': 'to-highlight' if statut_util_actuel == True else None, 'period_deb_statut_util': su.get_period_deb_statut_util(), 'pk': su.get_pk(), 'statut_util': su.get_statut_util__str() }) # Initialisation des décomptes agent tab_decompt_util = [{ 'annee': du.get_annee(), 'nbre_j_cp_autor': du.get_util().get_nbre_j_autor__str(True, du.get_annee().get_pk()), 'nbre_j_cp_base': du.get_nbre_j_cp_base__str(), 'nbre_j_cp_rest': du.get_util().get_nbre_j_rest__str(True, du.get_annee().get_pk()), 'nbre_j_cp_transf': du.get_util().get_nbre_j_transf__str(True, du.get_annee().get_pk()), 'nbre_j_rtt_autor': du.get_util().get_nbre_j_autor__str(False, du.get_annee().get_pk()), 'nbre_j_rtt_base': du.get_nbre_j_rtt_base__str(), 'nbre_j_rtt_rest': du.get_util().get_nbre_j_rest__str(False, du.get_annee().get_pk()), 'nbre_j_rtt_transf': du.get_util().get_nbre_j_transf__str(False, du.get_annee().get_pk()), } for du in obj_util.get_decompt_util_set().reverse()] # Initialisation du formulaire de tri des transactions d'un CET form_tri_trans_cet_util = TrierTransactionsCetAgent( kw_consult=True, kw_util=obj_util) # Affichage du template output = render( _req, './gest_compte/consult_compte.html', { 'dtab_tri_trans_cet_util': form_tri_trans_cet_util.init_dtab(_req), 'form_tri_trans_cet_util': init_form(form_tri_trans_cet_util), 'tab_attrs_util': init_consult(tab_attrs_util), 'tab_decompt_util': tab_decompt_util, 'tab_fm': [ init_fm( 'consult_abs', 'Consulter les absences autorisées ou en attente', obj_util.get_tabl_abs()) ], 'tab_statut_util': tab_statut_util, 'title': 'Consulter mon compte', }) else: # Traitement du cas où je dois rafraîchir la fiche CET d'un agent (altération du mode de tri) if _req.GET['action'] == 'trier-transactions-cet-agent': # Soumission du formulaire form_tri_trans_cet_util = TrierTransactionsCetAgent( _req.POST, kw_consult=True, kw_util=obj_util) # Rafraîchissement de la datatable ou affichage des erreurs if form_tri_trans_cet_util.is_valid(): output = prep_dtab(form_tri_trans_cet_util.init_dtab(_req)) else: output = HttpResponse(json.dumps( form_tri_trans_cet_util.errors), content_type='application/json') return output
def filtr_abs(_req, _gby) : # Imports from app.forms.real_etats import FiltrerAbsences from app.functions import gener_cdc from app.functions import init_fm from app.functions import init_form from app.functions import prep_dtab from app.functions import transform_bool from app.models import TAbsence from app.models import TUtilisateur from django.http import HttpResponse from django.shortcuts import render from django.template.context_processors import csrf import csv import json output = None # Initialisation du préfixe de chaque formulaire pref_filtr_abs = 'FiltrerAbsences' # Obtention d'une instance TUtilisateur obj_util = TUtilisateur.objects.get(pk = _req.user.pk) if _req.method == 'GET' : if 'action' in _req.GET : if _req.GET['action'] == 'exporter-csv' and 'group-by' in _req.GET \ and _req.GET['group-by'] in ['off', 'on'] : # Génération d'un fichier au format CSV output = HttpResponse(content_type = 'text/csv', charset = 'cp1252') output['Content-Disposition'] = 'attachment; filename="{0}.csv"'.format(gener_cdc()) # Accès en écriture writer = csv.writer(output, delimiter = ';') # Initialisation des données tab_lg = _req.session['filtr_abs'] if 'filtr_abs' in _req.session else [] # Définition de l'en-tête if _gby == False : header = [ 'Agent ayant émis l\'absence', 'Date d\'émission de l\'absence', 'Agent concerné', 'Type de l\'absence', 'Année', 'Date de l\'absence', 'Justificatif d\'absence', 'Commentaire (phase de pré-validation)', 'Agent ayant vérifié l\'absence', 'Date de vérification de l\'absence', 'L\'absence est-elle autorisée ?', 'Type final de l\'absence', 'Commentaire (phase de post-validation)' ] else : header = [ 'Nom complet de l\'agent/des agents', 'Type de l\'absence', 'Année de l\'absence', 'État de l\'absence', 'Nombre d\'absences', 'Nombre de jours d\'absence' ] # Ajout de l'en-tête writer.writerow(header) for elem in tab_lg : # Définition des données de la nouvelle ligne if _gby == False : # Obtention d'une instance TAbsence obj_abs = TAbsence.objects.get(pk = elem[0]) # Ajout des données "pré-validation" body = [ obj_abs.get_util_connect().get_nom_complet() if obj_abs.get_util_connect() else None, obj_abs.get_dt_emiss_abs__str(), obj_abs.get_util_emett().get_nom_complet(), obj_abs.get_type_abs(), obj_abs.get_annee(), obj_abs.get_dt_abs__fr_str(), _req.build_absolute_uri(str(obj_abs.get_pj_abs())) if obj_abs.get_pj_abs() else None, obj_abs.get_comm_abs() ] # Ajout des données "post-validation" si définies if obj_abs.get_verif_abs() : body += [ obj_abs.get_verif_abs().get_util_verif().get_nom_complet() \ if obj_abs.get_verif_abs().get_util_verif() else None, obj_abs.get_verif_abs().get_dt_verif_abs__str(), transform_bool(obj_abs.get_verif_abs().get_est_autor()), obj_abs.get_verif_abs().get_type_abs_final(), obj_abs.get_verif_abs().get_comm_verif_abs() ] else : body = elem # Ajout d'une nouvelle ligne writer.writerow(body) else : # Initialisation du formulaire et de ses attributs form_filtr_abs = FiltrerAbsences(prefix = pref_filtr_abs, kw_gby = _gby, kw_util = obj_util) _form_filtr_abs = init_form(form_filtr_abs) # Définition de l'attribut <title/> if _gby == False : title = 'Réalisation d\'états en sélectionnant des absences' else : title = 'Réalisation d\'états en regroupant des absences' # Initialisation des fenêtres modales tab_fm = [init_fm( 'filtr_abs', 'Filtrer les absences par', ''' <form action="" method="post" name="form_select_abs" onsubmit="trait_post(event);"> <input name="csrfmiddlewaretoken" type="hidden" value="{0}"> {1} <div class="row"> <div class="col-sm-6">{2}</div> <div class="col-sm-6">{3}</div> </div> <span class="theme-color">Période de début d'absence</span> <div class="row"> <div class="col-sm-6">{4}</div> <div class="col-sm-6">{5}</div> </div> {6} {7} {8} <button class="center-block custom-btn green-btn" type="submit">Valider</button> </form> '''.format( csrf(_req)['csrf_token'], _form_filtr_abs['zcc_util'], _form_filtr_abs['zl_type_abs'], _form_filtr_abs['zl_annee'], _form_filtr_abs['zd_dt_deb_abs'], _form_filtr_abs['zd_dt_fin_abs'], _form_filtr_abs['zl_etat_abs'], _form_filtr_abs['rb_gby'] if 'rb_gby' in _form_filtr_abs else '', _form_filtr_abs['zcc_ajout_select_exist'] ) )] # Affichage du template output = render(_req, './real_etats/filtr_abs.html', { 'dtab_filtr_abs' : form_filtr_abs.init_dtab(_req), 'form_filtr_abs' : init_form(form_filtr_abs), 'gby' : 'off' if _gby == False else 'on', 'tab_fm' : tab_fm, 'title' : title }) else : # Soumission du formulaire form_filtr_abs = FiltrerAbsences(_req.POST, prefix = pref_filtr_abs, kw_gby = _gby, kw_util = obj_util) # Rafraîchissement de la datatable ou affichage des erreurs if form_filtr_abs.is_valid() : output = prep_dtab(form_filtr_abs.init_dtab(_req), { 'modal_id' : '#fm_filtr_abs', 'modal_id_action' : 'hide' }) else : tab_errs = { '{0}-{1}'.format(pref_filtr_abs, cle) : val for cle, val in form_filtr_abs.errors.items() } output = HttpResponse(json.dumps(tab_errs), content_type = 'application/json') return output
def consult_agent(_req, _a): # Imports from app.forms.gest_agents import TrierTransactionsCetAgent from app.form_templates import get_ft_ger_statut_util from app.form_templates import get_ft_ger_trans_cet_util from app.forms.gest_agents import GererStatutAgent from app.forms.gest_agents import GererTransactionCetAgent from app.functions import affich_dem_suppr from app.functions import init_consult from app.functions import init_fm from app.functions import init_form from app.functions import prep_dtab from app.functions import transform_bool from app.models import TStatutsUtilisateur from app.models import TTransactionsCetUtilisateur from app.models import TUtilisateur from datetime import date from django.core.urlresolvers import reverse from django.http import HttpResponse from django.shortcuts import get_object_or_404 from django.shortcuts import render from django.template.context_processors import csrf import json output = None # Initialisation du préfixe de chaque formulaire pref_ajout_statut_agent = 'AjouterStatutAgent' pref_ajout_trans_cet_agent = 'AjouterTransactionCetAgent' pref_modif_statut_agent = 'ModifierStatutAgent' pref_modif_trans_cet_agent = 'ModifierTransactionCetAgent' # Tentative d'obtention d'une instance TUtilisateur obj_util = get_object_or_404(TUtilisateur, pk=_a) # Obtention d'une instance TUtilisateur obj_util_connect = TUtilisateur.objects.get(pk=_req.user.pk) if _req.method == 'GET': if 'action' in _req.GET: # Initialisation du formulaire de mise à jour d'un statut agent if _req.GET[ 'action'] == 'initialiser-formulaire-modification-statut-agent' and 'id' in _req.GET: # Initialisation du formulaire form_ger_statut_util = GererStatutAgent( prefix=pref_modif_statut_agent, instance=TStatutsUtilisateur.objects.get( pk=_req.GET['id']), kw_util=obj_util) # Affichage du formulaire output = HttpResponse(json.dumps({ 'success': { 'content': get_ft_ger_statut_util(_req, form_ger_statut_util) } }), content_type='application/json') # Affichage d'une demande de suppression d'un statut agent if _req.GET[ 'action'] == 'supprimer-statut-agent-etape-1' and 'id' in _req.GET: # Stockage en session du statut agent à supprimer _req.session['statut_util__pk'] = _req.GET['id'] # Affichage de la demande de suppression du statut agent output = HttpResponse(json.dumps({ 'success': { 'content': affich_dem_suppr( '?action=supprimer-statut-agent-etape-2', 'suppr_statut_util') } }), content_type='application/json') # Suppression d'un statut agent if _req.GET[ 'action'] == 'supprimer-statut-agent-etape-2' and 'statut_util__pk' in _req.session: # Suppression d'une instance TStatutsUtilisateur obj_util.get_statut_util_set().get( pk=_req.session['statut_util__pk']).delete() # Affichage du message de succès output = HttpResponse(json.dumps({ 'success': { 'message': 'L\'agent {} a été modifié avec succès.'.format( obj_util), 'redirect': reverse('consult_agent', args=[obj_util.get_pk()]) } }), content_type='application/json') # Initialisation du formulaire de mise à jour d'une transaction sur un CET if _req.GET['action'] == 'initialiser-formulaire-modification-transaction-entrante-cet-agent' and \ 'id' in _req.GET : # Initialisation du formulaire form_ger_trans_cet_util = GererTransactionCetAgent( prefix=pref_modif_trans_cet_agent, instance=TTransactionsCetUtilisateur.objects.get( pk=_req.GET['id']), kw_util=obj_util, kw_util_connect=obj_util_connect) # Affichage du formulaire output = HttpResponse(json.dumps({ 'success': { 'content': get_ft_ger_trans_cet_util(_req, form_ger_trans_cet_util) } }), content_type='application/json') # Affichage d'une demande de suppression d'une transaction entrante sur le CET if _req.GET[ 'action'] == 'supprimer-transaction-entrante-cet-agent-etape-1' and 'id' in _req.GET: # Stockage en session du statut agent à supprimer _req.session['trans_cet_util__pk'] = _req.GET['id'] # Affichage de la demande de suppression d'une transaction entrante sur le CET output = HttpResponse(json.dumps({ 'success': { 'content': affich_dem_suppr( '?action=supprimer-transaction-entrante-cet-agent-etape-2', 'suppr_trans_cet_util') } }), content_type='application/json') # Suppression d'une transaction entrante sur le CET if _req.GET['action'] == 'supprimer-transaction-entrante-cet-agent-etape-2' and \ 'trans_cet_util__pk' in _req.session : # Suppression d'une instance TTransactionsCetUtilisateur obj_util.get_trans_cet_util_set().get( pk=_req.session['trans_cet_util__pk']).delete() # Affichage du message de succès output = HttpResponse(json.dumps({ 'success': { 'message': ''' Le compte épargne temps de l'agent {} a été modifié avec succès. '''.format(obj_util), 'redirect': reverse('consult_agent', args=[obj_util.get_pk()]) } }), content_type='application/json') # Téléchargement de la fiche CET d'un agent if _req.GET['action'] == 'telecharger-cet-agent' and 'mode-de-tri' in _req.GET and \ 'historique' in _req.GET : hist_trans_cet_util = _req.GET['historique'] if hist_trans_cet_util: hist_trans_cet_util = int(hist_trans_cet_util) output = obj_util.get_fiche_cet(_req.GET['mode-de-tri'], hist_trans_cet_util) # Affichage des absences autorisées ou en attente if _req.GET[ 'action'] == 'consulter-absences' and 'annee' in _req.GET: output = prep_dtab(obj_util.get_tabl_abs(_req.GET['annee']), { 'modal_id': '#fm_consult_abs', 'modal_id_action': 'show' }) else: # Préparation des attributs disponibles en consultation tab_attrs_util = { 'courr_second_util': { 'label': 'Courriel secondaire', 'value': obj_util.get_courr_second_util() }, 'email': { 'label': 'Courriel principal', 'value': obj_util.get_email() }, 'email_auto_courr_princ': { 'label': 'Les notifications sont-elles envoyées sur le courriel principal ?', 'value': transform_bool(obj_util.get_email_auto_courr_princ()) }, 'email_auto_courr_second': { 'label': 'Les notifications sont-elles envoyées sur le courriel secondaire ?', 'value': transform_bool(obj_util.get_email_auto_courr_second()) }, 'en_act': { 'label': 'L\'agent est-il en activité ?', 'value': transform_bool(obj_util.get_en_act()) }, 'first_name': { 'label': 'Prénom', 'value': obj_util.get_first_name() }, 'gpe_util': { 'label': 'Groupes d\'utilisateur', 'value': ', '.join( [str(gu) for gu in obj_util.get_gpe_util().all()]) }, 'is_active': { 'label': 'Le compte est-il actif ?', 'last_child': True, 'value': transform_bool(obj_util.get_is_active()) }, 'last_name': { 'label': 'Nom de famille', 'value': obj_util.get_last_name() }, 'solde_cet_util': { 'label': 'Solde restant sur le compte épargne temps (CET)', 'value': obj_util.get_solde_cet_restant_util__str() }, 'type_util': { 'label': 'Quels sont les rôles assignés au compte ?', 'value': ', '.join( [str(tu) for tu in obj_util.get_type_util().all()]) }, 'username': { 'label': 'Nom d\'utilisateur', 'value': obj_util.get_username() } } # Initialisation des statuts agent tab_statut_util = [] for su in obj_util.get_statut_util_set().all(): # Détermination du statut agent actuel statut_util_actuel = False if date.today() > date(su.get_annee().get_pk(), su.get_mois_deb_statut_util(), 1): statut_util_actuel = True for elem in tab_statut_util: if elem['class']: elem['class'] = None tab_statut_util.append({ 'class': 'to-highlight' if statut_util_actuel == True else None, 'period_deb_statut_util': su.get_period_deb_statut_util(), 'pk': su.get_pk(), 'statut_util': su.get_statut_util__str() }) # Initialisation des décomptes agent tab_decompt_util = [{ 'annee': du.get_annee(), 'nbre_j_cp_autor': du.get_util().get_nbre_j_autor__str(True, du.get_annee().get_pk()), 'nbre_j_cp_base': du.get_nbre_j_cp_base__str(), 'nbre_j_cp_rest': du.get_util().get_nbre_j_rest__str(True, du.get_annee().get_pk()), 'nbre_j_cp_transf': du.get_util().get_nbre_j_transf__str(True, du.get_annee().get_pk()), 'nbre_j_rtt_autor': du.get_util().get_nbre_j_autor__str(False, du.get_annee().get_pk()), 'nbre_j_rtt_base': du.get_nbre_j_rtt_base__str(), 'nbre_j_rtt_rest': du.get_util().get_nbre_j_rest__str(False, du.get_annee().get_pk()), 'nbre_j_rtt_transf': du.get_util().get_nbre_j_transf__str(False, du.get_annee().get_pk()), } for du in obj_util.get_decompt_util_set().reverse()] # Initialisation du formulaire de tri des transactions d'un CET form_tri_trans_cet_util = TrierTransactionsCetAgent( kw_util=obj_util) # Initialisation des fenêtres modales tab_fm = [ init_fm( 'ajout_trans_cet_util', 'Ajouter une transaction entrante', get_ft_ger_trans_cet_util( _req, GererTransactionCetAgent( prefix=pref_ajout_trans_cet_agent, kw_util=obj_util, kw_util_connect=obj_util_connect))), init_fm( 'ajout_statut_util', 'Ajouter un statut agent', get_ft_ger_statut_util( _req, GererStatutAgent(prefix=pref_ajout_statut_agent, kw_util=obj_util))), init_fm('consult_abs', 'Consulter les absences autorisées ou en attente', obj_util.get_tabl_abs()), init_fm('modif_statut_util', 'Modifier un statut agent'), init_fm('modif_trans_cet_util', 'Modifier une transaction entrante'), init_fm( 'suppr_statut_util', 'Êtes-vous sûr de vouloir supprimer définitivement le statut agent ?' ), init_fm( 'suppr_trans_cet_util', 'Êtes-vous sûr de vouloir supprimer définitivement la transaction entrante ?' ) ] # Affichage du template output = render( _req, './gest_agents/consult_agent.html', { 'a': obj_util, 'dtab_tri_trans_cet_util': form_tri_trans_cet_util.init_dtab(_req), 'form_tri_trans_cet_util': init_form(form_tri_trans_cet_util), 'tab_attrs_util': init_consult(tab_attrs_util), 'tab_decompt_util': tab_decompt_util, 'tab_fm': tab_fm, 'tab_statut_util': tab_statut_util, 'title': 'Consulter un agent' }) else: if 'action' in _req.GET: # Définition du préfixe du formulaire de gestion des statuts agent if _req.GET['action'] == 'ajouter-statut-agent': prefix = pref_ajout_statut_agent elif _req.GET['action'] == 'modifier-statut-agent': prefix = pref_modif_statut_agent else: prefix = None if prefix: # Stockage des données du formulaire val_pk = _req.POST.get('{}-zsc_pk'.format(prefix)) # Soumission du formulaire form_ger_statut_util = GererStatutAgent( _req.POST, instance=TStatutsUtilisateur.objects.get( pk=val_pk) if val_pk else None, prefix=prefix, kw_util=obj_util) if form_ger_statut_util.is_valid(): # Création/modification d'une instance TStatutsUtilisateur obj_statut_util_valid = form_ger_statut_util.save() # Affichage du message de succès output = HttpResponse(json.dumps({ 'success': { 'message': ''' L'agent {} a été modifié avec succès. '''.format(obj_statut_util_valid.get_util()), 'redirect': reverse( 'consult_agent', args=[ obj_statut_util_valid.get_util().get_pk() ]) } }), content_type='application/json') else: # Affichage des erreurs tab_errs = { '{0}-{1}'.format(prefix, cle): val for cle, val in form_ger_statut_util.errors.items() } output = HttpResponse(json.dumps(tab_errs), content_type='application/json') # Définition du préfixe du formulaire de gestion des transactions entrantes sur le CET agent if _req.GET['action'] == 'ajouter-transaction-entrante-cet-agent': prefix = pref_ajout_trans_cet_agent elif _req.GET[ 'action'] == 'modifier-transaction-entrante-cet-agent': prefix = pref_modif_trans_cet_agent else: prefix = None if prefix: # Stockage des données du formulaire val_pk = _req.POST.get('{}-zsc_pk'.format(prefix)) # Soumission du formulaire form_ger_trans_cet_util = GererTransactionCetAgent( _req.POST, instance=TTransactionsCetUtilisateur.objects.get( pk=val_pk) if val_pk else None, prefix=prefix, kw_util=obj_util, kw_util_connect=obj_util_connect) if form_ger_trans_cet_util.is_valid(): # Création/modification d'une instance TTransactionsCetUtilisateur obj_trans_cet_util_valid = form_ger_trans_cet_util.save() # Affichage du message de succès output = HttpResponse(json.dumps({ 'success': { 'message': ''' Le compte épargne temps de l'agent {} a été modifié avec succès. '''.format(obj_trans_cet_util_valid.get_util()), 'redirect': reverse('consult_agent', args=[ obj_trans_cet_util_valid.get_util(). get_pk() ]) } }), content_type='application/json') else: # Affichage des erreurs tab_errs = { '{0}-{1}'.format(prefix, cle): val for cle, val in form_ger_trans_cet_util.errors.items() } output = HttpResponse(json.dumps(tab_errs), content_type='application/json') # Traitement du cas où je dois rafraîchir la fiche CET d'un agent (altération du mode de tri) if _req.GET['action'] == 'trier-transactions-cet-agent': # Soumission du formulaire form_tri_trans_cet_util = TrierTransactionsCetAgent( _req.POST, kw_util=obj_util) # Rafraîchissement de la datatable ou affichage des erreurs if form_tri_trans_cet_util.is_valid(): output = prep_dtab(form_tri_trans_cet_util.init_dtab(_req)) else: output = HttpResponse(json.dumps( form_tri_trans_cet_util.errors), content_type='application/json') return output