[attributs] Les imprimeurs et les respos des clubs sont générés à la volée
Leur valeur sont un property au lieu d'une valeur fixe.
This commit is contained in:
parent
83198b6bf6
commit
dfed1fceb2
3 changed files with 52 additions and 24 deletions
59
attributs.py
59
attributs.py
|
@ -115,7 +115,7 @@ class Attr(object):
|
|||
ctxt_check: effectue les validations
|
||||
"""
|
||||
self.ctxt_check=ctxt_check
|
||||
self.value = None
|
||||
#self.value = None
|
||||
self.conn = conn
|
||||
assert isinstance(val, unicode)
|
||||
self.parse_value(val, ldif)
|
||||
|
@ -719,18 +719,34 @@ class responsable(Attr):
|
|||
legend = u"Responsable du club"
|
||||
category = 'perso'
|
||||
can_modify = [cableur, nounou]
|
||||
|
||||
|
||||
def nonefunction(self, val):
|
||||
"""
|
||||
Just... do... nothing.
|
||||
L'idée est qu'on initialise self.value à None
|
||||
dans Attr. Simplement ici, self.value est une property,
|
||||
donc il faut une fonction pour l'attribution.
|
||||
"""
|
||||
pass
|
||||
|
||||
def get_respo(self):
|
||||
if self.value == None:
|
||||
self.value=self.conn.search('aid=%s' % self.__resp)[0]
|
||||
return self.value
|
||||
if hasattr(self, "_value"):
|
||||
return self._value
|
||||
else:
|
||||
try:
|
||||
res = self.conn.search('aid=%s' % self.__value)[0]
|
||||
except IndexError:
|
||||
raise ValueError("L'adherent %s n'existe pas ou plus" % (self.__value))
|
||||
self._value = res
|
||||
return res
|
||||
|
||||
def parse_value(self, resp, ldif):
|
||||
self.__resp=resp
|
||||
self.value = property(self.get_respo)
|
||||
self.__value = resp
|
||||
|
||||
value = property(get_respo, nonefunction)
|
||||
|
||||
def __unicode__(self):
|
||||
return self.__resp
|
||||
return self.__value
|
||||
|
||||
class imprimeurClub(Attr):
|
||||
optional = True
|
||||
|
@ -738,11 +754,30 @@ class imprimeurClub(Attr):
|
|||
category = "perso"
|
||||
can_modify = [cableur, nounou]
|
||||
|
||||
def nonefunction(self, val):
|
||||
"""
|
||||
Just... do... nothing.
|
||||
L'idée est qu'on initialise self.value à None
|
||||
dans Attr. Simplement ici, self.value est une property,
|
||||
donc il faut une fonction pour l'attribution.
|
||||
"""
|
||||
pass
|
||||
|
||||
def get_imprimeur(self):
|
||||
if hasattr(self, "_value"):
|
||||
return self._value
|
||||
else:
|
||||
try:
|
||||
res = self.conn.search('aid=%s' % int(self.__value))[0]
|
||||
except IndexError:
|
||||
raise ValueError("L'adhérent aid=%r n'existe pas ou plus" % self.__value)
|
||||
self._value = res
|
||||
return res
|
||||
|
||||
def parse_value(self, val, ldif):
|
||||
res = self.conn.search('aid=%s' % int(val))
|
||||
if len(res) != 1:
|
||||
raise ValueError("L'adhérent aid=%r n'existe plus." % val)
|
||||
self.value = res[0]
|
||||
self.__value = val
|
||||
|
||||
value = property(get_imprimeur, nonefunction)
|
||||
|
||||
def __unicode__(self):
|
||||
return unicode(self.value['aid'][0])
|
||||
|
|
|
@ -160,7 +160,7 @@ def validate_name(value, more_chars=""):
|
|||
apostrophes, et éventuellement des caractères additionnels"""
|
||||
if re.match("^[A-Za-z0-9]([-' %s]?[A-Za-z0-9])*$" % more_chars,
|
||||
normalize('NFKD', value).encode('ASCII', 'ignore')):
|
||||
return value
|
||||
return unicode(value)
|
||||
else:
|
||||
raise ValueError("Nom invalide ('%s')" % value)
|
||||
|
||||
|
|
15
lc_ldap.py
15
lc_ldap.py
|
@ -387,17 +387,10 @@ class lc_ldap_local(lc_ldap):
|
|||
L'idée est que les machines avec un réplica bossent
|
||||
avec elles-mêmes pour la lecture, pas avec vert."""
|
||||
def __init__(self):
|
||||
if os.path.exists('/var/run/slapd/ldapi'):
|
||||
ro_uri = 'ldapi://%2fvar%2frun%2fslapd%2fldapi/'
|
||||
auth_dn = auth_pw = ""
|
||||
elif os.path.exists('/var/run/ldapi'):
|
||||
ro_uri = 'ldapi://%2fvar%2frun%2fldapi/'
|
||||
auth_dn = auth_pw = ""
|
||||
else:
|
||||
secrets = import_secrets()
|
||||
ro_uri = 'ldap://127.0.0.1'
|
||||
auth_dn = secrets.ldap_readonly_auth_dn
|
||||
auth_pw = secrets.ldap_readonly_password
|
||||
secrets = import_secrets()
|
||||
ro_uri = 'ldap://127.0.0.1'
|
||||
auth_dn = secrets.ldap_readonly_auth_dn
|
||||
auth_pw = secrets.ldap_readonly_password
|
||||
|
||||
super(lc_ldap_local, self).__init__(uri=ro_uri, dn=auth_dn, cred=auth_pw)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue