diff --git a/gestioncof/cms/fixtures/cofcms.json b/gestioncof/cms/fixtures/cofcms.json index d8e60c52..11050032 100644 --- a/gestioncof/cms/fixtures/cofcms.json +++ b/gestioncof/cms/fixtures/cofcms.json @@ -165,7 +165,7 @@ "fields": { "path": "0001000100020005", "depth": 4, - "numchild": 0, + "numchild": 1, "title": "Cours Particuliers", "slug": "cours-particuliers", "content_type": [ @@ -479,6 +479,38 @@ "live_revision": null } }, +{ + "model": "wagtailcore.page", + "pk": 26, + "fields": { + "path": "00010001000200050001", + "depth": 5, + "numchild": 0, + "title": "Demande de petit cours", + "slug": "demande-de-petit-cours", + "content_type": [ + "cofcms", + "cofpage" + ], + "live": true, + "has_unpublished_changes": false, + "url_path": "/global/site/cours-particuliers/demande-de-petit-cours/", + "owner": [ + "root" + ], + "seo_title": "", + "show_in_menus": false, + "search_description": "", + "go_live_at": null, + "expire_at": null, + "expired": false, + "locked": false, + "first_published_at": "2018-03-21T19:54:20.527Z", + "last_published_at": "2018-03-21T19:54:20.527Z", + "latest_revision_created_at": "2018-03-21T19:54:20.302Z", + "live_revision": null + } +}, { "model": "wagtailcore.collection", "pk": 3, @@ -747,8 +779,8 @@ "fields": { "sort_order": 5, "link_page": null, - "link_url": "/sympa/", - "link_text": "Listes mail", + "link_url": "https://www.eleves.ens.fr", + "link_text": "Services élèves ENS", "handle": "", "url_append": "", "allow_subnav": false, @@ -877,8 +909,27 @@ "seo_title_en": null, "search_description_fr": "", "search_description_en": "", - "body": "[{\"id\": \"dbf9f940-51a6-43d1-89ff-1bf0648cead8\", \"value\": \"

Les \\u00e9l\\u00e8ves de l'ENS peuvent donner des cours particuliers. Si vous \\n\\u00eates int\\u00e9ress\\u00e9 pour en prendre, merci de faire une demande de petits \\ncours sur cette page.

\\n \\n \\n\\t\\n\\t
\\n\\tSi vous \\u00eates \\u00e9l\\u00e8ve de l'\\u00e9cole, vous pouvez g\\u00e9rer vos petits cours sur GestioCOF.\", \"type\": \"paragraph\"}]", - "body_fr": "[{\"id\": \"dbf9f940-51a6-43d1-89ff-1bf0648cead8\", \"value\": \"

Les \\u00e9l\\u00e8ves de l'ENS peuvent donner des cours particuliers. Si vous \\n\\u00eates int\\u00e9ress\\u00e9 pour en prendre, merci de faire une demande de petits \\ncours sur cette page.

\\n \\n \\n\\t\\n\\t
\\n\\tSi vous \\u00eates \\u00e9l\\u00e8ve de l'\\u00e9cole, vous pouvez g\\u00e9rer vos petits cours sur GestioCOF.\", \"type\": \"paragraph\"}]", + "body": "[{\"id\": \"dbf9f940-51a6-43d1-89ff-1bf0648cead8\", \"value\": \"

Les \\u00e9l\\u00e8ves de l'ENS peuvent donner des cours particuliers. Si vous \\n\\u00eates int\\u00e9ress\\u00e9 pour en prendre, merci de faire une demande de petits \\ncours sur cette page.

\\n \\n \\n\\t\\n\\t
\\n\\tSi vous \\u00eates \\u00e9l\\u00e8ve de l'\\u00e9cole, vous pouvez g\\u00e9rer vos petits cours sur GestioCOF.\", \"type\": \"paragraph\"}]", + "body_fr": "[{\"id\": \"dbf9f940-51a6-43d1-89ff-1bf0648cead8\", \"value\": \"

Les \\u00e9l\\u00e8ves de l'ENS peuvent donner des cours particuliers. Si vous \\n\\u00eates int\\u00e9ress\\u00e9 pour en prendre, merci de faire une demande de petits \\ncours sur cette page.

\\n \\n \\n\\t\\n\\t
\\n\\tSi vous \\u00eates \\u00e9l\\u00e8ve de l'\\u00e9cole, vous pouvez g\\u00e9rer vos petits cours sur GestioCOF.\", \"type\": \"paragraph\"}]", + "body_en": "[]" + } +}, +{ + "model": "cofcms.cofpage", + "pk": 26, + "fields": { + "title_fr": "Demande de petit cours", + "title_en": null, + "slug_fr": "demande-de-petit-cours", + "slug_en": null, + "url_path_fr": "/global/site/cours-particuliers/demande-de-petit-cours/", + "url_path_en": "/global/site/cours-particuliers/demande-de-petit-cours/", + "seo_title_fr": null, + "seo_title_en": null, + "search_description_fr": "", + "search_description_en": "", + "body": "[{\"value\": {\"url\": \"https://www.cof.ens.fr/gestion/petitcours/demande-raw\", \"height\": \"1050\"}, \"id\": \"397ff222-6c1b-4e5c-a971-a50621dd83b3\", \"type\": \"iframe\"}]", + "body_fr": "[{\"value\": {\"url\": \"https://www.cof.ens.fr/gestion/petitcours/demande-raw\", \"height\": \"1050\"}, \"id\": \"397ff222-6c1b-4e5c-a971-a50621dd83b3\", \"type\": \"iframe\"}]", "body_en": "[]" } }, diff --git a/gestioncof/cms/models.py b/gestioncof/cms/models.py index eeb6a025..a66a6bc2 100644 --- a/gestioncof/cms/models.py +++ b/gestioncof/cms/models.py @@ -34,13 +34,23 @@ class COFRootPage(Page, COFActuIndexMixin): verbose_name = "Racine site du COF" verbose_name_plural = "Racines site du COF" - +# Block iframe +class IFrameBlock(blocks.StructBlock): + url = blocks.URLBlock("Adresse de la page") + height = blocks.CharBlock("Hauteur (en pixels)") + + class Meta: + verbose_name = "Page incluse (iframe, à utiliser avec précaution)" + verbose_name_plural = "Pages incluses (iframes, à utiliser avec précaution)" + template = "cofcms/iframe_block.html" + # Page lambda du site class COFPage(Page): body = StreamField([ ('heading', blocks.CharBlock(classname="full title")), ('paragraph', blocks.RichTextBlock()), ('image', ImageChooserBlock()), + ('iframe', IFrameBlock()), ]) content_panels = Page.content_panels + [ @@ -169,13 +179,8 @@ class COFDirectoryEntryPage(Page, Orderable): verbose_name = "Entrée d'annuaire" verbose_name_plural = "Entrées d'annuaire" -# Pour le calendrier et le sympa, ne doit pas être pris par ModelTranslation +# Pour le calendrier, ne doit pas être pris par ModelTranslation class COFUtilPage(RoutablePageMixin, Page): - # Protection pour le serveur des mailing listes - @route(r'^sympa/$') - def sympa(self, request): - from .views import sympa_view - return sympa_view(request) # Mini calendrier @route(r'^calendar/(\d+)/(\d+)/$') diff --git a/gestioncof/cms/templates/cofcms/cof_page.html b/gestioncof/cms/templates/cofcms/cof_page.html index 812ab746..28862d2b 100644 --- a/gestioncof/cms/templates/cofcms/cof_page.html +++ b/gestioncof/cms/templates/cofcms/cof_page.html @@ -11,15 +11,19 @@ {% for block in page.body %} {% if block.block_type == "heading" %}

{{ block.value }}

- {% else %}{% if block.block_type == "paragraph" %} + {% elif block.block_type == "paragraph" %}
{{ block.value|safe }}
- {% else %}{% if block.block_type == "image" %} + {% elif block.block_type == "image" %}
{% image block.value width-800 %}
- {% endif %}{% endif %}{% endif %} + {% elif block.block_type == "iframe" %} +
+ +
+ {% endif %} {% endfor %} {% endblock %} diff --git a/gestioncof/cms/views.py b/gestioncof/cms/views.py index af70c6d7..c1f1d857 100644 --- a/gestioncof/cms/views.py +++ b/gestioncof/cms/views.py @@ -4,12 +4,3 @@ import re def raw_calendar_view(request, year, month): return render(request, "cofcms/calendar_raw.html", {"month": month, "year": year}) - -def sympa_view(request): - erreur = None - if request.POST and "bassin" in request.POST: - if re.match(r'\s*(les|the)\s*ernests?\s*', request.POST["bassin"], - re.IGNORECASE): - return HttpResponseRedirect("https://lists.ens.fr/wws") - erreur = "Réponse invalide" - return render(request, "cofcms/sympa.html", {"erreur": erreur})