Skip to content
GitLab
Explorer
Connexion
Navigation principale
Rechercher ou aller à…
Projet
C
cgscop_website_event
Gestion
Activité
Membres
Labels
Programmation
Tickets
Tableaux des tickets
Jalons
Code
Requêtes de fusion
Dépôt
Branches
Validations
Étiquettes
Graphe du dépôt
Comparer les révisions
Analyse
Données d'analyse des chaînes de valeur
Analyse des contributeurs
Données d'analyse du dépôt
Aide
Aide
Support
Documentation de GitLab
Comparer les forfaits GitLab
Forum de la communauté GitLab
Contribuer à GitLab
Donner votre avis
Raccourcis clavier
?
Extraits de code
Groupes
Projets
Afficher davantage de fils d'Ariane
Hervé Silvant - CGScop
cgscop_website_event
Validations
93f2dd7d
Valider
93f2dd7d
rédigé
13 juin 2023
par
Juliana
Parcourir les fichiers
Options
Téléchargements
Correctifs
Plain Diff
[ADD]Add tag on search calendar
parent
f4d999fe
Branches
Branches contenant la validation
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Modifications
2
Afficher les modifications d'espaces
En ligne
Côte à côte
Affichage de
2 fichiers modifiés
controllers/main.py
+27
-2
27 ajouts, 2 suppressions
controllers/main.py
views/event_session_agenda_templates.xml
+39
-39
39 ajouts, 39 suppressions
views/event_session_agenda_templates.xml
avec
66 ajouts
et
41 suppressions
controllers/main.py
+
27
−
2
Voir le fichier @
93f2dd7d
...
...
@@ -178,19 +178,41 @@ class WebsiteEventController(WebsiteEventController):
sitemap
=
False
,
)
def
event_agenda_session
(
self
,
event
,
tag
=
None
,
**
post
):
post
.
setdefault
(
"
tags
"
,
""
)
event
=
event
.
with_context
(
tz
=
event
.
date_tz
or
"
UTC
"
)
tag_categories
=
request
.
env
[
"
event.tag.category
"
].
search
(
[(
"
is_published
"
,
"
=
"
,
True
)]
)
search_domain_items
=
[]
# search on tags
search_tags
=
self
.
_get_search_tags
(
post
[
"
tags
"
])
if
not
search_tags
and
tag
:
search_tags
=
tag
if
search_tags
:
grouped_tags
=
dict
()
for
search_tag
in
search_tags
:
grouped_tags
.
setdefault
(
search_tag
.
category_id
,
list
()).
append
(
search_tag
)
search_domain_items
=
[
[(
"
tag_ids
"
,
"
in
"
,
[
tag
.
id
for
tag
in
grouped_tags
[
group
]])]
for
group
in
grouped_tags
]
vals
=
{
"
search_tags
"
:
search_tags
,
"
tag_categories
"
:
tag_categories
,
"
event
"
:
event
,
"
main_object
"
:
event
,
"
tag
"
:
tag
,
"
is_event_user
"
:
request
.
env
.
user
.
has_group
(
"
event.group_event_user
"
),
}
vals
.
update
(
self
.
_prepare_calendar_values
(
event
))
vals
.
update
(
self
.
_prepare_calendar_values
(
event
,
search_domain_items
))
return
request
.
render
(
"
cgscop_website_event.agenda_online
"
,
vals
)
def
_prepare_calendar_values
(
self
,
event
):
def
_prepare_calendar_values
(
self
,
event
,
search_domain_items
=
False
):
"""
This methods slit the day (max end time - min start time) into
15 minutes time slots. For each time slot, we assign the sessions that
start at this specific time slot, and we add the number of time slot
...
...
@@ -208,6 +230,9 @@ class WebsiteEventController(WebsiteEventController):
[(
"
date_begin
"
,
"
!=
"
,
False
)],
]
)
if
search_domain_items
:
base_session_domain
=
expression
.
AND
([
base_session_domain
,
*
search_domain_items
])
sessions_sudo
=
request
.
env
[
"
event.session
"
].
sudo
().
search
(
base_session_domain
)
# First split day by day (based on start time)
...
...
Ce diff est replié.
Cliquez pour l'agrandir.
views/event_session_agenda_templates.xml
+
39
−
39
Voir le fichier @
93f2dd7d
...
...
@@ -66,45 +66,45 @@
</template>
<!-- Option: Topbar: optional tags filters-->
<!--
<template
-->
<!--
id="agenda_session_topbar_tag"
-->
<!--
inherit_id="cgscop_website_event.agenda_topbar"
-->
<!--
name="Filtrer par Tags"
-->
<!--
active="True"
-->
<!--
>
-->
<!--
<xpath expr="//ul[hasclass('o_weagenda_topbar_filters')]" position="inside">
-->
<!--
<t t-foreach="tag_categories" t-as="tag_category">
-->
<!--
<li
-->
<!--
t-if="tag_category.tag_ids and any(tag.color for tag in tag_category.tag_ids)"
-->
<!--
class="nav-item dropdown me-2 my-1"
-->
<!--
>
-->
<!--
<a
-->
<!--
href="#"
-->
<!--
role="button"
-->
<!--
class="btn dropdown-toggle"
-->
<!--
data-bs-toggle="dropdown"
-->
<!--
>
-->
<!--
<i class="fa fa-folder-open" />
-->
<!--
<t t-out="tag_category.name" />
-->
<!--
</a>
-->
<!--
<div class="dropdown-menu">
-->
<!--
<t t-foreach="tag_category.tag_ids" t-as="tag">
-->
<!--
<a
-->
<!--
t-att-href="'/event/%s/session?%s' % (
-->
<!--
slug(event),
-->
<!--
keep_query('*', tags=str((search_tags - tag).ids if tag in search_tags else (tag | search_tags).ids))
-->
<!--
)"
-->
<!--
t-if="tag.color"
-->
<!--
t-attf-class="dropdown-item d-flex align-items-center justify-content-between #{'active' if tag in search_tags else ''}"
-->
<!--
>
-->
<!--
<t t-out="tag.name" />
-->
<!--
</a>
-->
<!--
</t>
-->
<!--
</div>
-->
<!--
</li>
-->
<!--
</t>
-->
<!--
</xpath>
-->
<!--
</template>
-->
<template
id=
"agenda_session_topbar_tag"
inherit_id=
"cgscop_website_event.agenda_topbar"
name=
"Filtrer par Tags"
active=
"True"
>
<xpath
expr=
"//ul[hasclass('o_weagenda_topbar_filters')]"
position=
"inside"
>
<t
t-foreach=
"tag_categories"
t-as=
"tag_category"
>
<li
t-if=
"tag_category.tag_ids and any(tag.color for tag in tag_category.tag_ids)"
class=
"nav-item dropdown me-2 my-1"
>
<a
href=
"#"
role=
"button"
class=
"btn dropdown-toggle"
data-bs-toggle=
"dropdown"
>
<i
class=
"fa fa-folder-open"
/>
<t
t-out=
"tag_category.name"
/>
</a>
<div
class=
"dropdown-menu"
>
<t
t-foreach=
"tag_category.tag_ids"
t-as=
"tag"
>
<a
t-att-href=
"'/event/%s/
agenda-
session
s
?%s' % (
slug(event),
keep_query('*', tags=str((search_tags - tag).ids if tag in search_tags else (tag | search_tags).ids))
)"
t-if=
"tag.color"
t-attf-class=
"dropdown-item d-flex align-items-center justify-content-between #{'active' if tag in search_tags else ''}"
>
<t
t-out=
"tag.name"
/>
</a>
</t>
</div>
</li>
</t>
</xpath>
</template>
<!-- ============================================================ -->
<!-- CONTENT: MAIN TEMPLATES -->
...
...
Ce diff est replié.
Cliquez pour l'agrandir.
Aperçu
0%
Chargement en cours
Veuillez réessayer
ou
joindre un nouveau fichier
.
Annuler
You are about to add
0
people
to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Enregistrer le commentaire
Annuler
Veuillez vous
inscrire
ou vous
se connecter
pour commenter