Commit 0db2a74b authored by Praibait's avatar Praibait

Fix activites passées + suppr flag liste_invites

parent 8d6aa81c
...@@ -2869,7 +2869,6 @@ def get_activites(self, data): ...@@ -2869,7 +2869,6 @@ def get_activites(self, data):
* ``m`` : renvoie seulement les activités soumises par l'utilisateur courant (donne du coup accès aux non validées). * ``m`` : renvoie seulement les activités soumises par l'utilisateur courant (donne du coup accès aux non validées).
* ``A`` : administration (affiche aussi les activités non validées) (``A`` écrase ``m``) * ``A`` : administration (affiche aussi les activités non validées) (``A`` écrase ``m``)
* ``o`` : renvoie aussi les activités passées de l'année en cours. (par défaut, donne seulement les activités ``debut>now()``) (``o`` écrase ``A``) * ``o`` : renvoie aussi les activités passées de l'année en cours. (par défaut, donne seulement les activités ``debut>now()``) (``o`` écrase ``A``)
* ``i```: renvoie seulement les activités ayant une liste d'invités
Les flags A et o nécessitent les droits activites_admin Les flags A et o nécessitent les droits activites_admin
...@@ -2888,13 +2887,15 @@ def get_activites(self, data): ...@@ -2888,13 +2887,15 @@ def get_activites(self, data):
else: else:
_badparam(self, u"get_activites") _badparam(self, u"get_activites")
return return
ask_old, mine, ask_admin, invites = "o" in flags, "m" in flags, "A" in flags, "i" in flags ask_old, mine, ask_admin = "o" in flags, "m" in flags, "A" in flags
isadmin = ask_admin and self._has_acl("activites_admin") isadmin = ask_admin and self._has_acl("activites_admin")
isold = ask_old and self._has_acl("activites_admin") isold = ask_old and self._has_acl("activites_admin")
if isold: if isold:
time_clause = "debut>date_trunc('year', now())" time_clause = "fin < now()"
sens = "DESC;"
else: else:
time_clause = "fin > now()" time_clause = "fin > now()"
sens = " ASC;"
if isadmin: # l'administration des activités demande plus de droits if isadmin: # l'administration des activités demande plus de droits
condition_clause = "true" condition_clause = "true"
elif mine and (self.userid != "special") and self._myself(): elif mine and (self.userid != "special") and self._myself():
...@@ -2903,15 +2904,13 @@ def get_activites(self, data): ...@@ -2903,15 +2904,13 @@ def get_activites(self, data):
condition_clause = "responsable = %(userid)s" condition_clause = "responsable = %(userid)s"
else: else:
condition_clause = "validepar IS NOT NULL" # par défaut, validepar est à NULL condition_clause = "validepar IS NOT NULL" # par défaut, validepar est à NULL
if invites:
condition_clause += " AND liste"
if (term == ""): if (term == ""):
search_clause = "extract(year FROM debut)>=extract(year FROM now())" search_clause = "extract(year FROM debut)>=extract(year FROM now())"
else: else:
search_clause = "(titre ILIKE '%%%(term)s%%' OR description ILIKE '%%%(term)s%%')" search_clause = "(titre ILIKE '%%%(term)s%%' OR description ILIKE '%%%(term)s%%')"
if self._has_acl("activites"): if self._has_acl("activites"):
req = """SELECT activites.* req = """SELECT activites.*
FROM activites WHERE """ + search_clause + " AND " + time_clause + " AND " + condition_clause + " ORDER BY debut;" FROM activites WHERE """ + search_clause + " AND " + time_clause + " AND " + condition_clause + " ORDER BY debut " + sens
con, cur = BaseFonctions.getcursor() con, cur = BaseFonctions.getcursor()
cur.execute(req, {"userid": self.userid, "term": term}) cur.execute(req, {"userid": self.userid, "term": term})
l = [dict(i) for i in cur.fetchall()] l = [dict(i) for i in cur.fetchall()]
...@@ -2952,10 +2951,10 @@ def get_activite(self, data): ...@@ -2952,10 +2951,10 @@ def get_activite(self, data):
return return
# On peut voir une activité si : # On peut voir une activité si :
# on est admin # on est admin
# OU (elle n'est pas finie et est validée) # OU (elle n'a pas commencée ET est validée)
# OU (c'est la mienne ET j'ai accès à mon compte) # OU (c'est la mienne ET j'ai accès à mon compte)
can_see = (isadmin can_see = (isadmin
or ((activite["fin"].timetuple() > time.localtime()) and (activite["validepar"] is not None)) or ((activite["debut"].timetuple() > time.localtime()) and (activite["validepar"] is not None))
or self._myself(activite["responsable"]) ) or self._myself(activite["responsable"]) )
if can_see: if can_see:
self._send(dict(activite)) self._send(dict(activite))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment