From 7fed98f13c87b2abb4eff19c45a786a969d49b40 Mon Sep 17 00:00:00 2001 From: Emilie Date: Fri, 30 Sep 2016 19:22:45 +0200 Subject: [PATCH] Candidate : two buttons + dates --- app/organization/job/admin.py | 6 +- .../job/migrations/0007_auto_20160930_1758.py | 67 +++++++++++++++++++ .../job/migrations/0008_auto_20160930_1849.py | 62 +++++++++++++++++ app/organization/job/models.py | 5 +- app/organization/job/translation.py | 2 +- app/templates/job/inc/candidacy_card.html | 18 +++-- 6 files changed, 151 insertions(+), 9 deletions(-) create mode 100644 app/organization/job/migrations/0007_auto_20160930_1758.py create mode 100644 app/organization/job/migrations/0008_auto_20160930_1849.py diff --git a/app/organization/job/admin.py b/app/organization/job/admin.py index 31723ac4..73a35dec 100644 --- a/app/organization/job/admin.py +++ b/app/organization/job/admin.py @@ -31,9 +31,13 @@ class CandidacyAdminDisplayable(BaseTranslationModelAdmin,): list_display = ('title', 'external_content', 'content_object', ) form = CandidacyForm - fieldsets = deepcopy(CandidacyAdmin.fieldsets) inlines = [CandidacyImageInline,] exclude = ("short_url", "keywords", "description", "slug", ) + fieldsets = ( + (None, { + 'fields': ('title', 'status', 'publish_date', 'expiry_date', 'content', 'date_from', 'date_to', 'text_button_external', 'external_content', 'text_button_internal', 'content_object',), + }), + ) admin.site.register(JobOffer, JobOfferAdminDisplayable) diff --git a/app/organization/job/migrations/0007_auto_20160930_1758.py b/app/organization/job/migrations/0007_auto_20160930_1758.py new file mode 100644 index 00000000..25daf8f9 --- /dev/null +++ b/app/organization/job/migrations/0007_auto_20160930_1758.py @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-09-30 15:58 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-job', '0006_candidacyimage'), + ] + + operations = [ + migrations.RemoveField( + model_name='candidacy', + name='text_button', + ), + migrations.RemoveField( + model_name='candidacy', + name='text_button_en', + ), + migrations.RemoveField( + model_name='candidacy', + name='text_button_fr', + ), + migrations.AddField( + model_name='candidacy', + name='date_from', + field=models.DateField(blank=True, null=True, verbose_name='begin date'), + ), + migrations.AddField( + model_name='candidacy', + name='date_to', + field=models.DateField(blank=True, null=True, verbose_name='end date'), + ), + migrations.AddField( + model_name='candidacy', + name='text_button_external', + field=models.CharField(blank=True, max_length=150, verbose_name='external text button'), + ), + migrations.AddField( + model_name='candidacy', + name='text_button_external_en', + field=models.CharField(blank=True, max_length=150, null=True, verbose_name='external text button'), + ), + migrations.AddField( + model_name='candidacy', + name='text_button_external_fr', + field=models.CharField(blank=True, max_length=150, null=True, verbose_name='external text button'), + ), + migrations.AddField( + model_name='candidacy', + name='text_button_internal', + field=models.CharField(blank=True, max_length=150, verbose_name='internal text button'), + ), + migrations.AddField( + model_name='candidacy', + name='text_button_internal_en', + field=models.CharField(blank=True, max_length=150, null=True, verbose_name='internal text button'), + ), + migrations.AddField( + model_name='candidacy', + name='text_button_internal_fr', + field=models.CharField(blank=True, max_length=150, null=True, verbose_name='internal text button'), + ), + ] diff --git a/app/organization/job/migrations/0008_auto_20160930_1849.py b/app/organization/job/migrations/0008_auto_20160930_1849.py new file mode 100644 index 00000000..6c3b8b43 --- /dev/null +++ b/app/organization/job/migrations/0008_auto_20160930_1849.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-09-30 16:49 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('organization-job', '0007_auto_20160930_1758'), + ] + + operations = [ + migrations.RemoveField( + model_name='candidacy', + name='date_from', + ), + migrations.RemoveField( + model_name='candidacy', + name='date_to', + ), + migrations.RemoveField( + model_name='candidacy', + name='text_button_external', + ), + migrations.RemoveField( + model_name='candidacy', + name='text_button_external_en', + ), + migrations.RemoveField( + model_name='candidacy', + name='text_button_external_fr', + ), + migrations.RemoveField( + model_name='candidacy', + name='text_button_internal', + ), + migrations.RemoveField( + model_name='candidacy', + name='text_button_internal_en', + ), + migrations.RemoveField( + model_name='candidacy', + name='text_button_internal_fr', + ), + migrations.AddField( + model_name='candidacy', + name='text_button', + field=models.CharField(blank=True, max_length=150, verbose_name='text button'), + ), + migrations.AddField( + model_name='candidacy', + name='text_button_en', + field=models.CharField(blank=True, max_length=150, null=True, verbose_name='text button'), + ), + migrations.AddField( + model_name='candidacy', + name='text_button_fr', + field=models.CharField(blank=True, max_length=150, null=True, verbose_name='text button'), + ), + ] diff --git a/app/organization/job/models.py b/app/organization/job/models.py index f445aeaf..27274799 100644 --- a/app/organization/job/models.py +++ b/app/organization/job/models.py @@ -34,9 +34,10 @@ class JobOffer(Displayable, RichText): verbose_name_plural = _("job offers") -class Candidacy(Displayable, RichText): +class Candidacy(Displayable, RichText, Period): - text_button = models.CharField(blank=True, max_length=150, null=False, verbose_name=_('text button')) + text_button_external = models.CharField(blank=True, max_length=150, null=False, verbose_name=_('external text button')) + text_button_internal = models.CharField(blank=True, max_length=150, null=False, verbose_name=_('internal text button')) external_content = models.URLField(blank=True, max_length=1000, null=False, verbose_name=_('external content')) # used for autocomplete but hidden in admin diff --git a/app/organization/job/translation.py b/app/organization/job/translation.py index e2d6885e..88744cec 100644 --- a/app/organization/job/translation.py +++ b/app/organization/job/translation.py @@ -18,7 +18,7 @@ class JobResponseTranslationOptions(TranslationOptions): @register(Candidacy) class JobResponseTranslationOptions(TranslationOptions): - fields = ('title', 'content', 'text_button', ) + fields = ('title', 'content', 'text_button_internal', 'text_button_external', ) @register(CandidacyImage) diff --git a/app/templates/job/inc/candidacy_card.html b/app/templates/job/inc/candidacy_card.html index 4fc0f3ec..d58e19df 100644 --- a/app/templates/job/inc/candidacy_card.html +++ b/app/templates/job/inc/candidacy_card.html @@ -7,13 +7,21 @@ {% endwith %}

{{ content.title }}

- {{ content.publish_date|date:"DATE_FORMAT" }}
+ {# TODO à refaire en template tag #} + {% if content.date_from and content.date_to %} + {% trans "From" %} {{ content.date_from|date:"DATE_FORMAT" }} {% trans "to" %} {{ content.date_to|date:"DATE_FORMAT" }}
+ {% elif content.date_from %} + {% trans "From" %} {{ content.date_from|date:"DATE_FORMAT" }}
+ {% elif content.date_to %} + {% trans "until" %}{{ content.date_to|date:"DATE_FORMAT" }}
+ {% endif %} {{ content.description|slice:":500" }}

- {% if content.external_content %} - {{ content.text_button }} - {% elif content.content_object %} - {{ content.text_button }} + {% if content.external_content and content.text_button_external %} + {{ content.text_button_external }} + {% endif %} + {% if content.content_object and content.text_button_internal %} + {{ content.text_button_internal }} {% endif %} -- 2.39.5