From 336f5ddb54eb66bc0d88a9c3f04417f98d511d6c Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Fri, 10 Mar 2017 09:56:31 +0100 Subject: [PATCH] New widget to display current features. see #1070 --- modoboa/admin/handlers.py | 2 +- .../templates/core/_current_features.html | 21 ++++++++++++------- modoboa/core/templatetags/core_tags.py | 12 ++++++++++- modoboa/core/views/dashboard.py | 5 ++--- modoboa/static/css/custom.css | 5 +++++ 5 files changed, 33 insertions(+), 12 deletions(-) diff --git a/modoboa/admin/handlers.py b/modoboa/admin/handlers.py index 14d8dd860..e297fd3b4 100644 --- a/modoboa/admin/handlers.py +++ b/modoboa/admin/handlers.py @@ -320,7 +320,7 @@ def add_widgets_to_admin_dashboard(sender, user, **kwargs): "domains": models.Domain.objects.get_for_admin(user)} template = "admin/_per_domain_statistics_widget.html" return [{ - "column": "right", + "column": "left", "template": template, "context": context }] diff --git a/modoboa/core/templates/core/_current_features.html b/modoboa/core/templates/core/_current_features.html index 06935b933..94d99c362 100644 --- a/modoboa/core/templates/core/_current_features.html +++ b/modoboa/core/templates/core/_current_features.html @@ -1,4 +1,4 @@ -{% load i18n %} +{% load core_tags i18n %}
@@ -7,13 +7,20 @@
{% for feature in features %} -

{{ feature.name }}

- {% trans "Current:" %} {{ feature.current }} - {% trans "Goal:" %} {{ feature.goal }} -

{{ feature.description }}

- {% trans "More" %} +

{{ feature.name }} + + + {{ feature.current|currencyfmt }} / {{ feature.goal|currencyfmt }} + +

+

{{ feature.slogan|safe }}

+ + {% if not forloop.last %}
{% endif %} {% empty %} -
{% trans "FIXME" %}
+
{% trans "Nothing to sponsor yet." %}
{% endfor %}
diff --git a/modoboa/core/templatetags/core_tags.py b/modoboa/core/templatetags/core_tags.py index 454054498..6d3518728 100644 --- a/modoboa/core/templatetags/core_tags.py +++ b/modoboa/core/templatetags/core_tags.py @@ -1,3 +1,4 @@ +# coding: utf-8 """Custom tags for Core application.""" import os @@ -10,7 +11,7 @@ from django.core.urlresolvers import reverse from django.template.loader import render_to_string from django.utils import timezone from django.utils.safestring import mark_safe -from django.utils.translation import ugettext as _ +from django.utils.translation import get_language, ugettext as _ from django.contrib.sessions.models import Session @@ -255,3 +256,12 @@ def display_messages(msgs): }); """ % (level, text, timeout)) + + +@register.filter +def currencyfmt(amount): + """Simple temp. filter to replace babel.""" + lang = get_language() + if lang == "fr": + return u"{} €".format(amount) + return u"€{}".format(amount) diff --git a/modoboa/core/views/dashboard.py b/modoboa/core/views/dashboard.py index 25613dc91..71ef3e159 100644 --- a/modoboa/core/views/dashboard.py +++ b/modoboa/core/views/dashboard.py @@ -46,13 +46,12 @@ class DashboardView(auth_mixins.AccessMixin, generic.TemplateView): context["widgets"]["left"].append("core/_latest_news_widget.html") context.update({"news": entries}) - url = "{}{}/projects/?featured=true".format( + url = "{}{}/api/projects/?featured=true".format( MODOBOA_WEBSITE_URL, lang) response = requests.get(url) - features = [] if response.status_code == 200: features = response.json() - context["widgets"]["left"].append("core/_current_features.html") + context["widgets"]["right"].append("core/_current_features.html") context.update({"features": features}) # Extra widgets diff --git a/modoboa/static/css/custom.css b/modoboa/static/css/custom.css index 74b304542..85ebdd027 100644 --- a/modoboa/static/css/custom.css +++ b/modoboa/static/css/custom.css @@ -284,4 +284,9 @@ html body div.navbar div.container-fluid div#navigate-navbar-collapse.collapse u /* Wizard */ #wizard .carousel-inner { overflow: visible; +} + +/* Dashboard */ +.slogan { + padding-top: 15px; } \ No newline at end of file