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):
* ``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``)
* ``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
......@@ -2888,13 +2887,15 @@ def get_activites(self, data):
else:
_badparam(self, u"get_activites")
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")
isold = ask_old and self._has_acl("activites_admin")
isold = ask_old and self._has_acl("activites_admin")
if isold:
time_clause = "debut>date_trunc('year', now())"
time_clause = "fin < now()"
sens = "DESC;"
else:
time_clause = "fin > now()"
sens = " ASC;"
if isadmin: # l'administration des activités demande plus de droits
condition_clause = "true"
elif mine and (self.userid != "special") and self._myself():
......@@ -2903,15 +2904,13 @@ def get_activites(self, data):
condition_clause = "responsable = %(userid)s"
else:
condition_clause = "validepar IS NOT NULL" # par défaut, validepar est à NULL
if invites:
condition_clause += " AND liste"
if (term == ""):
search_clause = "extract(year FROM debut)>=extract(year FROM now())"
else:
search_clause = "(titre ILIKE '%%%(term)s%%' OR description ILIKE '%%%(term)s%%')"
if self._has_acl("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()
cur.execute(req, {"userid": self.userid, "term": term})
l = [dict(i) for i in cur.fetchall()]
......@@ -2952,10 +2951,10 @@ def get_activite(self, data):
return
# On peut voir une activité si :
# 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)
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"]) )
if can_see:
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