Plus de templates, plus joli

This commit is contained in:
Evarin 2017-08-26 18:05:20 +02:00
parent 09e63bf00c
commit 7853987ebb
8 changed files with 269 additions and 70 deletions

View file

@ -6,6 +6,7 @@ from wagtail.wagtailcore.fields import RichTextField, StreamField
from wagtail.wagtailcore import blocks from wagtail.wagtailcore import blocks
from wagtail.wagtailimages.edit_handlers import ImageChooserPanel from wagtail.wagtailimages.edit_handlers import ImageChooserPanel
from wagtail.wagtailimages.blocks import ImageChooserBlock from wagtail.wagtailimages.blocks import ImageChooserBlock
from django.utils.translation import ugettext as _
from wagtail.wagtailadmin.edit_handlers import FieldPanel, StreamFieldPanel from wagtail.wagtailadmin.edit_handlers import FieldPanel, StreamFieldPanel
from wagtail.wagtailsnippets.models import register_snippet from wagtail.wagtailsnippets.models import register_snippet
@ -115,13 +116,14 @@ class COFActuEventPage(Page):
if self.date_end: if self.date_end:
if self.date_end.date() == self.date_start.date(): if self.date_end.date() == self.date_start.date():
if self.all_day: if self.all_day:
return self.date_start.strftime("le %A %w %B %Y") return self.date_start.strftime(_("le %A %d %B %Y"))
else: else:
return "le %s à %s" % \ return _("le %s de %s à %s") % \
(self.date_start.strftime("%A %w %B %Y de %Hh%M"), (self.date_start.strftime("%A %d %B %Y"),
self.date_end.strftime("%Hh%M")) self.date_start.strftime(_("%Hh%M")),
self.date_end.strftime(_("%Hh%M")))
else: else:
tmpl = "%A %w %B %Y" tmpl = "%A %d %B %Y"
diff_i = len(tmpl) diff_i = len(tmpl)
if self.date_end.year != self.date_start.year: if self.date_end.year != self.date_start.year:
diff_i = len(tmpl) diff_i = len(tmpl)
@ -132,11 +134,12 @@ class COFActuEventPage(Page):
common = tmpl[diff_i:] common = tmpl[diff_i:]
diff = tmpl[:diff_i] diff = tmpl[:diff_i]
if self.all_day: if self.all_day:
return "du %s au %s %s" % (self.date_start.strftime(diff), return _("du %s au %s %s") % \
self.date_end.strftime(diff), (self.date_start.strftime(diff),
self.date_end.strftime(common)) self.date_end.strftime(diff),
self.date_end.strftime(common))
else: else:
return "du %s %s %s au %s %s" % \ return _("du %s %s à %s au %s à %s") % \
(self.date_start.strftime(diff), (self.date_start.strftime(diff),
self.date_start.strftime(common), self.date_start.strftime(common),
self.date_start.strftime("%Hh%M"), self.date_start.strftime("%Hh%M"),
@ -144,9 +147,9 @@ class COFActuEventPage(Page):
self.date_end.strftime("%Hh%M")) self.date_end.strftime("%Hh%M"))
else: else:
if self.all_day: if self.all_day:
return self.date_start.strftime("le %A %w %B %Y") return self.date_start.strftime(_("le %A %d %B %Y"))
else: else:
return self.date_start.strftime("le %A %w %B %Y à %Hh%M") return self.date_start.strftime(_("le %A %d %B %Y à %Hh%M"))
class Meta: class Meta:
verbose_name = "Actu liée à un évènement" verbose_name = "Actu liée à un évènement"
verbose_name_plural = "Actus liées à des évènements" verbose_name_plural = "Actus liées à des évènements"
@ -164,7 +167,9 @@ class COFDirectoryPage(Page):
@property @property
def entries(self): def entries(self):
entries = COFDirectoryEntryPage.objects.live().descendant_of(self) entries = COFDirectoryEntryPage.objects.live()\
.descendant_of(self)\
.order_by("title")
return entries return entries
class Meta: class Meta:

View file

@ -103,59 +103,84 @@ h2 {
a { a {
color: #f9752b; color: #f9752b;
text-decoration: none; text-decoration: none;
font-weight: bold;
} }
/* line 43, ../sass/screen.scss */ /* line 43, ../sass/screen.scss */
h2 a {
font-weight: inherit;
color: inherit;
}
/* line 49, ../sass/screen.scss */
header section { header section {
display: flex; display: flex;
width: 100%; width: 100%;
justify-content: space-between; justify-content: space-between;
align-items: stretch; align-items: stretch;
} }
/* line 49, ../sass/screen.scss */ /* line 55, ../sass/screen.scss */
header section.bottom-menu { header section.bottom-menu {
justify-content: space-around; justify-content: space-around;
text-align: center; text-align: center;
background: #47395e; background: #47395e;
} }
/* line 55, ../sass/screen.scss */ /* line 61, ../sass/screen.scss */
header h1 { header h1 {
padding: 0 15px; padding: 0 15px;
} }
/* line 59, ../sass/screen.scss */ /* line 65, ../sass/screen.scss */
header nav ul { header nav ul {
display: flex; display: flex;
} }
/* line 61, ../sass/screen.scss */ /* line 67, ../sass/screen.scss */
header nav ul li { header nav ul li {
display: inline-block; display: inline-block;
} }
/* line 63, ../sass/screen.scss */ /* line 69, ../sass/screen.scss */
header nav ul li > * { header nav ul li > * {
display: block; display: block;
padding: 10px 15px; padding: 10px 15px;
font-weight: bold; font-weight: bold;
} }
/* line 68, ../sass/screen.scss */ /* line 74, ../sass/screen.scss */
header nav ul li > *:hover { header nav ul li > *:hover {
background: #1e2139; background: #1e2139;
} }
/* line 77, ../sass/screen.scss */ /* line 83, ../sass/screen.scss */
article {
line-height: 1.4;
}
/* line 85, ../sass/screen.scss */
article p, article ul {
margin: 0.4em 0;
}
/* line 88, ../sass/screen.scss */
article ul {
padding-left: 20px;
}
/* line 90, ../sass/screen.scss */
article ul li {
list-style: outside;
}
/* line 96, ../sass/screen.scss */
.container { .container {
max-width: 1000px; max-width: 1000px;
margin: 0 auto; margin: 0 auto;
position: relative; position: relative;
} }
/* line 82, ../sass/screen.scss */ /* line 101, ../sass/screen.scss */
.container .aside-wrap { .container .aside-wrap {
position: absolute; position: absolute;
top: 30px; top: 30px;
height: 100%; height: 100%;
width: 250px; width: 250px;
} }
/* line 88, ../sass/screen.scss */ /* line 107, ../sass/screen.scss */
.container .aside-wrap .aside { .container .aside-wrap .aside {
color: #fff;
position: fixed; position: fixed;
position: sticky; position: sticky;
top: 5px; top: 5px;
@ -164,32 +189,43 @@ header nav ul li > *:hover {
padding: 15px; padding: 15px;
box-shadow: -4px 4px 1px rgba(0, 0, 0, 0.3); box-shadow: -4px 4px 1px rgba(0, 0, 0, 0.3);
} }
/* line 97, ../sass/screen.scss */ /* line 117, ../sass/screen.scss */
.container .aside-wrap .aside .calendar { .container .aside-wrap .aside .calendar {
margin: 0 auto; margin: 0 auto;
display: block; display: block;
} }
/* line 104, ../sass/screen.scss */ /* line 124, ../sass/screen.scss */
.container .content { .container .content {
max-width: 700px; max-width: 700px;
margin-left: auto; margin-left: auto;
margin-right: 0; margin-right: 0;
} }
/* line 111, ../sass/screen.scss */ /* line 129, ../sass/screen.scss */
.container .content .intro {
border-bottom: 3px solid #6f4800;
margin: 20px -10px;
margin-top: 5px;
padding: 15px 5px;
}
/* line 139, ../sass/screen.scss */
.container .content section article { .container .content section article {
background: #fff; background: #fff;
padding: 30px; padding: 30px;
box-shadow: -4px 4px 1px rgba(0, 0, 0, 0.3); box-shadow: -4px 4px 1px rgba(0, 0, 0, 0.3);
} }
/* line 115, ../sass/screen.scss */ /* line 143, ../sass/screen.scss */
.container .content section article a { .container .content section article a {
color: #30355a; color: #30355a;
} }
/* line 120, ../sass/screen.scss */ /* line 148, ../sass/screen.scss */
.container .content section article + h2 { .container .content section article + h2 {
margin-top: 15px; margin-top: 15px;
} }
/* line 125, ../sass/screen.scss */ /* line 152, ../sass/screen.scss */
.container .content section article + article {
margin-top: 25px;
}
/* line 157, ../sass/screen.scss */
.container .content section.directory article.entry { .container .content section.directory article.entry {
width: 80%; width: 80%;
max-width: 600px; max-width: 600px;
@ -197,7 +233,7 @@ header nav ul li > *:hover {
position: relative; position: relative;
padding-right: 120px; padding-right: 120px;
} }
/* line 132, ../sass/screen.scss */ /* line 164, ../sass/screen.scss */
.container .content section.directory article.entry .entry-image { .container .content section.directory article.entry .entry-image {
display: block; display: block;
position: absolute; position: absolute;
@ -210,61 +246,109 @@ header nav ul li > *:hover {
transform: translateX(90%); transform: translateX(90%);
top: -15px; top: -15px;
} }
/* line 144, ../sass/screen.scss */ /* line 176, ../sass/screen.scss */
.container .content section.directory article.entry .entry-image img { .container .content section.directory article.entry .entry-image img {
width: auto; width: auto;
height: auto; height: auto;
max-width: 100%; max-width: 100%;
max-height: 100%; max-height: 100%;
} }
/* line 155, ../sass/screen.scss */ /* line 186, ../sass/screen.scss */
.container .content section.actuhome {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
align-items: center;
}
/* line 192, ../sass/screen.scss */
.container .content section.actuhome article + article {
margin: 0;
}
/* line 196, ../sass/screen.scss */
.container .content section.actuhome article.actu { .container .content section.actuhome article.actu {
background: none; background: none;
box-shadow: none; box-shadow: none;
max-width: 400px; max-width: 400px;
min-width: 300px;
flex: 1;
} }
/* line 160, ../sass/screen.scss */ /* line 203, ../sass/screen.scss */
.container .content section.actuhome article.actu .actu-header { .container .content section.actuhome article.actu .actu-header {
position: relative; position: relative;
box-shadow: -4px 5px 1px rgba(0, 0, 0, 0.3); box-shadow: -4px 5px 1px rgba(0, 0, 0, 0.3);
padding: 0; padding: 0;
margin: 0; margin: 0;
overflow: hidden; overflow: hidden;
background-size: cover;
background-position: center center;
} }
/* line 167, ../sass/screen.scss */ /* line 212, ../sass/screen.scss */
.container .content section.actuhome article.actu .actu-header img {
position: absolute;
top: 0;
left: 0;
min-height: 100%;
min-width: 100%;
height: auto;
width: auto;
z-index: -1;
}
/* line 177, ../sass/screen.scss */
.container .content section.actuhome article.actu .actu-header h2 { .container .content section.actuhome article.actu .actu-header h2 {
width: 100%; width: 100%;
height: 100%; height: 100%;
padding: 5px;
padding-top: 150px; padding-top: 150px;
text-shadow: 0 0 5px rgba(0, 0, 0, 0.8);
}
/* line 218, ../sass/screen.scss */
.container .content section.actuhome article.actu .actu-header h2 a {
color: #fff;
}
/* line 224, ../sass/screen.scss */
.container .content section.actuhome article.actu .actu-misc {
background: #ffe7bc;
box-shadow: -4px 5px 1px rgba(0, 0, 0, 0.3);
margin: 0 10px;
padding: 15px;
padding-top: 5px;
}
/* line 231, ../sass/screen.scss */
.container .content section.actuhome article.actu .actu-misc .actu-minical {
display: block;
}
/* line 234, ../sass/screen.scss */
.container .content section.actuhome article.actu .actu-misc .actu-dates {
display: block;
text-align: right;
font-size: 0.9em;
} }
/* line 194, ../sass/screen.scss */ /* line 247, ../sass/screen.scss */
.calendar td, .calendar th { .calendar td, .calendar th {
text-align: center; text-align: center;
vertical-align: center; vertical-align: center;
border: 2px solid transparent; border: 2px solid transparent;
padding: 1px; padding: 1px;
} }
/* line 201, ../sass/screen.scss */ /* line 254, ../sass/screen.scss */
.calendar th { .calendar th {
font-weight: bold; font-weight: bold;
} }
/* line 206, ../sass/screen.scss */ /* line 258, ../sass/screen.scss */
.calendar td {
font-size: 0.8em;
width: 25px;
height: 30px;
}
/* line 263, ../sass/screen.scss */
.calendar td.out { .calendar td.out {
opacity: 0.3; opacity: 0.3;
} }
/* line 209, ../sass/screen.scss */ /* line 266, ../sass/screen.scss */
.calendar td.today { .calendar td.today {
border-bottom-color: #000; border-bottom-color: #000;
} }
/* line 269, ../sass/screen.scss */
.calendar td:nth-child(7) {
background: rgba(0, 0, 0, 0.3);
}
/* line 272, ../sass/screen.scss */
.calendar td:nth-child(6) {
background: rgba(0, 0, 0, 0.2);
}
/* line 275, ../sass/screen.scss */
.calendar td.hasevent {
font-weight: bold;
color: #f9752b;
font-size: 1em;
}

View file

@ -37,6 +37,12 @@ h2 {
a { a {
color: $lien; color: $lien;
text-decoration: none; text-decoration: none;
font-weight: bold;
}
h2 a {
font-weight: inherit;
color: inherit;
} }
header { header {
@ -74,6 +80,19 @@ header {
} }
} }
article {
line-height: 1.4;
p, ul {
margin: 0.4em 0;
}
ul {
padding-left: 20px;
li {
list-style: outside;
}
}
}
.container { .container {
max-width: 1000px; max-width: 1000px;
margin: 0 auto; margin: 0 auto;
@ -86,6 +105,7 @@ header {
width: 250px; width: 250px;
.aside { .aside {
color: #fff;
position: fixed; position: fixed;
position: sticky; position: sticky;
top: 5px; top: 5px;
@ -105,6 +125,14 @@ header {
max-width: 700px; max-width: 700px;
margin-left: auto; margin-left: auto;
margin-right: 0; margin-right: 0;
.intro {
border-bottom: 3px solid darken($fond, 50%);
margin: 20px -10px;
margin-top: 5px;
padding: 15px 5px;
}
section { section {
@ -121,6 +149,10 @@ header {
margin-top: 15px; margin-top: 15px;
} }
article + article {
margin-top: 25px;
}
&.directory { &.directory {
article.entry { article.entry {
width: 80%; width: 80%;
@ -152,10 +184,21 @@ header {
} }
&.actuhome { &.actuhome {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
align-items: center;
article + article {
margin: 0;
}
article.actu { article.actu {
background: none; background: none;
box-shadow: none; box-shadow: none;
max-width: 400px; max-width: 400px;
min-width: 300px;
flex: 1;
.actu-header { .actu-header {
position: relative; position: relative;
@ -163,26 +206,36 @@ header {
padding: 0; padding: 0;
margin: 0; margin: 0;
overflow: hidden; overflow: hidden;
background-size: cover;
background-position: center center;
img {
position: absolute;
top: 0;
left: 0;
min-height: 100%;
min-width: 100%;
height: auto;
width: auto;
z-index: -1;
}
h2 { h2 {
width: 100%; width: 100%;
height: 100%; height: 100%;
padding: 5px;
padding-top: 150px; padding-top: 150px;
text-shadow: 0 0 5px rgba(#000, 0.8);
a {
color: #fff;
}
} }
} }
.actu-misc { .actu-misc {
background: lighten($fond, 15%);
box-shadow: -4px 5px 1px rgba(#000, 0.3);
margin: 0 10px;
padding: 15px;
padding-top: 5px;
.actu-minical {
display: block;
}
.actu-dates {
display: block;
text-align: right;
font-size: 0.9em;
}
} }
} }
} }
@ -203,11 +256,26 @@ header {
} }
td { td {
font-size: 0.8em;
width: 25px;
height: 30px;
&.out { &.out {
opacity: 0.3; opacity: 0.3;
} }
&.today { &.today {
border-bottom-color: #000; border-bottom-color: #000;
} }
&:nth-child(7) {
background: rgba(#000, 0.3);
}
&:nth-child(6) {
background: rgba(#000, 0.2);
}
&.hasevent {
font-weight: bold;
color: $lien;
font-size: 1em;
}
} }
} }

View file

@ -0,0 +1,17 @@
{% extends "cofcms/base.html" %}
{% load wagtailimages_tags cofcms_tags %}
{% block content %}
<section class="intro">
<h1>{{ page.title }}</h1>
<p class="date">A lieu {{ page.dates }}</p>
<p>{{ page.chapo }}</p>
</section>
<section class="pagecontent">
{% image page.image width-700 %}
<article>
{{ page.body|safe }}
</article>
</section>
{% endblock %}

View file

@ -1,5 +1,5 @@
{% extends "cofcms/base_aside.html" %} {% extends "cofcms/base_aside.html" %}
{% load wagtailimages_tags cofcms_tags %} {% load wagtailimages_tags cofcms_tags wagtailcore_tags %}
{% block aside %} {% block aside %}
{% calendar %} {% calendar %}
@ -14,8 +14,13 @@
<section class="actulist"> <section class="actulist">
{% for actu in page.actus %} {% for actu in page.actus %}
<article class="actu"> <article class="actu">
<h2>{{ actu.title }}</h2> <h2><a href="{% pageurl actu %}">{{ actu.title }}</a></h2>
{{ actu.body|safe }} {% if actu.is_event %}
<p>{{ actu.chapo }}</p>
{% else %}
{{ actu.body|safe|truncatewords_html:25 }}
{% endif %}
<a href="{% pageurl actu %}">Lire plus &gt;</a>
</article> </article>
{% endfor %} {% endfor %}
</section> </section>

View file

@ -0,0 +1,16 @@
{% extends "cofcms/base.html" %}
{% load wagtailimages_tags cofcms_tags %}
{% block content %}
<section class="intro">
<h1>{{ page.title }}</h1>
<p class="date">Publié le {{ page.date }}</p>
</section>
<section class="pagecontent">
{% image page.image width-700 %}
<article>
{{ page.body|safe }}
</article>
</section>
{% endblock %}

View file

@ -1,5 +1,5 @@
{% extends "cofcms/base_aside.html" %} {% extends "cofcms/base_aside.html" %}
{% load static cofcms_tags wagtailimages_tags %} {% load static cofcms_tags wagtailimages_tags i18n wagtailcore_tags %}
{% block aside %} {% block aside %}
{% calendar %} {% calendar %}
@ -14,15 +14,13 @@
<section class="actuhome"> <section class="actuhome">
{% for actu in page.actus %} {% for actu in page.actus %}
<article class="actu"> <article class="actu">
<div class="actu-header"> <div class="actu-header" {% if actu.image %}{% image actu.image fill-400x200 as img %}style="background-image:url('{{ img.url }}');"{% endif %}>
{% if actu.image %} <h2><a href="{% pageurl actu %}">{{ actu.title }}</a></h2>
{% image actu.image fill-400x200 class="actu-img" %}
{% endif %}
<h2>{{ actu.title }}</h2>
</div> </div>
{% if actu.is_event %} {% if actu.is_event %}
<div class="actu-misc"> <div class="actu-misc">
<span class="actu-minical">{% mini_calendar actu %}</span>{{ actu.dates }} {% get_current_language as curlang %}
<span class="actu-minical">{% mini_calendar actu curlang %}</span><span class="actu-dates">{{ actu.dates }}</span>
</div> </div>
{% endif %} {% endif %}
</article> </article>

View file

@ -2,6 +2,7 @@ from datetime import timedelta, date
from django import template from django import template
from django.conf import settings from django.conf import settings
from django.utils import timezone from django.utils import timezone
import locale
from ..models import COFActuEventPage from ..models import COFActuEventPage
@ -45,7 +46,8 @@ def calendar():
day = {'day': curday.day, day = {'day': curday.day,
'class': (('today ' if (curday.day == now.day 'class': (('today ' if (curday.day == now.day
and curday.month == now.month) else '') and curday.month == now.month) else '')
+ ('in' if curday.month == now.month else 'out')), + ('in ' if curday.month == now.month else 'out')
+ ('hasevent' if len(curevents) > 0 else '')),
'events': curevents} 'events': curevents}
week.append(day) week.append(day)
curday += deltaday curday += deltaday
@ -53,7 +55,11 @@ def calendar():
return {"events": events, "weeks": weeks} return {"events": events, "weeks": weeks}
@register.inclusion_tag("cofcms/mini_calendar.html") @register.inclusion_tag("cofcms/mini_calendar.html")
def mini_calendar(event): def mini_calendar(event, loc):
try:
locale.setlocale(locale.LC_TIME, loc)
except locale.Error:
pass
days = [] days = []
today = timezone.now().date() today = timezone.now().date()
date_start = event.date_start.date() date_start = event.date_start.date()