Compare commits
29 Commits
10694-add-
...
master
Author | SHA1 | Date |
---|---|---|
PCoder | 79dbc2aa7f | |
PCoder | 3f46a5c25f | |
pcoder116 | d1eecee951 | |
PCoder | 6818359e1a | |
PCoder | bdff34cf2b | |
app | 8a87944e10 | |
pcoder116 | 2c791e7fbc | |
pcoder116 | d04a6fed60 | |
PCoder | e056b08609 | |
app | ed9648d81d | |
PCoder | df9448e745 | |
pcoder116 | 9eaf497430 | |
PCoder | ae3a7d5ca9 | |
PCoder | 673ad6b924 | |
PCoder | 5f2eedeac9 | |
pcoder116 | 3946fff314 | |
PCoder | 8927460dd6 | |
PCoder | 3a1fa6d724 | |
PCoder | 849d539478 | |
PCoder | ae12f220ec | |
PCoder | 86242dbfb1 | |
PCoder | 08ca710b99 | |
PCoder | 78c3548e23 | |
PCoder | 59356a783f | |
PCoder | f1aa2ad418 | |
PCoder | 0691476d99 | |
PCoder | a6a00a33f3 | |
PCoder | c70b86a54b | |
PCoder | 6fa462dcf6 |
|
@ -1,3 +1,8 @@
|
|||
# Change Log
|
||||
|
||||
Please see [Pull Request history](https://github.com/datalets/public-health-ch/pulls?q=is%3Apr+is%3Aclosed) on GitHub.
|
||||
|
||||
## 2.0.0 - 2022-07-12
|
||||
|
||||
- 10694: Introduce table block to show program details
|
||||
- 10695: Add a header image to the article index template
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
# Generated by Django 3.2.13 on 2022-07-14 09:45
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import wagtail.contrib.table_block.blocks
|
||||
import wagtail.core.fields
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('wagtailimages', '0023_add_choose_permissions'),
|
||||
('home', '0033_auto_20220207_0731'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='articleindexpage',
|
||||
name='header_image',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='articleindexpage',
|
||||
name='table_de',
|
||||
field=wagtail.core.fields.StreamField([('table_de', wagtail.contrib.table_block.blocks.TableBlock(template='home/program_table.html'))], blank=True, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='articleindexpage',
|
||||
name='table_en',
|
||||
field=wagtail.core.fields.StreamField([('table_en', wagtail.contrib.table_block.blocks.TableBlock(template='home/program_table.html'))], blank=True, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='articleindexpage',
|
||||
name='table_fr',
|
||||
field=wagtail.core.fields.StreamField([('table_fr', wagtail.contrib.table_block.blocks.TableBlock(template='home/program_table.html'))], blank=True, null=True),
|
||||
),
|
||||
]
|
|
@ -2,3 +2,4 @@ from .forms import *
|
|||
from .models import *
|
||||
from .snippets import *
|
||||
from .admin import *
|
||||
from .image_formats import *
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
# image_formats.py
|
||||
from django.utils.html import format_html
|
||||
from wagtail.images.formats import Format, register_image_format
|
||||
|
||||
|
||||
class OriginalImageFormat(Format):
|
||||
|
||||
def image_to_html(self, image, alt_text, extra_attributes=None):
|
||||
|
||||
default_html = super().image_to_html(image, alt_text, extra_attributes)
|
||||
|
||||
return format_html("{}", default_html, alt_text)
|
||||
|
||||
|
||||
register_image_format(
|
||||
OriginalImageFormat('original_fullwidth', 'Original image', 'bodytext-image', 'original')
|
||||
)
|
|
@ -41,6 +41,13 @@ class ArticleIndexPage(Page):
|
|||
'title_en',
|
||||
)
|
||||
|
||||
header_image = models.ForeignKey(
|
||||
'wagtailimages.Image',
|
||||
null=True, blank=True,
|
||||
on_delete=models.SET_NULL,
|
||||
related_name='+'
|
||||
)
|
||||
|
||||
intro_de = RichTextField(default='', blank=True)
|
||||
intro_fr = RichTextField(default='', blank=True)
|
||||
intro_en = RichTextField(default='', blank=True)
|
||||
|
@ -50,32 +57,28 @@ class ArticleIndexPage(Page):
|
|||
'intro_en',
|
||||
)
|
||||
|
||||
|
||||
table_en = StreamField(
|
||||
[
|
||||
('table_en', TableBlock())
|
||||
('table_en', TableBlock(template='home/program_table.html'))
|
||||
],
|
||||
null=True,
|
||||
blank = True,
|
||||
blank=True,
|
||||
)
|
||||
table_de = StreamField(
|
||||
[
|
||||
('table_de', TableBlock())
|
||||
('table_de', TableBlock(template='home/program_table.html'))
|
||||
],
|
||||
null=True,
|
||||
blank = True,
|
||||
blank=True,
|
||||
)
|
||||
table_fr = StreamField(
|
||||
[
|
||||
('table_fr', TableBlock())
|
||||
('table_fr', TableBlock(template='home/program_table.html'))
|
||||
],
|
||||
null=True,
|
||||
blank = True,
|
||||
blank=True,
|
||||
)
|
||||
|
||||
#table_en = TableBlock()
|
||||
#table_fr = TableBlock()
|
||||
#table_de = TableBlock()
|
||||
trans_table = TranslatedField(
|
||||
'table_de',
|
||||
'table_fr',
|
||||
|
@ -106,6 +109,7 @@ class ArticleIndexPage(Page):
|
|||
FieldPanel('intro_fr'),
|
||||
FieldPanel('title_en'),
|
||||
FieldPanel('intro_en'),
|
||||
ImageChooserPanel('header_image'),
|
||||
FieldPanel('table_en'),
|
||||
FieldPanel('table_fr'),
|
||||
FieldPanel('table_de'),
|
||||
|
@ -204,14 +208,6 @@ class ArticlePage(Page):
|
|||
'body_fr',
|
||||
'body_en',
|
||||
)
|
||||
table_en = TableBlock()
|
||||
table_fr = TableBlock()
|
||||
table_de = TableBlock()
|
||||
trans_table = TranslatedField(
|
||||
'table_en',
|
||||
'table_fr',
|
||||
'table_de',
|
||||
)
|
||||
|
||||
date = models.DateField("Date", null=True, blank=True)
|
||||
|
||||
|
@ -305,15 +301,6 @@ class HomePage(Page):
|
|||
'body_en',
|
||||
)
|
||||
|
||||
#table_en = TableBlock()
|
||||
#table_fr = TableBlock()
|
||||
#table_de = TableBlock()
|
||||
#trans_table = TranslatedField(
|
||||
# 'table_en',
|
||||
# 'table_fr',
|
||||
# 'table_de',
|
||||
#)
|
||||
|
||||
infos_de = StreamField([
|
||||
('info', InfoBlock())
|
||||
], null=True, blank=True)
|
||||
|
@ -328,27 +315,24 @@ class HomePage(Page):
|
|||
'infos_fr',
|
||||
'infos_en',
|
||||
)
|
||||
# content_table = StreamField(TableBlock(), verbose_name=_('Content Table'), blank=True)
|
||||
|
||||
content_panels = Page.content_panels + [
|
||||
MultiFieldPanel([
|
||||
FieldPanel('intro_de', classname="full"),
|
||||
FieldPanel('body_de', classname="full"),
|
||||
StreamFieldPanel('infos_de'),
|
||||
#StreamFieldPanel('table_de'),
|
||||
], heading="Deutsch",
|
||||
classname="collapsible collapsed"),
|
||||
MultiFieldPanel([
|
||||
FieldPanel('intro_fr', classname="full"),
|
||||
FieldPanel('body_fr', classname="full"),
|
||||
StreamFieldPanel('infos_fr'),
|
||||
#StreamFieldPanel('table_fr'),
|
||||
], heading="Français",
|
||||
classname="collapsible collapsed"),
|
||||
MultiFieldPanel([
|
||||
FieldPanel('intro_en', classname="full"),
|
||||
FieldPanel('body_en', classname="full"),
|
||||
StreamFieldPanel('infos_en'),
|
||||
#StreamFieldPanel('table_fr'),
|
||||
], heading="English",
|
||||
classname="collapsible collapsed"),
|
||||
]
|
||||
|
|
|
@ -16,7 +16,18 @@
|
|||
</section>
|
||||
|
||||
{% else %}
|
||||
{% if page.header_image %}
|
||||
{% image page.header_image fill-1908x400 as img %}
|
||||
<div id="carousel-banner" class="slide">
|
||||
<div class="carousel-inner slick slick-initialized slick-slider" role="listbox">
|
||||
|
||||
<div class="slick-list draggable" tabindex="0"><div class="slick-track" style="opacity: 1; width: 1908px;"><div class="item slick-slide slick-active" data-slick-index="0" style="width: 1908px; position: relative; left: 0px; top: 0px; z-index: 900; opacity: 1;">
|
||||
<img style="background-image:url({{img.url}})">
|
||||
</div></div></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<section id="article-index" class="article-index-page">
|
||||
<div class="container">
|
||||
<h2>{{ page.trans_title }}</h2>
|
||||
|
@ -35,7 +46,7 @@
|
|||
{% endfor %}
|
||||
</div>
|
||||
<!-- Table content -->
|
||||
<div class="article-table" role="main">
|
||||
<div class="article-table table-program" role="main">
|
||||
{% for block in page.trans_table %}
|
||||
{% if block.block_type == 'table_en' or block.block_type == 'table_fr' or block.block_type == 'table_de' %}
|
||||
{% include_block block %}
|
||||
|
|
|
@ -27,19 +27,9 @@
|
|||
<p class="block-{{ block.block_type }}">
|
||||
{% include_block block %}
|
||||
</p>
|
||||
|
||||
{% endfor %}
|
||||
</div>
|
||||
<h1>Mmmm</h1>
|
||||
<!-- Table content -->
|
||||
<div class="article-table" role="main">
|
||||
{% for block in page.trans_table %}
|
||||
{% if block.block_type == 'table' %}
|
||||
Inside if
|
||||
{% include_block block %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Infoblocks -->
|
||||
<div class="row infoblocks">
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
<style>
|
||||
.table-program td, th {
|
||||
padding: 0 10px !important;
|
||||
}
|
||||
</style>
|
||||
<table class="table-program">
|
||||
{% if table_header %}
|
||||
<thead>
|
||||
<tr>
|
||||
{% for column in table_header %}
|
||||
<th>
|
||||
{% if column.strip %}
|
||||
{% if html_renderer %}
|
||||
{{ column.strip|safe|linebreaksbr }}
|
||||
{% else %}
|
||||
{{ column.strip|linebreaksbr }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</thead>
|
||||
{% endif %}
|
||||
<tbody>
|
||||
{% for row in data %}
|
||||
<tr>
|
||||
{% for column in row %}
|
||||
{% if first_col_is_header and forloop.first %}
|
||||
<th>
|
||||
{% if column.strip %}
|
||||
{% if html_renderer %}
|
||||
{{ column.strip|safe|linebreaksbr }}
|
||||
{% else %}
|
||||
{{ column.strip|linebreaksbr }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</th>
|
||||
{% else %}
|
||||
<td>
|
||||
{% if column.strip %}
|
||||
{% if html_renderer %}
|
||||
{{ column.strip|safe|linebreaksbr }}
|
||||
{% else %}
|
||||
{{ column.strip|linebreaksbr }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</td>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
|
@ -3,6 +3,6 @@
|
|||
<ul class="dropdown-menu">
|
||||
<!--<li><a href="{% pageurl parent %}">{{ parent.title }}</a></li>-->
|
||||
{% for child in menuitems_children %}
|
||||
<li><a href="{% pageurl child %}">{{ child.title|title }}</a></li>
|
||||
<li><a href="{% pageurl child %}">{{ child.title }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
|
|
@ -78,7 +78,7 @@ def menuitems_children(parent):
|
|||
for menuitem in menuitems_children:
|
||||
try:
|
||||
if type(menuitem) == ContactForm:
|
||||
menuitem.title = menuitem.title.title()
|
||||
menuitem.title = menuitem.title
|
||||
else:
|
||||
menuitem.title = menuitem.trans_title
|
||||
if 'devenez' in menuitem.title.lower() and remove_devenez:
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
// Language menu hack, until this is configurable
|
||||
nav .language-nav a[lang='en'] { display: inline; }
|
||||
|
||||
#footer, .contact-nav .link { display: none; }
|
||||
//#footer, .contact-nav .link { display: none; }
|
||||
|
||||
a.navbar-brand {
|
||||
height: 60px;
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
<div class="copyright">
|
||||
{% contact_name the_site=the_site %}
|
||||
© 2020
|
||||
© 2022
|
||||
• <a href="https://public-health.ch/privacy/">Privacy</a>
|
||||
• <a href="https://public-health.ch/impressum/">Impressum</a>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue