Compare commits

..

21 Commits

Author SHA1 Message Date
Nicolas Roche a5768cb66d toulouse-2022: [parsifal] use catalog cell in backoffice too (#86843)
gitea/publik-base-theme/pipeline/head There was a failure building this commit Details
2024-04-04 14:39:43 +02:00
Nicolas Roche de7f2aae88 toulouse-2022: [parsifal] manage capacity in catalog (#86840)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2024-04-04 14:25:32 +02:00
Nicolas Roche f5021a2d60 toulouse-2022: [parsifal] support defining filters in catalog url (#86816)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2024-04-04 14:16:32 +02:00
Thomas Jund 15320d0ef2 nanterre-2023: use native $edge-gutter var instead custom code (#88999)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2024-04-03 11:26:46 +02:00
Frédéric Péters ef2f4fafba toodego: restore footer padding (#88994)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2024-04-03 10:10:53 +02:00
Paul Marillonnet 50d5f3c353 alpes-maritimes-2022: provide login password registration title (#88143)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2024-04-02 15:57:54 +02:00
Corentin Sechet 12027802cc manche: create theme (#88587)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2024-04-02 15:57:32 +02:00
Paul Marillonnet fa58012e0a hide password-reset fields' requisiteness on phone-enabled auth (#88384)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2024-04-02 14:43:21 +02:00
Frédéric Péters bec5b85a0b build: distribute variant templates content (#88848)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2024-03-29 12:24:41 +01:00
Frédéric Péters 1e44f1e6e4 toodego: add alternative attribute names for silo properties (#88758)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2024-03-29 08:29:35 +01:00
Frédéric Péters 177075b6c3 scss: allow for <p> tags in file widget (#88608)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2024-03-25 11:38:08 +01:00
Thomas Jund 556090a4a6 css: replace sass grayscale() by native css grayscale filter (#88388)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2024-03-22 09:41:34 +01:00
Thomas Jund e139dff369 scss: introduce $edge-gutter & $edge-gutter-mobile (#85848)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2024-03-20 15:03:22 +01:00
Thomas NOËL adfc8d2964 build: replace Pool with ThreadPool to avoid pickle issues (#88335)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2024-03-19 15:39:06 +01:00
Frédéric Péters f6d6ea0e8b build: distribute script used to create villeurbanne base file (#88322)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2024-03-19 09:21:40 +01:00
Corentin Sechet 3bf4de97c3 misc: add missing files to .gitignore (#88267)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2024-03-19 08:54:46 +01:00
Paul Marillonnet 1d89bbf5d0 templates/a2: provide disambiguation on registration helptext (#88148)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2024-03-18 16:50:28 +01:00
Paul Marillonnet 199f2ca818 templates/a2: disambiguate password recovery helptext (#88149)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2024-03-18 16:47:44 +01:00
Frédéric Péters 4e4acc0675 debian: include old symlink targets maintscript (#88299)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2024-03-18 15:16:11 +01:00
Frédéric Péters 2317ed86c1 debian: do not include package name in maintscript (#88298)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2024-03-18 14:48:05 +01:00
Thomas Jund aa1280d1c9 css: remove duplicated code (#88200)
gitea/publik-base-theme/pipeline/head This commit looks good Details
2024-03-18 10:30:49 +01:00
26 changed files with 566 additions and 77 deletions

4
.gitignore vendored
View File

@ -26,3 +26,7 @@ static/toulouse-2022/backoffice.css.map
/debian/publik-base-theme.debhelper.log
/debian/.debhelper/
*.patch
/tmp-*
/build
/publik_base_theme.egg-info
/publik_base_theme/locale/**/*.mo

View File

@ -2,7 +2,7 @@
recursive-include static *.scss *.css *.js *.ico *.gif *.svg *.png *.jpg *.jpeg *.woff *.woff2 *.ttf *.map *.json *.eot *.otf
# templates
recursive-include templates *.html *.txt
recursive-include templates *.html *.txt *.py
# documentation
recursive-include help *.page *.png

View File

@ -1,13 +1,13 @@
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/alpes-maritimes-2022/combo/json ../../alpes-maritimes-2018/combo/json 9.28.5.g9ac5c2ba~
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/boussu-2022/combo/json 10.47-1~ publik-base-theme
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/boussu-2022/combo/wcs 10.47-1~ publik-base-theme
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/eybens 10.47-1~ publik-base-theme
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/grenoble 10.47-1~ publik-base-theme
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/grenoble-metropole-2022 10.47-1~ publik-base-theme
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/hellemmes 10.47-1~ publik-base-theme
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/la-seyne-sur-mer 10.47-1~ publik-base-theme
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/lomme 10.47-1~ publik-base-theme
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/massoins 10.47-1~ publik-base-theme
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/pays-de-grasse 10.47-1~ publik-base-theme
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/saint-vallier-de-thiey 10.47-1~ publik-base-theme
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/sospel 10.47-1~ publik-base-theme
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/boussu-2022/combo/json ../../braine-l-alleud/combo/json 10.47-1~
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/boussu-2022/combo/wcs ../../braine-l-alleud/combo/wcs 10.47-1~
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/eybens izi-ici 10.47-1~
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/grenoble izi-ici 10.47-1~
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/grenoble-metropole-2022 izi-ici 10.47-1~
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/hellemmes lille 10.47-1~
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/la-seyne-sur-mer sictiam 10.47-1~
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/lomme lille 10.47-1~
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/massoins sictiam 10.47-1~
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/pays-de-grasse sictiam 10.47-1~
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/saint-vallier-de-thiey sictiam 10.47-1~
symlink_to_dir /usr/share/publik/themes/publik-base/templates/variants/sospel sictiam 10.47-1~

View File

@ -146,6 +146,11 @@ paramètre, la deuxième sa description et la troisième la valeur par défaut.
<td><p>Espace (« gouttière ») entre la barre latérale et les colonnes.</p></td>
<td><p><var>$columns-gutter</var></p></td>
</tr>
<tr>
<td><p><code>$edge-gutter</code></p></td>
<td><p>Espace (« gouttière ») entre le contenu et le bord du navigateur.</p></td>
<td><p><var>legacy</var></p></td>
</tr>
<tr>
<td><p><code>$grid-gutter</code></p></td>
<td><p>Espace (« gouttière ») entre les éléments disposés en grille.</p></td>
@ -391,6 +396,11 @@ paramètre, la deuxième sa description et la troisième la valeur par défaut.
<td><p>Largeur maximale de la page "mobile"</p></td>
<td><p><var>null</var></p></td>
</tr>
<tr>
<td><p><code>$edge-gutter-mobile</code></p></td>
<td><p>Espace (« gouttière ») entre le contenu et le bord du navigateur.</p></td>
<td><p><var>$edge-gutter</var></p></td>
</tr>
<tr>
<td><p><code>$nav-mobile-limit</code></p></td>
<td><p>Largeur sous laquelle adopter la navigation "mobile"</p></td>

View File

@ -1,5 +1,6 @@
#! /usr/bin/env python
import functools
import glob
import os
import subprocess
@ -9,7 +10,7 @@ from distutils.command.build import build as _build
from distutils.command.sdist import sdist
from distutils.errors import CompileError
from distutils.spawn import find_executable
from multiprocessing import Pool
from multiprocessing.pool import ThreadPool
from setuptools import find_packages, setup
from setuptools.command.install_lib import install_lib as _install_lib
@ -41,6 +42,27 @@ class eo_sdist(sdist):
if os.path.exists('VERSION'):
os.remove('VERSION')
def local_findall(self, dir=os.curdir):
# override default file search to allow for duplicates (as some themes have
# multiple variants that are just symlinks)
files = [
os.path.join(base, file) for base, dirs, files in os.walk(dir, followlinks=True) for file in files
]
if dir == os.curdir:
make_rel = functools.partial(os.path.relpath, start=dir)
files = map(make_rel, files)
self.filelist.allfiles = list(filter(os.path.isfile, files))
def get_file_list(self):
self.filelist.findall = self.local_findall
super().get_file_list()
def copy_file(self, *args, **kwargs):
# do not allow hardlinking as hardlinks would get inserted as is in
# the tarball, and would not extract properly.
kwargs.pop('link', None)
super().copy_file(*args, **kwargs)
def get_version():
'''Use the VERSION, if absent generates a version with git describe, if not
@ -140,7 +162,7 @@ class compile_scss(Command):
for css_filename in get_css_files():
yield ['sassc', '--sourcemap', css_filename.replace('.css', '.scss'), css_filename]
with Pool() as pool:
with ThreadPool() as pool:
for result in pool.imap_unordered(subprocess_run, get_build_commands()):
if not result:
raise CompileError('error compiling css')
@ -189,7 +211,7 @@ class build_icons(Command):
]
)
with Pool() as pool:
with ThreadPool() as pool:
for result in pool.imap_unordered(subprocess_run, cmds):
if not result:
raise CompileError('error building icons')
@ -230,6 +252,7 @@ def data_tree(destdir, sourcedir):
'.svg',
'.eot',
'.otf',
'.py', # prepare-template.py
]
r = []
for root, dirs, files in os.walk(sourcedir):

View File

@ -636,7 +636,7 @@ div.bookingcalendar {
#login-page.methods2 > .block {
width: 50%;
width: calc(50% - 2em);
margin: 0;
margin-left: 0;
margin-right: 2em;
float: left;
}
@ -645,7 +645,7 @@ div.bookingcalendar {
#login-page.methods3 > .block {
width: 33%;
width: calc(33% - 2em);
margin: 0;
margin-left: 0;
margin-right: 2em;
float: left;
}
@ -657,7 +657,11 @@ div.bookingcalendar {
@media screen and ($max-mobile-viewport) {
width: auto;
float: none;
margin: 0.7em;
margin-right: 0;
@if $edge-gutter == legacy {
margin-left: 0.7em;
margin-right: 0.7em;
}
}
}

View File

@ -101,7 +101,7 @@ $cancel-button-icon: '\f00d' !default; /* remove icon */
background: $widget-custom-radio-checkbox-marker-color;
}
&[disabled]:checked + span::after {
background: grayscale($widget-custom-radio-checkbox-marker-color);
filter: grayscale(100%);
}
&:focus + span {

View File

@ -12,6 +12,8 @@ $sidebar-max-width: $sidebar-width !default;
$sidebar-min-width: 0 !default;
$sidebar-position: left !default;
$sidebar-columns-gutter: $columns-gutter !default;
$edge-gutter: legacy !default;
$edge-gutter-mobile: $edge-gutter !default;
// custom media queries
// @media ($max-mobile-viewport) {}
@ -41,7 +43,6 @@ div#page {
div#page div#main-content-wrapper,
div#page main {
flex: 1 0 auto;
width: 100%;
}
.page-width,
@ -54,18 +55,16 @@ div#page main {
}
@if ($mobile-width) {
.page-width,
.footer-width {
.page-width,
.footer-width {
@media ($max-mobile-viewport) {
max-width: $mobile-width;
}
}
}
}
}
div#header {
width: 100%;
position: relative;
padding: 0 0.7em;
& h1 {
margin: 0;
}
@ -118,7 +117,6 @@ div#main-content {
@media screen and ($max-mobile-viewport) {
#columns-wrapper {
padding: 0 0.7em;
max-width: 100%;
}
.column {
@ -129,13 +127,13 @@ div#main-content {
.central-content {
flex-direction: column;
#sidebar {
margin: 0;
flex: 0 0 auto;
max-width: 100%;
// don't apply min-width on mobile
@if $sidebar-min-width != 0 {
min-width: 0;
}
margin: 0 0.7em;
div.cell {
margin-left: 0;
margin-right: 0;
@ -155,16 +153,66 @@ div#main-content {
@if $footer-full-width-background {
#footer-wrapper {
padding: 0.7em 0 1.5em 0;
padding-top: 0.7em;
padding-bottom: 1.5em;
background-color: $footer-background;
}
} @else {
#footer {
padding: 0.7em 0.7em 1.5em 0.7em;
padding-top: 0.7em;
padding-bottom: 1.5em;
background-color: $footer-background;
}
}
// edge-gutter
@if $edge-gutter == legacy {
div#header {
width: 100%;
padding: 0 0.7em;
}
div#page div#main-content-wrapper,
div#page main {
width: 100%;
}
@if not $footer-full-width-background {
#footer {
padding-left: 0.7em;
padding-right: 0.7em;
}
}
@media ($max-mobile-viewport) {
.central-content #sidebar {
margin: 0 0.7em;
}
#columns-wrapper {
padding: 0 0.7em;
}
}
} @else {
.page-width,
.header-width,
.nav-width,
.footer-width {
--edge-gutter: #{$edge-gutter};
--edge-gutter-mobile: #{$edge-gutter-mobile};
box-sizing: content-box;
padding-left: var(--edge-gutter);
padding-right: var(--edge-gutter);
@media ($max-mobile-viewport) {
--edge-gutter: var(--edge-gutter-mobile);
}
}
@if ($mobile-width) {
.header-width,
.nav-width {
@media ($max-mobile-viewport) {
--edge-gutter-mobile: 0;
}
}
}
}
@media screen and ($max-mobile-viewport) {
.pk-desktop-only, .desktop-only {
display: none !important;

View File

@ -70,7 +70,6 @@ $nav-mobile-bottom-bar-badge-background: #e22 !default;
}
div.gru-nav {
padding: 0;
height: $nav-height;
border-radius: $nav-border-radius;
font-family: $nav-font-family;
@ -117,17 +116,7 @@ div.gru-nav li > a {
}
}
div.gru-nav li.selected > a {
@if $nav-item-selected-mode == background {
background-color: $nav-item-selected-background;
color: $nav-item-selected-color;
}
@if $nav-item-selected-mode == bottom-border {
border-bottom: $nav-item-selected-border;
color: $nav-color;
}
}
div.gru-nav li.selected > a,
div.gru-nav li:focus-within > a,
div.gru-nav li:hover > a {
@if $nav-item-selected-mode == background {
@ -138,7 +127,6 @@ div.gru-nav li:hover > a {
border-bottom: $nav-item-hover-border;
color: $nav-color;
}
}
div.gru-nav > ul ul {

View File

@ -541,6 +541,9 @@ div.file-upload-widget {
}
div.widget-message {
padding-top: 20px;
p {
margin: 0;
}
&::before {
pointer-events: none;
font-family: FontAwesome;

260
static/manche/_custom.scss Normal file
View File

@ -0,0 +1,260 @@
div#header {
@media($min-desktop-viewport) {
padding-left: 0;
}
}
#top {
display: grid;
grid-template-columns: auto 1fr auto;
align-items: center;
gap: $space-medium;
@media($max-mobile-viewport) {
padding: $space-small 0;
grid-template-columns: 1fr auto;
grid-template-rows: auto auto;
}
}
#logo.has-logo {
@media($max-mobile-viewport) {
padding-left: 0;
}
a::before {
margin-right: 0;
}
}
#toplinks {
position: static;
@media($max-mobile-viewport) {
max-width: unset;
grid-area: 2 / 1 / 3 / 3;
.toplinks{
&--list {
display: flex;
justify-content: space-around;
gap: $space-large;
}
&--item {
text-align: center;
}
}
}
}
nav.site-nav {
@media($max-mobile-viewport) {
grid-area: 1 / 2 / 2 / 3;
}
}
.gru-nav-wrapper {
@media($max-mobile-viewport) {
margin-top: 0;
}
}
div.gru-nav {
.menu {
margin: 0;
@media($min-desktop-viewport) {
padding-left: $space-xlarge;
}
&--link {
border-right: 1px solid $blue-dark;
padding: 0 $space-large !important;
@media($max-mobile-viewport) {
margin: $space-medium 0;
}
}
&--label {
text-transform: uppercase;
font-weight: 900 !important;
&:hover {
text-decoration: underline;
}
}
}
.gru-nav-button {
top: $space-medium;
right: $space-medium;
left: auto;
border-radius: 100%;
border: 9px solid transparent;
&.toggled {
background: $yellow;
& .icon-bar {
background: $blue-dark;
}
}
@media($max-mobile-viewport) {
+ ul {
width: 100vw;
}
}
}
.submenu {
@media($min-desktop-viewport) {
border: 1px solid white;
}
&--link {
@media($max-mobile-viewport) {
padding: $space-small 3rem;
}
}
&--label {
color: white;
&:hover {
color: $yellow;
text-decoration: underline;
}
}
}
}
%title {
background-image: linear-gradient(#{$yellow}, #{$yellow});
background-size: 60px 7px;
background-position: 0 100%;
background-repeat: no-repeat;
margin: $space-small 0;
@media ($max-mobile-viewport) {
font-size: $fz-3;
}
}
%button {
background: var(--background);
color: var(--color);
box-shadow: none;
font-weight: 700;
overflow: clip;
position: relative;
z-index: 1;
transition: 0;
padding: $space-large $space-xlarge;
&:hover {
box-shadow: none;
background: $button-background;
}
&::before {
top: 0;
left: 0;
width: 0;
height: 100%;
z-index: -1;
position: absolute;
background: var(--hover-background);
content: "";
transition: .2s ease;
}
&:hover::before {
width: 100%;
}
}
.pk-button-cancel {
&, #footer-wrapper & {
@extend %button;
background: $blue-dark;
color: white;
border: 1px solid white;
}
}
.form-content {
&--title {
background: transparent;
font-size: $fz-1;
@media($max-mobile-viewport) {
font-size: $fz-2;
}
color: $blue-dark;
font-weight: 900;
padding-top: 1rem;
}
}
.field {
&--label {
font-weight: 700;
color: $blue-dark;
}
}
.wcs-steps {
border-radius: 5px;
padding: $space-large;
box-shadow: 0 0 16px 0 rgba(0,0,0,.33)
}
input, textarea, .godo--editor, select, div.select2-container, span.select2-container {
border-bottom: 1px solid $blue-dark;
}
.select2-results {
border: 1px solid $blue-dark;
}
#footer {
padding: 3rem 0;
div.cell {
@media($max-mobile-viewport) {
display: flex;
justify-content: center;
}
}
.menu {
display: flex;
flex-direction: column;
&--label {
display: flex;
align-items: center;
text-transform: uppercase;
font-weight: 700;
&:hover {
color: $yellow;
text-decoration: underline;
}
&::before {
content: '\f054'; // chevron-right
font-family: FontAwesome;
color: $yellow;
font-weight: normal;
margin-right: 0.5em;
font-size: 0.7rem;
}
&:hover::before {
text-decoration: none;
}
}
}
}

79
static/manche/_vars.scss Normal file
View File

@ -0,0 +1,79 @@
@import '../includes/fonts/raleway';
$blue: #496BAE;
$blue-dark: #0B1E4D;
$yellow: #FFCA60;
$beige: #EEEBE8;
$font-family: Raleway, sans-serif;
$scale: 1rem;
$space-small: 5px;
$space-medium: 10px;
$space-large: 18px;
$space-xlarge: 35px;
// Typo
$fz-1: 55 / 16 * $scale;
$fz-2: 36 / 16 * $scale;
$fz-3: 28 / 16 * $scale;
$font-size: 18 / 16 * $scale;
$fz-small: 14 / 16 * $scale;
$title-color: $blue;
$title-font-size: $fz-2;
$title-transform: uppercase;
$title-weight: 700;
$title-padding: $space-small 0;
// Layout
$width: 1140px;
// Header
$header-background-color: $yellow;
$header-full-width-background: true;
$header-logo-size: 200px 50px;
$toplinks-style: none;
$responsive-menu: left-to-right;
$nav-active-color: $blue-dark;
$nav-background: $yellow;
$nav-item-background: transparent;
$nav-item-selected-background: transparent;
$nav-menu-color: $blue-dark;
$nav-submenu-background: $blue-dark;
$nav-mobile-menu-background: $blue-dark;
$nav-mobile-menu-item-color: white;
$nav-mobile-menu-item-hover-color: $yellow;
$nav-button-color: $yellow;
$nav-button-bar-height: 4px;
$nav-after-image: false;
// Widgets
$widget-focus-outline: 2px solid $blue;
$widget-border: 0;
$button-background: $yellow;
$button-color: $blue-dark;
$button-hover-background: $blue;
$button-hover-color: white;
$button-border: 0;
$button-border-radius: 2.375rem;
$buttons-order: previous, cancel (grow), submit;
$cancel-button-style: ".pk-button-cancel";
// cells
$cell-border: none;
// w.c.s
$wcs-steps-background: $beige;
// Step
$wcs-step-color: $blue-dark;
$wcs-step-current-color: $blue;
// Footer
$footer-background: $blue-dark;

17
static/manche/config.json Normal file
View File

@ -0,0 +1,17 @@
{
"label": "Manche",
"variables": {
"theme_color": "#0b1e4d",
"email_header_asset": "emails:logo"
},
"settings": {
"combo": {
"COMBO_ASSET_SLOTS.update": {
"header:background": { "label": "Têtière : fond" },
"header:logo": { "label": "Têtière : logo" },
"emails:logo": { "label": "Courriels : logo" }
}
}
}
}

5
static/manche/style.scss Normal file
View File

@ -0,0 +1,5 @@
@charset "UTF-8";
@import 'vars';
@import '../includes/publik';
@import 'custom';

View File

@ -148,22 +148,9 @@ label {
//
// Layout
//
// add edge-gutter
.page-width,
.header-width,
.nav-width,
.footer-width,
div#header {
@if $theme-edge-gutter {
--edge-gutter: #{$theme-edge-gutter};
box-sizing: content-box;
padding-left: var(--edge-gutter,);
padding-right: var(--edge-gutter);
width: auto !important;
@media ($max-mobile-viewport) {
--edge-gutter: 1em;
}
}
.nav-width {
--edge-gutter: 0;
}
@media ($max-mobile-viewport) {
.central-content #sidebar {
@ -394,7 +381,7 @@ div#main-content-wrapper {
@media ($min-desktop-viewport) {
min-height: 15rem;
background-color: $gray-light;
border-left-width: Max(#{$theme-edge-gutter)}, calc(50vw - var(--ref-width) / 2));
border-left-width: Max(#{$edge-gutter)}, calc(50vw - var(--ref-width) / 2));
border-left-color: $red;
border-left-style: solid;
padding-left: 0;

View File

@ -19,7 +19,8 @@ $fz-xsmall: 12em / $base-font;
$title-ff: Inter, sans-serif;
// Layout
$theme-edge-gutter: 2rem;
$edge-gutter: 2rem;
$edge-gutter-mobile: 1em;
$central-content-top: 2rem;
// Core vars

View File

@ -1407,6 +1407,9 @@ div#rub_service div.file-upload-widget {
}
div.widget-message {
padding-top: 30px;
p {
margin: 0;
}
&::before {
pointer-events: none;
content: "\f016"; // file-o

View File

@ -907,7 +907,7 @@ div.wcs-tracking-code-input {
.gru-content #sidebar div.cell {
margin-right: 0;
}
.has-pwa-navigation footer {
footer {
margin-bottom: $mobile-navigation-height;
}
#footer-wrapper {

View File

@ -3,7 +3,8 @@
&--item-name,
&--item-unit,
&--item-location,
&--item-date {
&--item-date,
&--item-no-capacity {
font-size: 90%;
margin-left: 10px;
@ -23,6 +24,7 @@
&--item-name::before { content: "\f007"; }
&--item-location::before { content: "\f041"; }
&--item-date::before { content: "\f133"; }
&--item-no-capacity::before { content: "\f254"; color: $color-warning;}
}
.theme-basket {

View File

@ -8,6 +8,7 @@ $min-desktop-viewport: "min-width: #{$mobile-limit + 1}";
$title-color: #161c2a;
$title-font-size: 200%;
$very-small-limit: 560px;
$color-warning: #eb7500;
.cancel-button {}
.cell-items-pagination {}

View File

@ -4,10 +4,18 @@
{% block registration %}
<div class="cell--body">
{% block registration-password-form-pre %}
<p>
Après validation de votre adresse électronique, un lien vous sera envoyé par courriel
pour poursuivre la création de votre compte.
</p>
{% if is_phone_authn_active %}
<p>
Après validation de votre adresse électronique ou de votre numéro de téléphone, un lien
vous sera envoyé par courriel ou un code par SMS, selon le mode d'inscription choisi,
pour poursuivre la création de votre compte.
</p>
{% else %}
<p>
Après validation de votre adresse électronique, un lien vous sera envoyé par courriel
pour poursuivre la création de votre compte.
</p>
{% endif %}
{% endblock %}
{{ block.super }}
</div>

View File

@ -8,13 +8,22 @@
{% block content %}
<div class="password-reset-form">
<p>
Si vous avez égaré votre mot de passe et que vous souhaitez pouvoir vous
connecter à nouveau, indiquez votre adresse électronique. Vous recevrez un
courriel vous permettant de définir un nouveau mot de passe.
</p>
{% if is_phone_authn_active %}
<p>
Si vous avez égaré votre mot de passe et souhaitez pouvoir vous connecter à
nouveau, veuillez indiquer votre adresse électronique ou votre numéro de
téléphone. Vous recevrez alors un courriel ou un SMS vous permettant de
définir un nouveau mot de passe.
</p>
{% else %}
<p>
Si vous avez égaré votre mot de passe et que vous souhaitez pouvoir vous
connecter à nouveau, indiquez votre adresse électronique. Vous recevrez un
courriel vous permettant de définir un nouveau mot de passe.
</p>
{% endif %}
<form method="post" class="pk-mark-optional-fields">
<form method="post" class="{% if not is_phone_authn_active %}pk-mark-optional-fields{% else %}pk-hide-requisiteness{% endif %}">
{% csrf_token %}
{{ form|with_template }}
<button class="submit-button">{% trans 'Submit' %}</button>

View File

@ -1,4 +1,5 @@
{% extends "authentic2/login_password_registration_form.html" %}
{% block registration-block-title %}
<h2>Via courriel ou numéro de téléphone</h2>
{% endblock %}

View File

@ -0,0 +1,12 @@
{% extends 'theme.html' %}
{# move nav #}
{% block header-content %}
{% block nav %}{% endblock %}
{% block top-links %}{% endblock %}
{% endblock %}
{% block after-header %}
{% endblock %}

View File

@ -10,7 +10,10 @@
</div>
<div class="tile-content">
<div class="adresse">
{{ silo.properties.voie }} {% if silo.properties.observation and silo.properties.observation != 'None' %}({{ silo.properties.observation }}){% endif %}<br>
{% firstof silo.properties.adresse silo.properties.voie %}
{% if silo.properties.observation_localisante %}({{ silo.properties.observation_localisante }}){% endif %}
{% if silo.properties.observation and silo.properties.observation != 'None' %}({{ silo.properties.observation }}){% endif %}
<br>
{{ silo.properties.commune }}
</div>
</div>

View File

@ -43,6 +43,11 @@
<div class="theme-activities--item-type">{{ item.criterias.type.data|get:item.criterias.type.order.0 }}</div>
<div class="theme-activities--item-location">{{ item.place.text }}</div>
<div class="theme-activities--item-date">Du {{ item.unit.dateStart|date:"d/m/Y" }} au {{ item.unit.dateEnd|date:"d/m/Y" }}</div>
{% if item.place.capacityInfo.controlOK == False %}
<div class="theme-activities--item-no-capacity">
Plus de place, mais vous pouvez vous inscrire en liste d'attente
</div>
{% endif %}
</div>
<div class="theme-activities--item-details">
<p class"theme-activities--item-description">{{ item.activity.activityPortail.blocNoteList.0.note }}</p>
@ -54,7 +59,13 @@
{% endfor %}.
</p>
</div>
<a class="pk-button" href="{{ eservices_url }}{% if is_portal_agent %}backoffice/submission/{% endif %}inscription-loisirs/{% if not is_portal_agent %}tryauth{% endif %}?activity_id={{ item.activity.id }}&unit_id={{ item.unit.id }}&place_id={{ item.place.id }}&catalogue=Oui{% if is_portal_agent %}&backoffice={{ foyer_id }}&cancelurl={{ portal_agent_url }}foyer/{{ foyer_id }}/page-activite/{% else %}&cancelurl={{ portal_url }}mes-activites/{% endif %}">Inscription</a>
<a class="pk-button" href="{{ eservices_url }}{% if is_portal_agent %}backoffice/submission/{% endif %}inscription-loisirs/{% if not is_portal_agent %}tryauth{% endif %}?activity_id={{ item.activity.id }}&unit_id={{ item.unit.id }}&place_id={{ item.place.id }}&resume={{ resume }}{{ item.text }} // Du {{ item.unit.dateStart|date:"d/m/Y" }} au {{ item.unit.dateEnd|date:"d/m/Y" }}&catalogue=Oui{% if item.place.capacityInfo.controlOK == False %}&liste_attente=Oui{% endif %}{% if is_portal_agent %}&backoffice={{ foyer_id }}&cancelurl={{ portal_agent_url }}foyer/{{ foyer_id }}/page-activite/{% else %}&cancelurl={{ portal_url }}mes-activites/{% endif %}">
{% if item.place.capacityInfo.controlOK == False %}
Liste d'attente
{% else %}
Inscription
{% endif %}
</a>
</div>
{% endfor %}
<div class="theme-activities--pagination">
@ -77,6 +88,7 @@
const $paginationPrev = $cell.find('.theme-activities--pagination-prev')
const $paginationNext = $cell.find('.theme-activities--pagination-next')
const paginateBy = {{ pagination|default:4 }};
const queryParams = (new URL(document.location)).searchParams;
function updatePagination(step) {
const items = $cell.find('.theme-activities--item.filtered')
@ -100,7 +112,6 @@
$paginationNext.click(() => updatePagination(1))
updatePagination(0)
$cell.find('select[data-criteria]').each((_, elem) => $(elem).select2())
$cell.find('select[data-criteria]').on('change', evt => {
let selectedCriterias = []
@ -134,6 +145,16 @@
updatePagination(0)
})
$cell.find('select[data-criteria]').each((_, element) => {
const $element = $(element)
$element.select2()
const criteriaValues = queryParams.get(element.dataset.criteria)
if (criteriaValues !== null) {
$element.val(criteriaValues.split(','))
$element.trigger('change')
}
})
$cell.find('.theme-activities--item-label').on('click', evt => {
$(evt.target).closest('.theme-activities--item').toggleClass('collapsed')
})