diff --git a/build/lib/thsf/__init__.py b/build/lib/thsf/__init__.py index ca9eed4..dca4cfe 100644 --- a/build/lib/thsf/__init__.py +++ b/build/lib/thsf/__init__.py @@ -49,7 +49,30 @@ except Exception as err: def page_not_found(err): return redirect(url_for('index')) +# ------------------------------------------------------------------------------ +# -- Custom filters +# ------------------------------------------------------------------------------ +@app.template_filter('date2dmyhm') +def date2dmyhm(date): + splitted_date = date.split("-") + splitted_time = splitted_date[2].split("T")[1].split(":") + year, month, day = (splitted_date[0], + splitted_date[1], + splitted_date[2].split("T")[0]) + hour, minutes = (splitted_time[0], splitted_time[1].split("+")[0]) + return f"{day}/{month} {hour}:{minutes}" +@app.template_filter('toicon') +def date2dmyhm(slot_type): + slot_types = {"Projection": "fa-solid fa-film", + "Presentation Courte": "fa-solid fa-person-chalkboard", + "DJ Set": "fa-solid fa-guitar", + "Concert": "fa-solid fa-guitar", + "Présentation": "fa-solid fa-person-chalkboard", + "Table Ronde": "fa-solid fa-users-line", + "Atelier": "fa-solid fa-screwdriver-wrench", + "Exposition": "fa-solid fa-palette"} + return slot_types[slot_type] # ------------------------------------------------------------------------------ # -- Routes # ------------------------------------------------------------------------------ diff --git a/build/lib/thsf/static/css/planning.css b/build/lib/thsf/static/css/planning.css index 26338bc..b94a499 100644 --- a/build/lib/thsf/static/css/planning.css +++ b/build/lib/thsf/static/css/planning.css @@ -13,38 +13,116 @@ align-items: flex-start; align-content: flex-start; margin: 1em; - border-radius: 5px; - border-color: var(--alt-color); - background-color: var(--main-color); - border-style: solid; - border-width: 1px; font-size: 2em; - width: 25em; + width: 22em; +} + +.metadata, .data { + display: flex; + flex-direction: column; + justify-content: start; + align-items: flex-start; + align-content: flex-start; + padding: 0.5em; + border-style: solid; + height: 13em; } .metadata { - display: flex; - flex-direction: column; - justify-content: start; - align-items: flex-start; - align-content: flex-start; + width: 7.333em; + border-radius: 10px 0 0 10px; + background-color: var(--alt-bg-color); + color: var(--main-color); + border-color: var(--main-color); + font-family: pfdintextcompprothin; + border-width: 1px 0 0px 1px; } .data { - display: flex; - flex-direction: column; - justify-content: start; - align-items: flex-start; - align-content: flex-start; - margin-left: 2em; + width: 14.666em; + background-color: var(--main-color); + color: var(--alt-main-color); + border-color: var(--main-color); + border-width: 1px 1px 1px 0; + font-family: pfdintextcompprothin; + overflow-y: auto; } -.speaker_avatar { - height: 50px; - width: 50px; +.metadata > .button { + font-size: 1em; + margin-bottom: 1em; } -.data_img { - height: 50px; - width: 50px; +.title { + font-family: pfdintextcomppromedium; + font-weight: 250; + margin-bottom: 0.5em; +} + +.speakers { + font-family: pfdintextcompprothin; + font-weight: 250; + margin-bottom: 0.5em; +} + +.speaker_details { + position: relative; + display: inline-block; +} + +.speaker_details .details { + visibility: hidden; + background-color: var(--main-color); + color: var(--alt-main-color); + text-align: center; + border-radius: 6px; + padding: 5px 0; + position: absolute; + z-index: 1; + bottom: 0; + left: 0; + opacity: 0; + transform: translateX(2em) translateY(50%); + transition: opacity 1s; +} + +.speaker_details .details::after { + content: ""; + position: relative; + margin-left: -5px; + border-width: 5px; +} + +.speaker_details:hover .details { + visibility: visible; + opacity: 1; + font-size: 0.7em; + padding: 0.2em; +} + +.speaker_details > .details > img, .data > .abstract > img { + max-width: 200px; + max-height: 200px; + float: left; + margin: 0 0.5em 0.5em 0; +} + +.speaker_details > .details > p { + text-align: justify; + font-size: 0.5em; +} + +.data > .abstract > p { + text-align: justify; + font-size: 1em; +} + +.data > .details { + font-family: pfdintextcomppromedium; + font-weight: 250; + margin-bottom: 0.5em; +} + +.data > .resources > .resource > a { + color: var(--main-bg-color); } diff --git a/build/lib/thsf/static/css/style.css b/build/lib/thsf/static/css/style.css index bfbcdb6..f45fec4 100644 --- a/build/lib/thsf/static/css/style.css +++ b/build/lib/thsf/static/css/style.css @@ -10,8 +10,10 @@ :root { --main-bg-color: #e6007e; + --alt-bg-color: #E59730; + --alt2-bg-color: #9EBF43; --main-color: #ffffff; - --alt-color: #1A000D; + --alt-main-color: #1A000D; } * { @@ -30,7 +32,7 @@ body { } .black { - color: var(--alt-color); + color: var(--alt-main-color); } .thin { @@ -56,18 +58,10 @@ body { width: inherit; } -.cursor { - width: 0; - height: 0; - border-left: 0.75em solid transparent; - border-right: 0.75em solid transparent; - border-bottom: 0.75em solid var(--alt-color); -} - a { font-family: pfdintextcomppromedium; font-weight: 250; - color: var(--alt-color); + color: var(--alt-main-color); transition-property: color; transition-duration: 1s; text-decoration: wavy; @@ -137,10 +131,6 @@ a:hover { width: 100vw; } -#cursorbar { - margin-top: 1em; -} - #blah { margin: 2em 0 2em; font-size: 2em; diff --git a/build/lib/thsf/static/css/tooltip.css b/build/lib/thsf/static/css/tooltip.css index c1204fc..57ed009 100644 --- a/build/lib/thsf/static/css/tooltip.css +++ b/build/lib/thsf/static/css/tooltip.css @@ -1,12 +1,13 @@ -.tooltip { +.tooltip, .planning_tooltip { position: relative; display: inline-block; } + .tooltip .tooltiptext { visibility: hidden; background-color: var(--main-color); - color: var(--alt-color); + color: var(--alt-main-color); text-align: center; border-radius: 6px; padding: 5px 0; @@ -19,7 +20,7 @@ transition: opacity 1s; } -.tooltip .tooltiptext::after { +.tooltip .tooltiptext::after, .planning_tooltip .planning_tooltiptext::after { content: ""; position: absolute; top: 100%; @@ -28,9 +29,25 @@ border-width: 5px; } -.tooltip:hover .tooltiptext { +.tooltip:hover .tooltiptext, .planning_tooltip:hover .planning_tooltiptext { visibility: visible; opacity: 1; font-size: 0.7em; padding: 0.2em; } + +.planning_tooltip .planning_tooltiptext { + visibility: hidden; + background-color: var(--main-color); + color: var(--alt-main-color); + text-align: center; + border-radius: 6px; + padding: 5px 0; + position: absolute; + z-index: 1; + bottom: 0; + left: 0; + opacity: 0; + transform: translateX(2em) translateY(-3em); + transition: opacity 1s; +} diff --git a/build/lib/thsf/templates/base.html b/build/lib/thsf/templates/base.html index 4898cfd..82005fc 100644 --- a/build/lib/thsf/templates/base.html +++ b/build/lib/thsf/templates/base.html @@ -68,9 +68,9 @@ Expositions - Conférences + title="Présentation" + alt="Présentation"> + Présentation diff --git a/build/lib/thsf/templates/planning.html b/build/lib/thsf/templates/planning.html index a4199f8..2502930 100644 --- a/build/lib/thsf/templates/planning.html +++ b/build/lib/thsf/templates/planning.html @@ -9,33 +9,51 @@ {% for slot in slots %}
-
{{slot["title"]}}
+ + {{slot['submission_type']['fr']}}{{slot["title"]}} +
{% for speaker in slot["speakers"] %} -
-
{{speaker["name"]}}
- -
{{speaker["biography"]}}
-
+ {{speaker["name"] | title}} + + {% if speaker['avatar'] or speaker["biography"] %} +
+ {% if speaker['avatar'] %} + + {% endif %} + {% if speaker['biography'] %} +

{{speaker["biography"]}}

+ {% endif %} +
+ {% endif %} +
{{ ", " if not loop.last else "" }} {% endfor %}
-
{{slot["submission_type"]["fr"]}}
-
{{slot["slot"]["start"]}}
-
{{slot["duration"]}}
-
{{slot["slot"]["room"]["fr"]}}
-
{{slot["content_locale"]}}
-
{{slot["abstract"]}}
+
+
{{slot["slot"]["room"]["fr"]}}
+
{{slot["slot"]["start"] | date2dmyhm}} - {{slot["duration"]}} minutes ({{slot["content_locale"] | capitalize}})
+
+
+ {% if slot['image'] %} + + {% endif %} +

{{slot["abstract"]}}

+
{{slot["description"]}}
- + {% if slot["resources"] %}
+

Ressources

{% for resource in slot["resources"] %} - + {% endif %}
{% endfor %} diff --git a/setup.cfg b/setup.cfg index 0f2491c..da00782 100644 --- a/setup.cfg +++ b/setup.cfg @@ -23,7 +23,6 @@ install_requires = gunicorn pyYAML requests - pandas [options.packages.find] where = src diff --git a/src/thsf.egg-info/PKG-INFO b/src/thsf.egg-info/PKG-INFO index 0bc80e6..6156151 100644 --- a/src/thsf.egg-info/PKG-INFO +++ b/src/thsf.egg-info/PKG-INFO @@ -5,8 +5,6 @@ Summary: "THSF website" Home-page: https://git.tetalab.org/tetalab/thsf.net Author: Doug Le Tough Author-email: doug@redatomik.org -License: UNKNOWN -Platform: UNKNOWN Classifier: Programming Language :: Python :: 3 Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: OS Independent @@ -50,5 +48,3 @@ Le processus de publication est le suivant: Aucun contrôle de qualité ou de tests n'est mis en place. Vous êtes seuls sur le coup. Soyez responsable et **testez vos modifications sur votre machine locale avant de fusionner votre branche** sur la branche `master`. - - diff --git a/src/thsf.egg-info/requires.txt b/src/thsf.egg-info/requires.txt index 2ca4830..c1c4a3b 100644 --- a/src/thsf.egg-info/requires.txt +++ b/src/thsf.egg-info/requires.txt @@ -2,7 +2,6 @@ flask gunicorn pyYAML requests -pandas [dev] twine diff --git a/src/thsf/__init__.py b/src/thsf/__init__.py index ca9eed4..dca4cfe 100644 --- a/src/thsf/__init__.py +++ b/src/thsf/__init__.py @@ -49,7 +49,30 @@ except Exception as err: def page_not_found(err): return redirect(url_for('index')) +# ------------------------------------------------------------------------------ +# -- Custom filters +# ------------------------------------------------------------------------------ +@app.template_filter('date2dmyhm') +def date2dmyhm(date): + splitted_date = date.split("-") + splitted_time = splitted_date[2].split("T")[1].split(":") + year, month, day = (splitted_date[0], + splitted_date[1], + splitted_date[2].split("T")[0]) + hour, minutes = (splitted_time[0], splitted_time[1].split("+")[0]) + return f"{day}/{month} {hour}:{minutes}" +@app.template_filter('toicon') +def date2dmyhm(slot_type): + slot_types = {"Projection": "fa-solid fa-film", + "Presentation Courte": "fa-solid fa-person-chalkboard", + "DJ Set": "fa-solid fa-guitar", + "Concert": "fa-solid fa-guitar", + "Présentation": "fa-solid fa-person-chalkboard", + "Table Ronde": "fa-solid fa-users-line", + "Atelier": "fa-solid fa-screwdriver-wrench", + "Exposition": "fa-solid fa-palette"} + return slot_types[slot_type] # ------------------------------------------------------------------------------ # -- Routes # ------------------------------------------------------------------------------ diff --git a/src/thsf/static/css/planning.css b/src/thsf/static/css/planning.css index 26338bc..b94a499 100644 --- a/src/thsf/static/css/planning.css +++ b/src/thsf/static/css/planning.css @@ -13,38 +13,116 @@ align-items: flex-start; align-content: flex-start; margin: 1em; - border-radius: 5px; - border-color: var(--alt-color); - background-color: var(--main-color); - border-style: solid; - border-width: 1px; font-size: 2em; - width: 25em; + width: 22em; +} + +.metadata, .data { + display: flex; + flex-direction: column; + justify-content: start; + align-items: flex-start; + align-content: flex-start; + padding: 0.5em; + border-style: solid; + height: 13em; } .metadata { - display: flex; - flex-direction: column; - justify-content: start; - align-items: flex-start; - align-content: flex-start; + width: 7.333em; + border-radius: 10px 0 0 10px; + background-color: var(--alt-bg-color); + color: var(--main-color); + border-color: var(--main-color); + font-family: pfdintextcompprothin; + border-width: 1px 0 0px 1px; } .data { - display: flex; - flex-direction: column; - justify-content: start; - align-items: flex-start; - align-content: flex-start; - margin-left: 2em; + width: 14.666em; + background-color: var(--main-color); + color: var(--alt-main-color); + border-color: var(--main-color); + border-width: 1px 1px 1px 0; + font-family: pfdintextcompprothin; + overflow-y: auto; } -.speaker_avatar { - height: 50px; - width: 50px; +.metadata > .button { + font-size: 1em; + margin-bottom: 1em; } -.data_img { - height: 50px; - width: 50px; +.title { + font-family: pfdintextcomppromedium; + font-weight: 250; + margin-bottom: 0.5em; +} + +.speakers { + font-family: pfdintextcompprothin; + font-weight: 250; + margin-bottom: 0.5em; +} + +.speaker_details { + position: relative; + display: inline-block; +} + +.speaker_details .details { + visibility: hidden; + background-color: var(--main-color); + color: var(--alt-main-color); + text-align: center; + border-radius: 6px; + padding: 5px 0; + position: absolute; + z-index: 1; + bottom: 0; + left: 0; + opacity: 0; + transform: translateX(2em) translateY(50%); + transition: opacity 1s; +} + +.speaker_details .details::after { + content: ""; + position: relative; + margin-left: -5px; + border-width: 5px; +} + +.speaker_details:hover .details { + visibility: visible; + opacity: 1; + font-size: 0.7em; + padding: 0.2em; +} + +.speaker_details > .details > img, .data > .abstract > img { + max-width: 200px; + max-height: 200px; + float: left; + margin: 0 0.5em 0.5em 0; +} + +.speaker_details > .details > p { + text-align: justify; + font-size: 0.5em; +} + +.data > .abstract > p { + text-align: justify; + font-size: 1em; +} + +.data > .details { + font-family: pfdintextcomppromedium; + font-weight: 250; + margin-bottom: 0.5em; +} + +.data > .resources > .resource > a { + color: var(--main-bg-color); } diff --git a/src/thsf/static/css/style.css b/src/thsf/static/css/style.css index bfbcdb6..f45fec4 100644 --- a/src/thsf/static/css/style.css +++ b/src/thsf/static/css/style.css @@ -10,8 +10,10 @@ :root { --main-bg-color: #e6007e; + --alt-bg-color: #E59730; + --alt2-bg-color: #9EBF43; --main-color: #ffffff; - --alt-color: #1A000D; + --alt-main-color: #1A000D; } * { @@ -30,7 +32,7 @@ body { } .black { - color: var(--alt-color); + color: var(--alt-main-color); } .thin { @@ -56,18 +58,10 @@ body { width: inherit; } -.cursor { - width: 0; - height: 0; - border-left: 0.75em solid transparent; - border-right: 0.75em solid transparent; - border-bottom: 0.75em solid var(--alt-color); -} - a { font-family: pfdintextcomppromedium; font-weight: 250; - color: var(--alt-color); + color: var(--alt-main-color); transition-property: color; transition-duration: 1s; text-decoration: wavy; @@ -137,10 +131,6 @@ a:hover { width: 100vw; } -#cursorbar { - margin-top: 1em; -} - #blah { margin: 2em 0 2em; font-size: 2em; diff --git a/src/thsf/static/css/tooltip.css b/src/thsf/static/css/tooltip.css index c1204fc..57ed009 100644 --- a/src/thsf/static/css/tooltip.css +++ b/src/thsf/static/css/tooltip.css @@ -1,12 +1,13 @@ -.tooltip { +.tooltip, .planning_tooltip { position: relative; display: inline-block; } + .tooltip .tooltiptext { visibility: hidden; background-color: var(--main-color); - color: var(--alt-color); + color: var(--alt-main-color); text-align: center; border-radius: 6px; padding: 5px 0; @@ -19,7 +20,7 @@ transition: opacity 1s; } -.tooltip .tooltiptext::after { +.tooltip .tooltiptext::after, .planning_tooltip .planning_tooltiptext::after { content: ""; position: absolute; top: 100%; @@ -28,9 +29,25 @@ border-width: 5px; } -.tooltip:hover .tooltiptext { +.tooltip:hover .tooltiptext, .planning_tooltip:hover .planning_tooltiptext { visibility: visible; opacity: 1; font-size: 0.7em; padding: 0.2em; } + +.planning_tooltip .planning_tooltiptext { + visibility: hidden; + background-color: var(--main-color); + color: var(--alt-main-color); + text-align: center; + border-radius: 6px; + padding: 5px 0; + position: absolute; + z-index: 1; + bottom: 0; + left: 0; + opacity: 0; + transform: translateX(2em) translateY(-3em); + transition: opacity 1s; +} diff --git a/src/thsf/templates/base.html b/src/thsf/templates/base.html index 4898cfd..82005fc 100644 --- a/src/thsf/templates/base.html +++ b/src/thsf/templates/base.html @@ -68,9 +68,9 @@ Expositions - Conférences + title="Présentation" + alt="Présentation"> + Présentation
diff --git a/src/thsf/templates/planning.html b/src/thsf/templates/planning.html index a4199f8..2502930 100644 --- a/src/thsf/templates/planning.html +++ b/src/thsf/templates/planning.html @@ -9,33 +9,51 @@ {% for slot in slots %}
-
{{slot["title"]}}
+ + {{slot['submission_type']['fr']}}{{slot["title"]}} +
{% for speaker in slot["speakers"] %} -
-
{{speaker["name"]}}
- -
{{speaker["biography"]}}
-
+ {{speaker["name"] | title}} + + {% if speaker['avatar'] or speaker["biography"] %} +
+ {% if speaker['avatar'] %} + + {% endif %} + {% if speaker['biography'] %} +

{{speaker["biography"]}}

+ {% endif %} +
+ {% endif %} +
{{ ", " if not loop.last else "" }} {% endfor %}
-
{{slot["submission_type"]["fr"]}}
-
{{slot["slot"]["start"]}}
-
{{slot["duration"]}}
-
{{slot["slot"]["room"]["fr"]}}
-
{{slot["content_locale"]}}
-
{{slot["abstract"]}}
+
+
{{slot["slot"]["room"]["fr"]}}
+
{{slot["slot"]["start"] | date2dmyhm}} - {{slot["duration"]}} minutes ({{slot["content_locale"] | capitalize}})
+
+
+ {% if slot['image'] %} + + {% endif %} +

{{slot["abstract"]}}

+
{{slot["description"]}}
- + {% if slot["resources"] %}
+

Ressources

{% for resource in slot["resources"] %} - + {% endif %}
{% endfor %} diff --git a/thsf.pid b/thsf.pid index 6693149..e8c42d5 100644 --- a/thsf.pid +++ b/thsf.pid @@ -1 +1 @@ -3629 +81518