예제 #1
0
    def __init__(self, *args, **kwargs):

        # Imports
        from app.functions import get_obj_dt
        from app.functions import init_mess_err
        from app.models import TUtilisateur
        from datetime import date
        from django.conf import settings

        # Initialisation des arguments
        kw_util = kwargs.pop('kw_util', None)

        super(FiltrerAbsences, self).__init__(*args, **kwargs)

        # Initialisation des messages d'erreur
        init_mess_err(self)

        if kw_util:

            # Initialisation des choix valides de la liste déroulante des utilisateurs
            if 'S' in kw_util.get_type_util__list():
                tab_util = [(u.get_pk(), u.get_nom_complet())
                            for u in TUtilisateur.objects.all()]
                tab_util.insert(0, settings.CF_EMPTY_VALUE)
            else:
                tab_util = [(kw_util.get_pk(), kw_util.get_nom_complet())]

            # Définition des utilisateurs valides et l'utilisateur par défaut
            self.fields['zl_util'].choices = tab_util
            self.fields['zl_util'].initial = kw_util.get_pk()

        self.fields['zl_annee'].choices += [(elem, elem)
                                            for elem in get_obj_dt('YEARS')]
        self.fields['zl_annee'].initial = date.today().year
예제 #2
0
파일: mess.py 프로젝트: SMMAR11/smmarbsence
    def __init__(self, *args, **kwargs):

        # Imports
        from app.functions import init_mess_err
        from django.core.urlresolvers import reverse

        # Initialisation des arguments
        kw_util = kwargs.pop('kw_util', None)
        kw_est_arch = kwargs.pop('kw_est_arch', False)

        super(SelectionnerMessages, self).__init__(*args, **kwargs)

        # Initialisation des messages d'erreur
        init_mess_err(self, False)

        # Préparation du tableau des messages
        tab_mess_util = []
        if kw_util:
            for mu in kw_util.get_qs_mess_util_set(kw_est_arch):
                tab_mess_util.append([
                    mu.get_pk(), '|'.join([
                        '__zcc__', '<span class="{}"></span>'.format(
                            'fa fa-check-circle-o' if mu.get_est_lu() ==
                            True else 'fa fa-circle-o'),
                        mu.get_mess().get_emett_mess(),
                        mu.get_mess().get_obj_mess(),
                        mu.get_mess().get_dt_mess__str(), '''
						<a href="{}" class="inform-icon pull-right" title="Consulter le message"></a>
						'''.format(reverse('consult_mess', args=[mu.get_pk()]))
                    ])
                ])

        # Préparation des choix de chaque champ personnalisé
        self.fields['zcc_mess_util'].choices = tab_mess_util
예제 #3
0
    def __init__(self, *args, **kwargs):

        # Imports
        from app.functions import get_obj_dt
        from app.functions import init_mess_err
        from app.models import TGroupeUtilisateur
        from app.models import TUtilisateur
        from datetime import date

        super(FiltrerCalendrierAbsences, self).__init__(*args, **kwargs)

        # Initialisation des messages d'erreur
        init_mess_err(self)

        # Initialisation des choix valides des listes déroulantes
        tab_annee = [(elem, elem)
                     for elem in [date.today().year + 1, *get_obj_dt('YEARS')]]
        tab_gpe_util = [[
            gu.get_pk(), '|'.join([gu.get_str_complet(), '__zcc__'])
        ] for gu in TGroupeUtilisateur.objects.all()]
        tab_util = [[u.get_pk(), '|'.join([u.get_nom_complet(), '__zcc__'])]
                    for u in TUtilisateur.objects.filter(en_act=True)]

        # Définition des choix valides
        self.fields['zl_annee'].choices += tab_annee
        self.fields['zcc_gpe_util'].choices = tab_gpe_util
        self.fields['zcc_util'].choices = tab_util
예제 #4
0
    def __init__(self, *args, **kwargs):

        # Imports
        from app.functions import init_mess_err
        from datetime import date

        # Initialisation des arguments
        instance = kwargs.get('instance', None)
        self.kw_util = kwargs.pop('kw_util', None)
        self.kw_util_connect = kwargs.pop('kw_util_connect', None)

        # Mise en forme de certaines données
        if instance:
            kwargs.update(
                initial={
                    'nbre_conges_trans_cet_util':
                    instance.get_nbre_conges_trans_cet_util__str(),
                    'nbre_rtt_trans_cet_util':
                    instance.get_nbre_rtt_trans_cet_util__str()
                })

        super(GererTransactionCetAgent, self).__init__(*args, **kwargs)

        # Initialisation des messages d'erreur
        init_mess_err(self)

        # L'agent est-il secrétaire (et super-secrétaire) ?
        est_secr = True if self.kw_util_connect and 'S' in self.kw_util_connect.get_type_util__list(
        ) else False
        est_super_secr = True if est_secr == True and self.kw_util_connect.get_est_super_secr(
        ) == True else False

        # Initialisation des choix valides de la liste déroulante des années
        if est_super_secr == True:
            tab_annee = [(a.get_pk(), a)
                         for a in self.kw_util.get_decompt_util().all()]
        else:
            et = None
            ou = None
            for a in self.kw_util.get_decompt_util().all().reverse():
                if date.today() > a.get_plage_conges_annee()[1]: et = a
                if date.today() > a.get_plage_rtt_annee()[1]: ou = a

            # Suppression des doublons + tri dans l'ordre décroissant
            tab_annee = sorted(list(
                set([(a.get_pk(), a)
                     for a in [elem for elem in [et, ou]
                               if elem is not None]])),
                               key=lambda l: -l[0])

        # Définition des années valides
        self.fields['zl_annee'].choices += tab_annee

        if self.instance.get_pk():
            for cle, val in {
                    'zsc_pk': self.instance.get_pk(),
                    'zl_annee': self.instance.get_annee().get_pk()
            }.items():
                self.fields[cle].initial = val
예제 #5
0
    def __init__(self, *args, **kwargs):

        # Import
        from app.functions import init_mess_err

        super(FiltrerAgents, self).__init__(*args, **kwargs)

        # Initialisation des messages d'erreur
        init_mess_err(self)
예제 #6
0
    def __init__(self, *args, **kwargs):

        # Import
        from app.functions import init_mess_err

        super(Authentifier, self).__init__(*args, **kwargs)

        # Initialisation des messages d'erreur
        init_mess_err(self, False)
예제 #7
0
    def __init__(self, *args, **kwargs):

        # Import
        from app.functions import init_mess_err

        super(InsererPieceJustificativeAbsence, self).__init__(*args, **kwargs)

        # Initialisation des messages d'erreur
        init_mess_err(self)

        self.fields['zu_pj_abs'].initial = self.instance.get_pj_abs(
        ) if self.instance.get_pk() else None
예제 #8
0
    def __init__(self, *args, **kwargs):

        # Import
        from app.functions import init_mess_err

        # Initialisation des arguments
        self.kw_consult = kwargs.pop('kw_consult', False)
        self.kw_util = kwargs.pop('kw_util', None)

        super(TrierTransactionsCetAgent, self).__init__(*args, **kwargs)

        # Initialisation des messages d'erreur
        init_mess_err(self)
예제 #9
0
    def __init__(self, *args, **kwargs):

        # Import
        from app.functions import init_mess_err

        super(ModifierCompte, self).__init__(*args, **kwargs)

        # Passage de certains champs à l'état requis
        self.fields['email'].required = True
        self.fields['first_name'].required = True
        self.fields['last_name'].required = True

        # Initialisation des messages d'erreur
        init_mess_err(self)
예제 #10
0
    def __init__(self, *args, **kwargs):

        # Import
        from app.functions import init_mess_err

        # Initialisation des arguments
        self.kw_abs = kwargs.pop('kw_abs', None)
        self.kw_req = kwargs.pop('kw_req', None)
        self.kw_util_connect = kwargs.pop('kw_util_connect', None)

        super(VerifierAbsence, self).__init__(*args, **kwargs)

        # Initialisation des messages d'erreur
        init_mess_err(self)
예제 #11
0
    def __init__(self, *args, **kwargs):

        # Import
        from app.functions import init_mess_err

        # Initialisation des arguments
        self.kw_util = kwargs.pop('kw_util', None)

        super(GererStatutAgent, self).__init__(*args, **kwargs)

        # Initialisation des messages d'erreur
        init_mess_err(self)

        if self.instance.get_pk():
            self.fields['zsc_pk'].initial = self.instance.get_pk()
예제 #12
0
    def __init__(self, *args, **kwargs):

        # Import
        from app.functions import init_mess_err

        # Initialisation des arguments
        instance = kwargs.get('instance', None)
        self.kw_modif_mdp_agent = kwargs.pop('kw_modif_mdp_agent', False)

        # Mise en forme de certaines données
        if instance:
            kwargs.update(
                initial={'solde_cet_util': instance.get_solde_cet_util__str()})

        super(GererAgent, self).__init__(*args, **kwargs)

        # Passage de certains champs à l'état requis
        self.fields['email'].required = True
        self.fields['first_name'].required = True
        self.fields['last_name'].required = True

        # Initialisation des messages d'erreur
        init_mess_err(self)

        if self.kw_modif_mdp_agent == False and self.instance.get_pk():

            # Suppression des champs "mot de passe" si modification globale d'une instance
            del self.fields['zs_password']
            del self.fields['zs_password_bis']

        # Suppression des champs non-personnalisés si modification du mot de passe
        if self.kw_modif_mdp_agent == True:
            del self.fields['courr_second_util']
            del self.fields['email']
            del self.fields['email_auto_courr_princ']
            del self.fields['email_auto_courr_second']
            del self.fields['en_act']
            del self.fields['first_name']
            del self.fields['gpe_util']
            del self.fields['is_active']
            del self.fields['last_name']
            del self.fields['solde_cet_util']
            del self.fields['type_util']
            del self.fields['username']
예제 #13
0
    def __init__(self, *args, **kwargs):

        # Imports
        from app.functions import init_mess_err
        from app.models import TUtilisateur

        # Initialisation des arguments
        self.kw_util = kwargs.pop('kw_util', None)

        super(FiltrerVerificationAbsences, self).__init__(*args, **kwargs)

        # Initialisation des messages d'erreur
        init_mess_err(self)

        # Initialisation des choix valides de la liste déroulante des utilisateurs
        tab_util = [(u.get_pk(), u.get_nom_complet())
                    for u in TUtilisateur.objects.all()]

        # Définition des utilisateurs valides et l'utilisateur par défaut
        self.fields['zl_util'].choices += tab_util
예제 #14
0
    def __init__(self, *args, **kwargs):

        # Imports
        from app.functions import get_obj_dt
        from app.functions import init_mess_err
        from app.models import TAnnee
        from app.models import TGroupeTypeAbsence
        from app.models import TUtilisateur

        # Initialisation des arguments
        self.kw_gby = kwargs.pop('kw_gby')
        kw_util = kwargs.pop('kw_util')

        super(FiltrerAbsences, self).__init__(*args, **kwargs)

        # Initialisation des messages d'erreur
        init_mess_err(self)

        # Initialisation des choix valides de la liste déroulante des utilisateurs
        if 'S' in kw_util.get_type_util__list():
            tab_util = [(u.get_pk(), '|'.join([u.get_nom_complet(),
                                               '__zcc__']))
                        for u in TUtilisateur.objects.filter(en_act=True)]
        else:
            tab_util = [(kw_util.get_pk(),
                         '|'.join([kw_util.get_nom_complet(), '__zcc__']))]

        # Initialisation des choix valides de la liste déroulante des types d'absence
        tab_type_abs = []
        for gta in TGroupeTypeAbsence.objects.all():
            tab_type_abs.append([
                gta, [(ta.get_pk(), ta) for ta in gta.get_type_abs_set().all()]
            ])

        # Définition des utilisateurs, des années et des types d'absence valides
        self.fields['zcc_util'].choices = tab_util
        self.fields['zl_annee'].choices += [(a.get_pk(), a)
                                            for a in TAnnee.objects.all()]
        self.fields['zl_type_abs'].choices += tab_type_abs

        if self.kw_gby == False: del self.fields['rb_gby']
예제 #15
0
    def __init__(self, *args, **kwargs):

        # Imports
        from app.functions import init_mess_err
        from app.models import TGroupeTypeAbsence

        super(ModifierTypeAbsenceFinal, self).__init__(*args, **kwargs)

        # Initialisation des messages d'erreur
        init_mess_err(self)

        # Initialisation des choix valides de la liste déroulante des types d'absence
        tab_type_abs = []
        for gta in TGroupeTypeAbsence.objects.all():
            tab_type_abs.append([
                gta, [(ta.get_pk(), ta) for ta in gta.get_type_abs_set().all()]
            ])

        # Définition des types d'absence valides
        self.fields['zl_type_abs_final'].choices += tab_type_abs
        if self.instance.get_pk():
            self.fields[
                'zl_type_abs_final'].initial = self.instance.get_type_abs_final(
                ).get_pk()
예제 #16
0
    def __init__(self, *args, **kwargs):

        # Imports
        from app.functions import init_mess_err
        from app.models import TAnnee
        from app.models import TGroupeTypeAbsence
        from app.models import TTypeAbsence
        from app.models import TUtilisateur
        from datetime import date
        from dateutil.relativedelta import relativedelta
        from django.conf import settings

        # Initialisation des arguments
        kw_dt_abs_tranche = kwargs.pop('kw_dt_abs_tranche', None)
        self.kw_req = kwargs.pop('kw_req', None)
        kw_type_abs = kwargs.pop('kw_type_abs', None)
        self.kw_util = kwargs.pop('kw_util', None)
        self.kw_is_automated = kwargs.pop('kw_is_automated', False)

        super(GererAbsence, self).__init__(*args, **kwargs)

        # Initialisation des messages d'erreur
        init_mess_err(self)

        if self.kw_util:

            # L'agent est-il secrétaire ?
            if 'S' in self.kw_util.get_type_util__list():
                est_secr = True
            else:
                est_secr = False

            # L'agent est-il super-secrétaire ?
            if est_secr and self.kw_util.get_est_super_secr():
                est_super_secr = True
            else:
                est_super_secr = False

            # Initialisation des choix valides de la liste déroulante des utilisateurs
            if est_secr == True:
                if est_super_secr:
                    qs_util = TUtilisateur.objects.all()
                else:
                    qs_util = TUtilisateur.objects.filter(en_act=True)
                tab_util = [(u.get_pk(), u.get_nom_complet()) for u in qs_util]
            else:
                if self.kw_util.get_en_act():
                    tab_util = [(self.kw_util.get_pk(),
                                 self.kw_util.get_nom_complet())]
                else:
                    tab_util = [settings.CF_EMPTY_VALUE]

            # Définition des utilisateurs valides ainsi que de l'utilisateur par défaut
            self.fields['zl_util'].choices = tab_util
            self.fields['zl_util'].initial = self.kw_util.get_pk()

            # Initialisation des choix valides de la liste déroulante des types d'absence
            tab_type_abs = []
            if est_secr:
                qs_gpe_type_abs = TGroupeTypeAbsence.objects.all()
            else:
                qs_gpe_type_abs = TGroupeTypeAbsence.objects.filter(
                    est_disp=True)
            for gta in qs_gpe_type_abs:
                tab_type_abs.append([
                    gta,
                    [(ta.get_pk(), ta) for ta in gta.get_type_abs_set().all()]
                ])

            # Définition des types d'absence valides
            self.fields['zl_type_abs'].choices += tab_type_abs

            # Initialisation des choix valides de la liste déroulante des années
            if est_super_secr:
                tab_annee = [(a.get_pk(), a) for a in TAnnee.objects.all()]
            else:
                tab_annee = []
                current_date = date.today()
                for a in TAnnee.objects.all():
                    append = False
                    # Cas de l'année en cours
                    if a.get_plage_conges_annee(
                    )[0] <= current_date <= a.get_plage_conges_annee()[1]:
                        append = True
                    # Cas de l'année suivante (prévision des congés de fin d'année)
                    if a.get_plage_conges_annee(
                    )[0] <= current_date + relativedelta(
                            months=2) <= a.get_plage_conges_annee()[1]:
                        append = True
                    if append:
                        tab_annee.append((a.get_pk(), a))

                # Réinitialisation des choix valides de la liste déroulante des années en cas de demande d'une absence
                # différente d'un congé pour l'année X-1
                '''
				if kw_type_abs and TTypeAbsence.objects.get(
					pk = kw_type_abs
				).get_gpe_type_abs().get_pk() != settings.DB_PK_DATAS['C_PK'] :
					tab_annee = [(a.get_pk(), a) for a in TAnnee.objects.filter(pk = date.today().year)]
				'''

            # Définition des années valides
            self.fields['zl_annee'].choices = tab_annee

            # Définition de l'année par défaut (année en cours)
            self.fields['zl_annee'].initial = date.today().year

        # Gestion des champs "date"
        if kw_dt_abs_tranche is not None:
            if kw_dt_abs_tranche == 0:
                del self.fields['zd_dt_abs']
                del self.fields['zl_indisp_dt_abs']
            else:
                del self.fields['zd_dt_deb_abs']
                del self.fields['zl_indisp_dt_deb_abs']
                del self.fields['zd_dt_fin_abs']
                del self.fields['zl_indisp_dt_fin_abs']