Skip to content
This repository has been archived by the owner on Nov 7, 2019. It is now read-only.

Commit

Permalink
Merge pull request #884 from liqd/mn-2019-08-work-on-use_cases
Browse files Browse the repository at this point in the history
Mn 2019 08 work on use cases
  • Loading branch information
fuzzylogic2000 committed Aug 9, 2019
2 parents 51829c5 + 32230ec commit 6ccb953
Show file tree
Hide file tree
Showing 3 changed files with 104 additions and 22 deletions.
20 changes: 20 additions & 0 deletions apps/cms/use_cases/migrations/0003_usecaseindexpage_form_page.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Generated by Django 2.2.4 on 2019-08-08 15:51

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
('a4_candy_cms_contacts', '0003_add_contact_person_data'),
('a4_candy_cms_use_cases', '0002_usecaseindexpage_demo_link'),
]

operations = [
migrations.AddField(
model_name='usecaseindexpage',
name='form_page',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='a4_candy_cms_contacts.FormPage'),
),
]
66 changes: 47 additions & 19 deletions apps/cms/use_cases/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from django.utils.translation import ugettext_lazy as _
from wagtail.admin.edit_handlers import FieldPanel
from wagtail.admin.edit_handlers import ObjectList
from wagtail.admin.edit_handlers import PageChooserPanel
from wagtail.admin.edit_handlers import StreamFieldPanel
from wagtail.admin.edit_handlers import TabbedInterface
from wagtail.core import blocks
Expand All @@ -11,6 +12,20 @@

from apps.contrib.translations import TranslatedField

MUNICIPALITIES = 'MP'
CITIZENASSEMBLIES = 'CA'
COOPERATIVESNGOS = 'CN'
COMPANIES = 'CP'
POLITICIANS = 'PO'

CATEGORY_CHOICES = [
('MP', _('Municipalities')),
('CA', _('Citizen Assemblies')),
('CN', _('Co-Operatives/NGOs')),
('CP', _('Companies')),
('PO', _('Politicians')),
]


class UseCaseIndexPage(Page):
subtitle_de = models.CharField(
Expand All @@ -25,16 +40,41 @@ class UseCaseIndexPage(Page):
'subtitle_en'
)

form_page = models.ForeignKey(
'a4_candy_cms_contacts.FormPage',
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='+',
)

@property
def form(self):
return self.form_page.get_form()

@property
def use_case(self):
use_case = UseCasePage.objects.live()
return use_case
def use_cases(self):
use_cases = UseCasePage.objects.live()
return use_cases

def get_context(self, request):
use_case = self.use_case
use_cases = self.use_cases

category = request.GET.get('category')

if category:
try:
use_cases = use_cases.filter(category=category)
except ValueError:
use_cases = []

if self.demo_link:
use_cases = list(use_cases)
use_cases.append('demotile')

context = super().get_context(request)
context['use_case'] = use_case
context['use_cases'] = use_cases
context['categories'] = CATEGORY_CHOICES
return context

de_content_panels = [
Expand All @@ -48,7 +88,8 @@ def get_context(self, request):
common_panels = [
FieldPanel('title'),
FieldPanel('slug'),
FieldPanel('demo_link')
FieldPanel('demo_link'),
PageChooserPanel('form_page'),
]

edit_handler = TabbedInterface([
Expand All @@ -61,19 +102,6 @@ def get_context(self, request):


class UseCasePage(Page):
MUNICIPALITIES = 'MP'
CITIZENASSEMBLIES = 'CA'
COOPERATIVESNGOS = 'CN'
COMPANIES = 'CP'
POLITICIANS = 'PO'

CATEGORY_CHOICES = [
('MP', _('Municipalities')),
('CA', _('Citizen Assemblies')),
('CN', _('Co-Operatives/NGOs')),
('CP', _('Companies')),
('PO', _('Politicians')),
]

category = models.CharField(
max_length=2,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,48 @@
{% extends "base.html" %}
{% load wagtailcore_tags %}
{% load wagtailcore_tags wagtailimages_tags %}

{% block title %}{% if self.seo_title %}{{ self.seo_title }}{% else %}
{{ self.title }}{% endif %} — {{ block.super }}{% endblock %}

{% block content %}
<div class="l-wrapper">
<div class="l-center-8">
<h1 class="cms-title">{{ page.title }}</h1>
{{ page.body|richtext }}
<h1 class="cms-title">{{ page.subtitle }}</h1>
{% for category in categories %}
<a href="?category={{ category.0 }}">{{ category.1 }}</a>
{% endfor %}
</div>

{% for use_case in use_cases %}
{% if forloop.first %}<div class="row">{% endif %}
{% if forloop.last and page.demo_link %}
<div class="col-4">
<a href="{{ page.demo_page }}">
<h2>Ich bin eine Headline</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris rhoncus dictum varius.
Interdum et malesuada fames ac ante ipsumprimis in faucibus. </p>
<div class="btn btn--transparent">Demo-Plattform ausprobieren</div>
</a>
{% else %}
<div class="col-4">
<a href="{{ use_case.url }}">
{% if use_case.image %}
{% image use_case.image fill-370x295 as image %}
<img src="{{ image.url }}" alt="{{ image.alt }}" />
{% endif %}
<span>{{ use_case.get_category_display }}</span>
<h2>{{ use_case.title }}</h2>
</a>
</div>
{% endif %}
{% if forloop.counter|divisibleby:3%}</div><div class="row">{% endif %}
{% if forloop.last %}</div>{% endif %}
{% endfor %}
</div>

{% if page.form_page %}
<div id="form_page">
{% include 'a4_candy_cms_contacts/includes/form.html' with page=page.form_page form=page.form %}
</div>
{% endif %}
{% endblock %}

0 comments on commit 6ccb953

Please sign in to comment.