Clean, lint and fix little things
This commit is contained in:
parent
f105225abf
commit
376cc96343
9 changed files with 62 additions and 63 deletions
|
@ -135,4 +135,5 @@ if settings.DEBUG:
|
||||||
# Wagtail for uncatched
|
# Wagtail for uncatched
|
||||||
urlpatterns += i18n_patterns(
|
urlpatterns += i18n_patterns(
|
||||||
url(r'', include(wagtail_urls)),
|
url(r'', include(wagtail_urls)),
|
||||||
|
prefix_default_language=False
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
from django.contrib import admin
|
|
||||||
|
|
||||||
# Register your models here.
|
|
|
@ -1084,7 +1084,6 @@
|
||||||
"seo_title_en": null,
|
"seo_title_en": null,
|
||||||
"search_description_fr": "",
|
"search_description_fr": "",
|
||||||
"search_description_en": "",
|
"search_description_en": "",
|
||||||
"sort_order": null,
|
|
||||||
"body": "Le club Arts Plastiques te propose un lieu de rencontre entre \npersonnes int\u00e9ress\u00e9es par les arts plastiques, le dessin ou la peinture.<br/>\nMais, que faisons-nous au club Arts Plastiques ? D\u2019abord, des s\u00e9ances \nd\u2019initiation; et puis des s\u00e9ances \u00e0 th\u00e8me, avec des intervenants; des \nprojets communs; des sorties croquis\u2026<br/><p>\nQue tu n\u2019aies jamais touch\u00e9 \u00e0 un pinceau, ou que tu sois d\u00e9j\u00e0 un-e grand-e artiste, n\u2019h\u00e9site pas \u00e0 venir nous rejoindre !<strong></strong></p>",
|
"body": "Le club Arts Plastiques te propose un lieu de rencontre entre \npersonnes int\u00e9ress\u00e9es par les arts plastiques, le dessin ou la peinture.<br/>\nMais, que faisons-nous au club Arts Plastiques ? D\u2019abord, des s\u00e9ances \nd\u2019initiation; et puis des s\u00e9ances \u00e0 th\u00e8me, avec des intervenants; des \nprojets communs; des sorties croquis\u2026<br/><p>\nQue tu n\u2019aies jamais touch\u00e9 \u00e0 un pinceau, ou que tu sois d\u00e9j\u00e0 un-e grand-e artiste, n\u2019h\u00e9site pas \u00e0 venir nous rejoindre !<strong></strong></p>",
|
||||||
"body_fr": "Le club Arts Plastiques te propose un lieu de rencontre entre \npersonnes int\u00e9ress\u00e9es par les arts plastiques, le dessin ou la peinture.<br/>\nMais, que faisons-nous au club Arts Plastiques ? D\u2019abord, des s\u00e9ances \nd\u2019initiation; et puis des s\u00e9ances \u00e0 th\u00e8me, avec des intervenants; des \nprojets communs; des sorties croquis\u2026<br/><p>\nQue tu n\u2019aies jamais touch\u00e9 \u00e0 un pinceau, ou que tu sois d\u00e9j\u00e0 un-e grand-e artiste, n\u2019h\u00e9site pas \u00e0 venir nous rejoindre !<strong></strong></p>",
|
"body_fr": "Le club Arts Plastiques te propose un lieu de rencontre entre \npersonnes int\u00e9ress\u00e9es par les arts plastiques, le dessin ou la peinture.<br/>\nMais, que faisons-nous au club Arts Plastiques ? D\u2019abord, des s\u00e9ances \nd\u2019initiation; et puis des s\u00e9ances \u00e0 th\u00e8me, avec des intervenants; des \nprojets communs; des sorties croquis\u2026<br/><p>\nQue tu n\u2019aies jamais touch\u00e9 \u00e0 un pinceau, ou que tu sois d\u00e9j\u00e0 un-e grand-e artiste, n\u2019h\u00e9site pas \u00e0 venir nous rejoindre !<strong></strong></p>",
|
||||||
"body_en": "",
|
"body_en": "",
|
||||||
|
@ -1108,7 +1107,6 @@
|
||||||
"seo_title_en": null,
|
"seo_title_en": null,
|
||||||
"search_description_fr": "",
|
"search_description_fr": "",
|
||||||
"search_description_en": "",
|
"search_description_en": "",
|
||||||
"sort_order": null,
|
|
||||||
"body": "De Riad Sattouf \u00e0 Katsuhiro Otomo, en passant par Andr\u00e9 Franquin, \nJacques Tardi, Didier Tarquin et Georges Wolinski, la BDth\u00e8que poss\u00e8de \nune collection de quatre mille bandes dessin\u00e9es sur une cinquantaine \nd\u2019\u00e9tag\u00e8res, en constante croissance. Class\u00e9es par dessinateur et \ncatalogu\u00e9es, toutes ces oeuvres offrent un large panorama du XXe si\u00e8cle \net sont librement consultables sur place sans mod\u00e9ration ! \u00c0 cela \ns\u2019ajoutent des milliers de p\u00e9riodiques sp\u00e9cialis\u00e9s datant de l\u2019\u00e2ge d\u2019or \nde la BD franco-belge, un Enfer cach\u00e9, et quelques conseils de lecture \n\u00e9crits par des fans.<br/><p>\nLe club organise ausis des \u00e9v\u00e9nements divers par exemple un s\u00e9minaire \nsur la bande dessin\u00e9e, qui ne demande qu\u2019\u00e0 \u00eatre relanc\u00e9. \u00c0 l\u2019ordre du \njour, la mise en place d\u2019une exp\u00e9dition \u00e0 Angoul\u00eame avec le BDA en \njanvier 2017 pourrait m\u00eame se faire avec ton aide. Tous les \ndons et suggestions d\u2019achats sont les bienvenus. Pour participer aux \nd\u00e9cisions d\u2019achats, \u00e9crire des suggesions de lecture dans le BOcal, \nchoisir les bandes dessin\u00e9es \u00e0 mettre en valeur, n\u2019h\u00e9site pas \u00e0 \nrejoindre le club!</p>",
|
"body": "De Riad Sattouf \u00e0 Katsuhiro Otomo, en passant par Andr\u00e9 Franquin, \nJacques Tardi, Didier Tarquin et Georges Wolinski, la BDth\u00e8que poss\u00e8de \nune collection de quatre mille bandes dessin\u00e9es sur une cinquantaine \nd\u2019\u00e9tag\u00e8res, en constante croissance. Class\u00e9es par dessinateur et \ncatalogu\u00e9es, toutes ces oeuvres offrent un large panorama du XXe si\u00e8cle \net sont librement consultables sur place sans mod\u00e9ration ! \u00c0 cela \ns\u2019ajoutent des milliers de p\u00e9riodiques sp\u00e9cialis\u00e9s datant de l\u2019\u00e2ge d\u2019or \nde la BD franco-belge, un Enfer cach\u00e9, et quelques conseils de lecture \n\u00e9crits par des fans.<br/><p>\nLe club organise ausis des \u00e9v\u00e9nements divers par exemple un s\u00e9minaire \nsur la bande dessin\u00e9e, qui ne demande qu\u2019\u00e0 \u00eatre relanc\u00e9. \u00c0 l\u2019ordre du \njour, la mise en place d\u2019une exp\u00e9dition \u00e0 Angoul\u00eame avec le BDA en \njanvier 2017 pourrait m\u00eame se faire avec ton aide. Tous les \ndons et suggestions d\u2019achats sont les bienvenus. Pour participer aux \nd\u00e9cisions d\u2019achats, \u00e9crire des suggesions de lecture dans le BOcal, \nchoisir les bandes dessin\u00e9es \u00e0 mettre en valeur, n\u2019h\u00e9site pas \u00e0 \nrejoindre le club!</p>",
|
||||||
"body_fr": "De Riad Sattouf \u00e0 Katsuhiro Otomo, en passant par Andr\u00e9 Franquin, \nJacques Tardi, Didier Tarquin et Georges Wolinski, la BDth\u00e8que poss\u00e8de \nune collection de quatre mille bandes dessin\u00e9es sur une cinquantaine \nd\u2019\u00e9tag\u00e8res, en constante croissance. Class\u00e9es par dessinateur et \ncatalogu\u00e9es, toutes ces oeuvres offrent un large panorama du XXe si\u00e8cle \net sont librement consultables sur place sans mod\u00e9ration ! \u00c0 cela \ns\u2019ajoutent des milliers de p\u00e9riodiques sp\u00e9cialis\u00e9s datant de l\u2019\u00e2ge d\u2019or \nde la BD franco-belge, un Enfer cach\u00e9, et quelques conseils de lecture \n\u00e9crits par des fans.<br/><p>\nLe club organise ausis des \u00e9v\u00e9nements divers par exemple un s\u00e9minaire \nsur la bande dessin\u00e9e, qui ne demande qu\u2019\u00e0 \u00eatre relanc\u00e9. \u00c0 l\u2019ordre du \njour, la mise en place d\u2019une exp\u00e9dition \u00e0 Angoul\u00eame avec le BDA en \njanvier 2017 pourrait m\u00eame se faire avec ton aide. Tous les \ndons et suggestions d\u2019achats sont les bienvenus. Pour participer aux \nd\u00e9cisions d\u2019achats, \u00e9crire des suggesions de lecture dans le BOcal, \nchoisir les bandes dessin\u00e9es \u00e0 mettre en valeur, n\u2019h\u00e9site pas \u00e0 \nrejoindre le club!</p>",
|
"body_fr": "De Riad Sattouf \u00e0 Katsuhiro Otomo, en passant par Andr\u00e9 Franquin, \nJacques Tardi, Didier Tarquin et Georges Wolinski, la BDth\u00e8que poss\u00e8de \nune collection de quatre mille bandes dessin\u00e9es sur une cinquantaine \nd\u2019\u00e9tag\u00e8res, en constante croissance. Class\u00e9es par dessinateur et \ncatalogu\u00e9es, toutes ces oeuvres offrent un large panorama du XXe si\u00e8cle \net sont librement consultables sur place sans mod\u00e9ration ! \u00c0 cela \ns\u2019ajoutent des milliers de p\u00e9riodiques sp\u00e9cialis\u00e9s datant de l\u2019\u00e2ge d\u2019or \nde la BD franco-belge, un Enfer cach\u00e9, et quelques conseils de lecture \n\u00e9crits par des fans.<br/><p>\nLe club organise ausis des \u00e9v\u00e9nements divers par exemple un s\u00e9minaire \nsur la bande dessin\u00e9e, qui ne demande qu\u2019\u00e0 \u00eatre relanc\u00e9. \u00c0 l\u2019ordre du \njour, la mise en place d\u2019une exp\u00e9dition \u00e0 Angoul\u00eame avec le BDA en \njanvier 2017 pourrait m\u00eame se faire avec ton aide. Tous les \ndons et suggestions d\u2019achats sont les bienvenus. Pour participer aux \nd\u00e9cisions d\u2019achats, \u00e9crire des suggesions de lecture dans le BOcal, \nchoisir les bandes dessin\u00e9es \u00e0 mettre en valeur, n\u2019h\u00e9site pas \u00e0 \nrejoindre le club!</p>",
|
||||||
"body_en": "",
|
"body_en": "",
|
||||||
|
@ -1132,7 +1130,6 @@
|
||||||
"seo_title_en": null,
|
"seo_title_en": null,
|
||||||
"search_description_fr": "",
|
"search_description_fr": "",
|
||||||
"search_description_en": "",
|
"search_description_en": "",
|
||||||
"sort_order": null,
|
|
||||||
"body": "<p>La <a href=\"https://www.mgen.fr/accueil/\">MGEN</a> est un des \nprincipaux partenaires du COF. Elle\u00a0participe au financement des \nprincipaux \u00e9v\u00e9nements (Jour le plus court, 48h des Arts) et \u00e0 \nl\u2019impression de la Plakette Alpha.</p>\n<p>Elle dispose \u00e9galement d\u2019un stand chaque ann\u00e9e au moment de la \nrentr\u00e9e, afin de proposer ses prestations aux pensionnaires de l\u2019Ecole.</p>",
|
"body": "<p>La <a href=\"https://www.mgen.fr/accueil/\">MGEN</a> est un des \nprincipaux partenaires du COF. Elle\u00a0participe au financement des \nprincipaux \u00e9v\u00e9nements (Jour le plus court, 48h des Arts) et \u00e0 \nl\u2019impression de la Plakette Alpha.</p>\n<p>Elle dispose \u00e9galement d\u2019un stand chaque ann\u00e9e au moment de la \nrentr\u00e9e, afin de proposer ses prestations aux pensionnaires de l\u2019Ecole.</p>",
|
||||||
"body_fr": "<p>La <a href=\"https://www.mgen.fr/accueil/\">MGEN</a> est un des \nprincipaux partenaires du COF. Elle\u00a0participe au financement des \nprincipaux \u00e9v\u00e9nements (Jour le plus court, 48h des Arts) et \u00e0 \nl\u2019impression de la Plakette Alpha.</p>\n<p>Elle dispose \u00e9galement d\u2019un stand chaque ann\u00e9e au moment de la \nrentr\u00e9e, afin de proposer ses prestations aux pensionnaires de l\u2019Ecole.</p>",
|
"body_fr": "<p>La <a href=\"https://www.mgen.fr/accueil/\">MGEN</a> est un des \nprincipaux partenaires du COF. Elle\u00a0participe au financement des \nprincipaux \u00e9v\u00e9nements (Jour le plus court, 48h des Arts) et \u00e0 \nl\u2019impression de la Plakette Alpha.</p>\n<p>Elle dispose \u00e9galement d\u2019un stand chaque ann\u00e9e au moment de la \nrentr\u00e9e, afin de proposer ses prestations aux pensionnaires de l\u2019Ecole.</p>",
|
||||||
"body_en": "",
|
"body_en": "",
|
||||||
|
@ -1156,7 +1153,6 @@
|
||||||
"seo_title_en": null,
|
"seo_title_en": null,
|
||||||
"search_description_fr": "",
|
"search_description_fr": "",
|
||||||
"search_description_en": "",
|
"search_description_en": "",
|
||||||
"sort_order": null,
|
|
||||||
"body": "<p>Si vous ouvrez un compte \u00e0 la SoG\u00e9, ils vous versent 140\u20ac et versent \naussi une somme au bureau, nous permettant de financer vos clubs et \n\u00e9v\u00e8nements. Vous pouvez donc rembourser votre cotisation au COF (voire \nplus) rien qu\u2019en ouvrant un compte !</p>\n<p>Vous devez ouvrir ce compte lors des journ\u00e9es de rentr\u00e9e, lorsque la \nSoG\u00e9 a un stand \u00e0 l\u2019Ecole, ou toute l\u2019ann\u00e9e \u00e0 leur agence au 38 rue \nGay-Lussac.</p>",
|
"body": "<p>Si vous ouvrez un compte \u00e0 la SoG\u00e9, ils vous versent 140\u20ac et versent \naussi une somme au bureau, nous permettant de financer vos clubs et \n\u00e9v\u00e8nements. Vous pouvez donc rembourser votre cotisation au COF (voire \nplus) rien qu\u2019en ouvrant un compte !</p>\n<p>Vous devez ouvrir ce compte lors des journ\u00e9es de rentr\u00e9e, lorsque la \nSoG\u00e9 a un stand \u00e0 l\u2019Ecole, ou toute l\u2019ann\u00e9e \u00e0 leur agence au 38 rue \nGay-Lussac.</p>",
|
||||||
"body_fr": "<p>Si vous ouvrez un compte \u00e0 la SoG\u00e9, ils vous versent 140\u20ac et versent \naussi une somme au bureau, nous permettant de financer vos clubs et \n\u00e9v\u00e8nements. Vous pouvez donc rembourser votre cotisation au COF (voire \nplus) rien qu\u2019en ouvrant un compte !</p>\n<p>Vous devez ouvrir ce compte lors des journ\u00e9es de rentr\u00e9e, lorsque la \nSoG\u00e9 a un stand \u00e0 l\u2019Ecole, ou toute l\u2019ann\u00e9e \u00e0 leur agence au 38 rue \nGay-Lussac.</p>",
|
"body_fr": "<p>Si vous ouvrez un compte \u00e0 la SoG\u00e9, ils vous versent 140\u20ac et versent \naussi une somme au bureau, nous permettant de financer vos clubs et \n\u00e9v\u00e8nements. Vous pouvez donc rembourser votre cotisation au COF (voire \nplus) rien qu\u2019en ouvrant un compte !</p>\n<p>Vous devez ouvrir ce compte lors des journ\u00e9es de rentr\u00e9e, lorsque la \nSoG\u00e9 a un stand \u00e0 l\u2019Ecole, ou toute l\u2019ann\u00e9e \u00e0 leur agence au 38 rue \nGay-Lussac.</p>",
|
||||||
"body_en": "",
|
"body_en": "",
|
||||||
|
@ -1180,7 +1176,6 @@
|
||||||
"seo_title_en": null,
|
"seo_title_en": null,
|
||||||
"search_description_fr": "",
|
"search_description_fr": "",
|
||||||
"search_description_en": "",
|
"search_description_en": "",
|
||||||
"sort_order": null,
|
|
||||||
"body": "<p>La <a href=\"http://www.maif.fr/accueil.html\">Maif</a>\u00a0est un partenaire important du COF, et participe notamment au financement de la Plakette.</p>\n<p>Elle est aussi pr\u00e9sente \u00e0 chaque rentr\u00e9e pour proposer ses services sous la forme d\u2019un stand d\u2019information.</p>",
|
"body": "<p>La <a href=\"http://www.maif.fr/accueil.html\">Maif</a>\u00a0est un partenaire important du COF, et participe notamment au financement de la Plakette.</p>\n<p>Elle est aussi pr\u00e9sente \u00e0 chaque rentr\u00e9e pour proposer ses services sous la forme d\u2019un stand d\u2019information.</p>",
|
||||||
"body_fr": "<p>La <a href=\"http://www.maif.fr/accueil.html\">Maif</a>\u00a0est un partenaire important du COF, et participe notamment au financement de la Plakette.</p>\n<p>Elle est aussi pr\u00e9sente \u00e0 chaque rentr\u00e9e pour proposer ses services sous la forme d\u2019un stand d\u2019information.</p>",
|
"body_fr": "<p>La <a href=\"http://www.maif.fr/accueil.html\">Maif</a>\u00a0est un partenaire important du COF, et participe notamment au financement de la Plakette.</p>\n<p>Elle est aussi pr\u00e9sente \u00e0 chaque rentr\u00e9e pour proposer ses services sous la forme d\u2019un stand d\u2019information.</p>",
|
||||||
"body_en": "",
|
"body_en": "",
|
||||||
|
|
|
@ -33,11 +33,6 @@ class Migration(migrations.Migration):
|
||||||
name='cofdirectoryentrypage',
|
name='cofdirectoryentrypage',
|
||||||
options={'verbose_name': "Entrée d'annuaire", 'verbose_name_plural': "Entrées d'annuaire"},
|
options={'verbose_name': "Entrée d'annuaire", 'verbose_name_plural': "Entrées d'annuaire"},
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
|
||||||
model_name='cofdirectoryentrypage',
|
|
||||||
name='sort_order',
|
|
||||||
field=models.IntegerField(blank=True, editable=False, null=True),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='cofdirectorypage',
|
model_name='cofdirectorypage',
|
||||||
name='alphabetique',
|
name='alphabetique',
|
||||||
|
|
|
@ -1,17 +1,13 @@
|
||||||
|
from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
|
|
||||||
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
|
|
||||||
from django.utils.translation import ugettext as _
|
|
||||||
|
|
||||||
from wagtail.contrib.wagtailroutablepage.models import RoutablePageMixin, route
|
from wagtail.contrib.wagtailroutablepage.models import RoutablePageMixin, route
|
||||||
from wagtail.wagtailadmin.edit_handlers import FieldPanel, StreamFieldPanel
|
from wagtail.wagtailadmin.edit_handlers import FieldPanel, StreamFieldPanel
|
||||||
from wagtail.wagtailcore import blocks
|
from wagtail.wagtailcore import blocks
|
||||||
from wagtail.wagtailcore.fields import RichTextField, StreamField
|
from wagtail.wagtailcore.fields import RichTextField, StreamField
|
||||||
from wagtail.wagtailcore.models import Page, Orderable
|
from wagtail.wagtailcore.models import Page
|
||||||
from wagtail.wagtailimages.edit_handlers import ImageChooserPanel
|
|
||||||
from wagtail.wagtailimages.blocks import ImageChooserBlock
|
from wagtail.wagtailimages.blocks import ImageChooserBlock
|
||||||
from wagtail.wagtailsnippets.models import register_snippet
|
from wagtail.wagtailimages.edit_handlers import ImageChooserPanel
|
||||||
|
|
||||||
|
|
||||||
# Page pouvant afficher des actualités
|
# Page pouvant afficher des actualités
|
||||||
class COFActuIndexMixin:
|
class COFActuIndexMixin:
|
||||||
|
@ -20,6 +16,7 @@ class COFActuIndexMixin:
|
||||||
actus = COFActuPage.objects.live().order_by('-date_start').descendant_of(self)
|
actus = COFActuPage.objects.live().order_by('-date_start').descendant_of(self)
|
||||||
return actus
|
return actus
|
||||||
|
|
||||||
|
|
||||||
# Racine du site du COF
|
# Racine du site du COF
|
||||||
class COFRootPage(Page, COFActuIndexMixin):
|
class COFRootPage(Page, COFActuIndexMixin):
|
||||||
introduction = RichTextField("Introduction")
|
introduction = RichTextField("Introduction")
|
||||||
|
@ -34,6 +31,7 @@ class COFRootPage(Page, COFActuIndexMixin):
|
||||||
verbose_name = "Racine site du COF"
|
verbose_name = "Racine site du COF"
|
||||||
verbose_name_plural = "Racines site du COF"
|
verbose_name_plural = "Racines site du COF"
|
||||||
|
|
||||||
|
|
||||||
# Block iframe
|
# Block iframe
|
||||||
class IFrameBlock(blocks.StructBlock):
|
class IFrameBlock(blocks.StructBlock):
|
||||||
url = blocks.URLBlock("Adresse de la page")
|
url = blocks.URLBlock("Adresse de la page")
|
||||||
|
@ -44,6 +42,7 @@ class IFrameBlock(blocks.StructBlock):
|
||||||
verbose_name_plural = "Pages incluses (iframes, à utiliser avec précaution)"
|
verbose_name_plural = "Pages incluses (iframes, à utiliser avec précaution)"
|
||||||
template = "cofcms/iframe_block.html"
|
template = "cofcms/iframe_block.html"
|
||||||
|
|
||||||
|
|
||||||
# Page lambda du site
|
# Page lambda du site
|
||||||
class COFPage(Page):
|
class COFPage(Page):
|
||||||
body = StreamField([
|
body = StreamField([
|
||||||
|
@ -64,6 +63,7 @@ class COFPage(Page):
|
||||||
verbose_name = "Page normale COF"
|
verbose_name = "Page normale COF"
|
||||||
verbose_name_plural = "Pages normales COF"
|
verbose_name_plural = "Pages normales COF"
|
||||||
|
|
||||||
|
|
||||||
# Actualités
|
# Actualités
|
||||||
class COFActuIndexPage(Page, COFActuIndexMixin):
|
class COFActuIndexPage(Page, COFActuIndexMixin):
|
||||||
subpage_types = ['COFActuPage']
|
subpage_types = ['COFActuPage']
|
||||||
|
@ -89,6 +89,7 @@ class COFActuIndexPage(Page, COFActuIndexMixin):
|
||||||
context['actus'] = actus
|
context['actus'] = actus
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
||||||
class COFActuPage(RoutablePageMixin, Page):
|
class COFActuPage(RoutablePageMixin, Page):
|
||||||
chapo = models.TextField("Description rapide", blank=True)
|
chapo = models.TextField("Description rapide", blank=True)
|
||||||
body = RichTextField("Contenu")
|
body = RichTextField("Contenu")
|
||||||
|
@ -99,10 +100,10 @@ class COFActuPage(RoutablePageMixin, Page):
|
||||||
)
|
)
|
||||||
is_event = models.BooleanField("Évènement", default=True, blank=True)
|
is_event = models.BooleanField("Évènement", default=True, blank=True)
|
||||||
date_start = models.DateTimeField("Date et heure de début")
|
date_start = models.DateTimeField("Date et heure de début")
|
||||||
date_end = models.DateTimeField("Date et heure de fin", blank=True, default=None, null=True)
|
date_end = models.DateTimeField("Date et heure de fin", blank=True,
|
||||||
|
default=None, null=True)
|
||||||
all_day = models.BooleanField("Toute la journée", default=False, blank=True)
|
all_day = models.BooleanField("Toute la journée", default=False, blank=True)
|
||||||
|
|
||||||
|
|
||||||
content_panels = Page.content_panels + [
|
content_panels = Page.content_panels + [
|
||||||
ImageChooserPanel('image'),
|
ImageChooserPanel('image'),
|
||||||
FieldPanel('chapo'),
|
FieldPanel('chapo'),
|
||||||
|
@ -120,6 +121,7 @@ class COFActuPage(RoutablePageMixin, Page):
|
||||||
verbose_name = "Actualité"
|
verbose_name = "Actualité"
|
||||||
verbose_name_plural = "Actualités"
|
verbose_name_plural = "Actualités"
|
||||||
|
|
||||||
|
|
||||||
# Annuaires (Clubs, partenaires, bonnes adresses)
|
# Annuaires (Clubs, partenaires, bonnes adresses)
|
||||||
class COFDirectoryPage(Page):
|
class COFDirectoryPage(Page):
|
||||||
introduction = RichTextField("Introduction")
|
introduction = RichTextField("Introduction")
|
||||||
|
@ -147,7 +149,7 @@ class COFDirectoryPage(Page):
|
||||||
verbose_name_plural = "Annuaires"
|
verbose_name_plural = "Annuaires"
|
||||||
|
|
||||||
|
|
||||||
class COFDirectoryEntryPage(Page, Orderable):
|
class COFDirectoryEntryPage(Page):
|
||||||
body = RichTextField("Description")
|
body = RichTextField("Description")
|
||||||
links = StreamField([
|
links = StreamField([
|
||||||
('lien', blocks.StructBlock([
|
('lien', blocks.StructBlock([
|
||||||
|
@ -179,6 +181,7 @@ class COFDirectoryEntryPage(Page, Orderable):
|
||||||
verbose_name = "Entrée d'annuaire"
|
verbose_name = "Entrée d'annuaire"
|
||||||
verbose_name_plural = "Entrées d'annuaire"
|
verbose_name_plural = "Entrées d'annuaire"
|
||||||
|
|
||||||
|
|
||||||
# Pour le calendrier, ne doit pas être pris par ModelTranslation
|
# Pour le calendrier, ne doit pas être pris par ModelTranslation
|
||||||
class COFUtilPage(RoutablePageMixin, Page):
|
class COFUtilPage(RoutablePageMixin, Page):
|
||||||
|
|
||||||
|
|
|
@ -1,22 +1,20 @@
|
||||||
from datetime import timedelta, date
|
from datetime import date, timedelta
|
||||||
from django import template
|
|
||||||
from django.conf import settings
|
|
||||||
from django.utils import timezone, formats
|
|
||||||
import locale
|
|
||||||
|
|
||||||
|
from django import template
|
||||||
|
from django.utils import formats, timezone
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
|
|
||||||
from ..models import COFActuPage, COFUtilPage
|
from ..models import COFActuPage, COFUtilPage
|
||||||
|
|
||||||
import re
|
|
||||||
|
|
||||||
register = template.Library()
|
register = template.Library()
|
||||||
|
|
||||||
|
|
||||||
@register.filter()
|
@register.filter()
|
||||||
def obfuscate_mail(value):
|
def obfuscate_mail(value):
|
||||||
val = value.replace('', '-').replace('@', 'arbre').replace('.', 'pont')[1:]
|
val = value.replace('', '-').replace('@', 'arbre').replace('.', 'pont')[1:]
|
||||||
return val
|
return val
|
||||||
|
|
||||||
|
|
||||||
@register.inclusion_tag("cofcms/calendar.html", takes_context=True)
|
@register.inclusion_tag("cofcms/calendar.html", takes_context=True)
|
||||||
def calendar(context, month=None, year=None):
|
def calendar(context, month=None, year=None):
|
||||||
now = timezone.now()
|
now = timezone.now()
|
||||||
|
@ -44,7 +42,8 @@ def calendar(context, month=None, year=None):
|
||||||
curevents = []
|
curevents = []
|
||||||
for k in range(len(events) - 1, -1, -1):
|
for k in range(len(events) - 1, -1, -1):
|
||||||
e = events[k]
|
e = events[k]
|
||||||
if e.date_start.date() > curday: break
|
if e.date_start.date() > curday:
|
||||||
|
break
|
||||||
if (e.date_start if e.date_end is None else e.date_end).date() < curday:
|
if (e.date_start if e.date_end is None else e.date_end).date() < curday:
|
||||||
del events[k]
|
del events[k]
|
||||||
else:
|
else:
|
||||||
|
@ -61,7 +60,6 @@ def calendar(context, month=None, year=None):
|
||||||
curday += deltaday
|
curday += deltaday
|
||||||
weeks.append(week)
|
weeks.append(week)
|
||||||
|
|
||||||
|
|
||||||
# Calendar next/prev urls
|
# Calendar next/prev urls
|
||||||
try:
|
try:
|
||||||
utilpage = COFUtilPage.objects.live()[0]
|
utilpage = COFUtilPage.objects.live()[0]
|
||||||
|
@ -79,6 +77,7 @@ def calendar(context, month=None, year=None):
|
||||||
"prev_month": prev_url, "next_month": next_url})
|
"prev_month": prev_url, "next_month": next_url})
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
||||||
@register.inclusion_tag("cofcms/mini_calendar.html")
|
@register.inclusion_tag("cofcms/mini_calendar.html")
|
||||||
def mini_calendar(event):
|
def mini_calendar(event):
|
||||||
days = []
|
days = []
|
||||||
|
@ -120,7 +119,6 @@ def dates(event):
|
||||||
formats.time_format(event.date_end))
|
formats.time_format(event.date_end))
|
||||||
else:
|
else:
|
||||||
dateend_string = formats.date_format(event.date_end)
|
dateend_string = formats.date_format(event.date_end)
|
||||||
timeend_string = formats.time_format(event.date_end)
|
|
||||||
diffstart, diffend, common = factorize_suffix(datestart_string,
|
diffstart, diffend, common = factorize_suffix(datestart_string,
|
||||||
dateend_string)
|
dateend_string)
|
||||||
if event.all_day:
|
if event.all_day:
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
from django.test import TestCase
|
|
||||||
|
|
||||||
# Create your tests here.
|
|
|
@ -1,25 +1,36 @@
|
||||||
from .models import COFRootPage, COFPage, COFActuIndexPage, COFActuPage, COFDirectoryPage, COFDirectoryEntryPage
|
|
||||||
|
|
||||||
from wagtail_modeltranslation.translator import WagtailTranslationOptions
|
|
||||||
from modeltranslation.decorators import register
|
from modeltranslation.decorators import register
|
||||||
|
from wagtail_modeltranslation.translator import WagtailTranslationOptions
|
||||||
|
|
||||||
|
from .models import (
|
||||||
|
COFActuIndexPage,
|
||||||
|
COFActuPage,
|
||||||
|
COFDirectoryEntryPage,
|
||||||
|
COFDirectoryPage,
|
||||||
|
COFPage,
|
||||||
|
COFRootPage,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@register(COFRootPage)
|
@register(COFRootPage)
|
||||||
class COFPageTr(WagtailTranslationOptions):
|
class COFRootPageTr(WagtailTranslationOptions):
|
||||||
fields = (
|
fields = (
|
||||||
'introduction',
|
'introduction',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register(COFPage)
|
@register(COFPage)
|
||||||
class COFPageTr(WagtailTranslationOptions):
|
class COFPageTr(WagtailTranslationOptions):
|
||||||
fields = (
|
fields = (
|
||||||
'body',
|
'body',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register(COFActuIndexPage)
|
@register(COFActuIndexPage)
|
||||||
class COFActuIndexPageTr(WagtailTranslationOptions):
|
class COFActuIndexPageTr(WagtailTranslationOptions):
|
||||||
fields = (
|
fields = (
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register(COFActuPage)
|
@register(COFActuPage)
|
||||||
class COFActuPageTr(WagtailTranslationOptions):
|
class COFActuPageTr(WagtailTranslationOptions):
|
||||||
fields = (
|
fields = (
|
||||||
|
@ -27,12 +38,14 @@ class COFActuPageTr(WagtailTranslationOptions):
|
||||||
'body',
|
'body',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register(COFDirectoryPage)
|
@register(COFDirectoryPage)
|
||||||
class COFDirectoryPageTr(WagtailTranslationOptions):
|
class COFDirectoryPageTr(WagtailTranslationOptions):
|
||||||
fields = (
|
fields = (
|
||||||
'introduction',
|
'introduction',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@register(COFDirectoryEntryPage)
|
@register(COFDirectoryEntryPage)
|
||||||
class COFDirectoryEntryPageTr(WagtailTranslationOptions):
|
class COFDirectoryEntryPageTr(WagtailTranslationOptions):
|
||||||
fields = (
|
fields = (
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.http.response import HttpResponseRedirect
|
|
||||||
import re
|
|
||||||
|
|
||||||
def raw_calendar_view(request, year, month):
|
def raw_calendar_view(request, year, month):
|
||||||
return render(request, "cofcms/calendar_raw.html", {"month": month, "year": year})
|
return render(request, "cofcms/calendar_raw.html",
|
||||||
|
{"month": month, "year": year})
|
||||||
|
|
Loading…
Reference in a new issue