[gestion] Gestion plus propre des changements d'annee
Ajout d'une variable periode_transitoire dans config.py qui definit les periodes ou on accepte ceux qui ont paye l'annee precedente (on ne prend pas du tout en compte la carte d'etudiant dans ces periodes). On en profite pour enlever toute notion de caution ... darcs-hash:20100801103904-ddb99-cad90eb5599173bec23ff3952b3d22f80fd618f2.gz
This commit is contained in:
parent
5feb3042ee
commit
26dfe36d93
4 changed files with 42 additions and 38 deletions
|
@ -10,22 +10,38 @@ from time import localtime
|
|||
# Fichier généré
|
||||
from config_srv import adm_only, role
|
||||
|
||||
# Administratif
|
||||
caution = 0
|
||||
#Précablage possible ?
|
||||
precab = False
|
||||
##### Gestion des câblages
|
||||
# Selon la date, on met :
|
||||
# -ann_scol : Année scolaire en cours
|
||||
# -periode_transitoire : on accepte ceux qui ont payé l'année dernière
|
||||
|
||||
# Année scolaire en cours
|
||||
# Ne modifier que les dates !
|
||||
dat = localtime()
|
||||
if dat[1]<9 : ann_scol = dat[0]-1
|
||||
else : ann_scol = dat[0]
|
||||
if dat[1] < 8 or (dat[1] == 8 and dat[2] < 23):
|
||||
# Si pas encore fin août, on est dans l'année précédente
|
||||
ann_scol = dat[0]-1
|
||||
periode_transitoire = False
|
||||
# sinon on change d'année
|
||||
elif dat[1] < 10:
|
||||
# Si pas encore octobre, les gens ayant payé l'année précédente sont
|
||||
# acceptés
|
||||
ann_scol = dat[0]
|
||||
periode_transitoire = True
|
||||
else:
|
||||
# Seulement ceux qui ont payé cette année sont acceptés
|
||||
ann_scol = dat[0]
|
||||
periode_transitoire = False
|
||||
|
||||
# Bloquage si carte d'étudiants manquante pour l'année en cours
|
||||
# Au niveau du Squid
|
||||
|
||||
## Bloquage si carte d'étudiants manquante pour l'année en cours
|
||||
# /!\ Par sécurité, ces valeurs sont considérées comme False si
|
||||
# periode_transitoire est True
|
||||
# Soft (au niveau du Squid)
|
||||
bl_carte_et_actif = True
|
||||
# L'adhérent est considéré comme paiement pas ok
|
||||
# Hard (l'adhérent est considéré comme paiement pas ok)
|
||||
bl_carte_et_definitif = False
|
||||
|
||||
|
||||
# Gel des cableurs pas a jour de cotisation
|
||||
# Les droits ne sont pas retires mais il n'y a plus de sudo
|
||||
bl_vieux_cableurs = False
|
||||
|
|
|
@ -9,7 +9,7 @@ from affich_tools import *
|
|||
from gen_confs import gen_config
|
||||
from ldap_crans import crans_ldap, ann_scol
|
||||
from time import localtime
|
||||
from config import bl_carte_et_actif
|
||||
from config import bl_carte_et_actif, periode_transitoire
|
||||
|
||||
class squid(gen_config) :
|
||||
db = crans_ldap()
|
||||
|
@ -82,8 +82,8 @@ class squid_check(gen_config):
|
|||
m = s[0]
|
||||
p = m.proprietaire()
|
||||
to_regen.extend(m.blacklist_actif())
|
||||
from config import bl_carte_et_actif
|
||||
if (bl_carte_et_actif and ann_scol not in p.carteEtudiant()):
|
||||
if (bl_carte_et_actif and not periode_transitoire and ann_scol
|
||||
not in p.carteEtudiant()):
|
||||
to_regen.append('carte')
|
||||
if p.chbre() == '????':
|
||||
to_regen.append('chbre')
|
||||
|
@ -163,7 +163,7 @@ class squid_bloq(squid) :
|
|||
|
||||
class squid_carte(squid) :
|
||||
""" Génère le fichier blacklist-carte pour squid """
|
||||
actif = bl_carte_et_actif
|
||||
actif = bl_carte_et_actif and not periode_transitoire
|
||||
if not actif : restart_cmd = ''
|
||||
FICHIER = "/etc/squid3/blacklist_carte_et"
|
||||
chaine = "carteEtudiant!=%i"%ann_scol
|
||||
|
|
|
@ -1080,8 +1080,7 @@ def set_type_de_connexion(adherent):
|
|||
|
||||
def set_admin(proprio):
|
||||
u"""
|
||||
Définition de l'état administratif : carte d'étudiant, paiement
|
||||
et caution.
|
||||
Définition de l'état administratif : carte d'étudiant et paiement.
|
||||
"""
|
||||
# Le proprietaire a-t-il une section carte d'étudiant (pas les clubs) ?
|
||||
has_card = proprio.idn != 'cid'
|
||||
|
@ -1089,8 +1088,6 @@ def set_admin(proprio):
|
|||
# Initialisation des différentes checkbox
|
||||
carte = on_off(ann_scol in proprio.carteEtudiant())
|
||||
paiement = on_off(ann_scol in proprio.paiement())
|
||||
precab = on_off(ann_scol + 1 in proprio.paiement())
|
||||
caution = on_off('k' in proprio.controle())
|
||||
paiement_ok = on_off('p' in proprio.controle())
|
||||
carte_ok = on_off('c' in proprio.controle())
|
||||
if has_card: charte_MA = on_off(proprio.charteMA())
|
||||
|
@ -1115,15 +1112,10 @@ def set_admin(proprio):
|
|||
else:
|
||||
texte.append(u'Adhérent non payant')
|
||||
|
||||
# TODO: controle pour le précâblage
|
||||
if config.precab:
|
||||
checklist.append(u'"3" "Adhésion %d/%d réglée et charte signée (précâblage)" "%s"' %
|
||||
(ann_scol+1, ann_scol+2, precab))
|
||||
|
||||
if iscontroleur:
|
||||
if has_card:
|
||||
checklist.append(u'"4" "Carte d\'étudiant vérifiée" "%s"' % carte_ok)
|
||||
checklist.append(u'"5" "Cotisation/charte/caution vérifées" "%s"' % paiement_ok)
|
||||
checklist.append(u'"5" "Cotisation/charte vérifées" "%s"' % paiement_ok)
|
||||
|
||||
if (isbureau or isadm) and has_card:
|
||||
checklist.append(u'"6" "Charte des MA signee" "%s"' % charte_MA)
|
||||
|
@ -2128,13 +2120,8 @@ def menu_principal():
|
|||
if choix == 'aMc':
|
||||
# Ajout d'une machine à l'adhérent/au club courant
|
||||
|
||||
# On ne peut avoir de machine fixe si on n'a pas payé
|
||||
# la caution
|
||||
caution_ok = 'k' in proprio.controle()
|
||||
|
||||
# On ne peut avoir une machine fixe que si on a pas
|
||||
# déjà une machine fixe, sauf si on est membre actif
|
||||
# (expérimental)
|
||||
|
||||
machines_fixes = proprio.machines_fixes()
|
||||
if not isinstance(proprio, Club) and not proprio.adherentPayant():
|
||||
|
|
|
@ -670,14 +670,15 @@ class CransLdap:
|
|||
# considéré non ok s'il n'a pas fourni sa carte d'etudiant
|
||||
# alors que l'on est desormais en periode de bloquage
|
||||
# définifif (cf config.py).
|
||||
if time.localtime()[1] in (8, 9):
|
||||
# Pour septembre paiement année précédente ok
|
||||
if config.periode_transitoire:
|
||||
# Pour la période transitoire année précédente ok
|
||||
el = "(|(paiement=%d)(paiement=%d))" % (ann_scol, ann_scol-1)
|
||||
else:
|
||||
el = "(paiement=%s)" % ann_scol
|
||||
# Doit-on bloquer en cas de manque de la carte d'etudiant ?
|
||||
if config.bl_carte_et_definitif:
|
||||
el = "(&(|(carteEtudiant=%d)(objectClass=club))%s)" % (ann_scol, el)
|
||||
# Doit-on bloquer en cas de manque de la carte d'etudiant ?
|
||||
# (si période transitoire on ne bloque dans aucun cas)
|
||||
if config.bl_carte_et_definitif:
|
||||
el = "(&(|(carteEtudiant=%d)(objectClass=club))%s)" % (ann_scol, el)
|
||||
elif champ[1:] == 'blacklist':
|
||||
el = '(blacklist=%s)' % expr
|
||||
else:
|
||||
|
@ -1549,9 +1550,9 @@ class BaseProprietaire(BaseClasseCrans):
|
|||
def controle(self, new=None):
|
||||
u"""
|
||||
Controle du tresorier
|
||||
New est de la forme [+-][pck]
|
||||
(p pour le paiement, c pour la carte, k pour la caution)
|
||||
Retourne une chaine contenant une combinaison de p, c, k.
|
||||
New est de la forme [+-][pc]
|
||||
(p pour le paiement, c pour la carte)
|
||||
Retourne une chaine contenant une combinaison de p, c.
|
||||
"""
|
||||
actuel = self._data.get('controle', [''])
|
||||
if not actuel:
|
||||
|
@ -1565,7 +1566,7 @@ class BaseProprietaire(BaseClasseCrans):
|
|||
if not re.match(r'^[+-][pck]$', new):
|
||||
raise ValueError('modification de controle incorrecte')
|
||||
|
||||
for c in 'pck':
|
||||
for c in 'pc':
|
||||
if new == '+%s' % c and c not in actuel:
|
||||
actuel += c
|
||||
if new == '-%s' % c:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue