Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor item detail templates #206

Merged
merged 19 commits into from
Apr 18, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion apps/budgeting/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,5 @@ class Proposal(idea_models.AbstractIdea):
)

def get_absolute_url(self):
return reverse('budgeting:proposal-detail', args=[str(self.slug)])
return reverse('meinberlin_budgeting:proposal-detail',
args=[str(self.slug)])
4 changes: 2 additions & 2 deletions apps/budgeting/rules.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@


rules.add_perm(
'meinberlin_budgeting.propose_proposal',
'meinberlin_budgeting.create_proposal',
module_predicates.is_allowed_create_item(models.Proposal)
)

Expand All @@ -29,7 +29,7 @@


rules.add_perm(
'meinberlin_budgeting.modify_proposal',
'meinberlin_budgeting.change_proposal',
module_predicates.is_allowed_modify_item
)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
{% load item_tags %}

<div class="list-item list-item--squashed">
<div class="list-item__stats">
{% spaceless %}
Expand All @@ -18,7 +20,8 @@
{% endspaceless %}
</div>
<h3 class="list-item__title">
<a href="{% url 'budgeting:proposal-detail' proposal.slug %}">
{% get_item_detail_url proposal as detail_url %}
<a href="{{ detail_url }}">
{{ proposal.name }}
</a>
</h3>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n item_tags %}

{% block title %}{% trans 'Confirm Proposal Deletion' %}{% endblock %}
{% block content %}
Expand All @@ -11,6 +11,7 @@ <h1>{% trans 'Are you sure you want to delete the proposal?' %} </h1>
{% csrf_token %}
<input type="submit" class="button button--primary" value="{% trans 'Yes'%}" />
</form>
<a href="{% url 'budgeting:proposal-detail' proposal.slug %}" class="button button--light">{% trans 'Cancel'%}</a>
{% get_item_detail_url object as detail_url %}
<a href="{{ detail_url }}" class="button button--light">{% trans 'Cancel'%}</a>
</div>
{% endblock %}
101 changes: 17 additions & 84 deletions apps/budgeting/templates/meinberlin_budgeting/proposal_detail.html
Original file line number Diff line number Diff line change
@@ -1,90 +1,23 @@
{% extends "base.html" %}
{% load i18n rules react_comments react_ratings %}
{% extends "meinberlin_contrib/item_detail.html" %}
{% load rules item_tags i18n %}

{% block title %}{{proposal.name}}{% endblock %}
{% block content %}
<div class="resource-navigation">
<div class="l-wrapper">
<nav class="resource-navigation__breadcrumbs breadcrumbs">
<ul>
<li>
<a href="{% url 'project-detail' proposal.project.slug %}">
<i class="fa fa-arrow-left" aria-hidden="true"></i>
{% trans 'back to project' %}</a>
</li>
</ul>
</nav>

{% has_perm 'meinberlin_budgeting.modify_proposal' request.user proposal as show_dropdown %}
{% if show_dropdown %}
<div class="resource-navigation__actions dropdown dropdown--right">
<button
title="{% trans 'Actions' %}"
type="button"
class="dropdown-toggle"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false"
id="proposal-{{proposal.pk}}-actions"
>
<i class="fa fa-ellipsis-v" aria-hidden="true"></i>
</button>
<ul class="dropdown-menu" aria-labelledby="proposal-{{proposal.pk}}-actions">
{% has_perm 'meinberlin_budgeting.moderate_proposal' request.user proposal as is_moderator %}
{% if is_moderator %}
<li>
<a class="dropdown-item" href="{% url 'budgeting:proposal-moderate' slug=proposal.slug %}">{% trans 'Moderate' %}</a>
</li>
{% endif %}
<li>
<a class="dropdown-item" href="{% url 'budgeting:proposal-update' slug=proposal.slug %}">{% trans 'Edit' %}</a>
</li>
<li>
<a class="dropdown-item" href="{% url 'budgeting:proposal-delete' slug=proposal.slug %}">{% trans 'Delete' %}</a>
</li>
</ul>
</div>
{% endif %}
{% block additional_meta %}
<div class="resource-header__meta">
<div>{{ proposal.budget }}€</div>
</div>
</div>

<div class="resource-header">
<div class="l-wrapper">
<div class="l-center-6">
<h1 class="resource-header__title">{{ proposal.name }}</h1>

<div class="resource-header__meta">
<div>{{ proposal.budget}}€</div>
</div>

<div class="resource-header__meta">{{ proposal.creator.username }}</div>

<div class="resource-header__meta">
{% include 'meinberlin_moderatorfeedback/includes/moderatorfeedback.html' with item=proposal %}
</div>

{% if proposal.category %}
<div class="resource-header__meta">
<div class="label label--big">{{ proposal.category }}</div>
</div>
{% endif %}

<div class="resource-header__action">
{% react_ratings proposal %}
</div>
</div>
</div>
</div>

<div class="proposal-description">
<div class="l-wrapper">
<div class="l-center-6">
{{ proposal.description | safe }}
</div>
<div class="resource-header__meta">
{% include 'meinberlin_moderatorfeedback/includes/moderatorfeedback.html' with item=proposal %}
</div>
</div>
{% endblock %}

<div class="l-wrapper">
{% react_comments proposal %}
</div>
{% block dropdown_items %}
{% get_item_permission object 'moderate' as moderator_perm %}
{% has_perm moderator_perm request.user proposal as is_moderator %}
{% if is_moderator %}
<li>
{% get_item_url object 'moderate' as moderate_url %}
<a class="dropdown-item" href="{{ moderate_url }}">{% trans 'Moderate' %}</a>
</li>
{% endif %}
{% endblock %}
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
{% load i18n rules %}

{% block project_action %}
{% has_perm 'meinberlin_budgeting.propose_proposal' request.user view.module as propose_allowed %}
{% has_perm 'meinberlin_budgeting.create_proposal' request.user view.module as propose_allowed %}
{% if propose_allowed %}
<a href="{% url 'budgeting:proposal-create' slug=view.module.slug %}" class="button button--huge">
<a href="{% url 'meinberlin_budgeting:proposal-create' slug=view.module.slug %}" class="button button--huge">
{% trans 'Submit proposal' %}
</a>
{% endif %}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n item_tags %}

{% block title %}Moderate {{proposal.name}}{% endblock %}
{% block content %}
Expand All @@ -12,7 +12,8 @@
{% trans 'back to project' %}</a>
</li>
<li>
<a href="{% url 'budgeting:proposal-detail' proposal.slug %}">
{% get_item_detail_url proposal as detail_url %}
<a href="{{ detail_url }}">
<i class="fa fa-arrow-left" aria-hidden="true"></i>
{% trans 'back to proposal' %}</a>
</li>
Expand All @@ -28,7 +29,7 @@ <h1>{% trans 'Moderate proposal' %}</h1>
{% include 'meinberlin_contrib/includes/form_field.html' with field=form.moderator_feedback %}

<input type="submit" class="button button--primary" value="{% trans 'Save'%}" />
<a href="{% url 'budgeting:proposal-detail' proposal.slug %}" class="button button--light">{% trans 'cancel'%}</a>
<a href="{{ detail_url }}" class="button button--light">{% trans 'cancel'%}</a>
</form>
</div>
{% endblock %}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{% extends "base.html" %}
{% load i18n %}
{% load i18n item_tags %}

{% block title %}Edit {{proposal.name}}{% endblock %}
{% block content %}
Expand All @@ -12,7 +12,8 @@
{% trans 'back to project' %}</a>
</li>
<li>
<a href="{% url 'budgeting:proposal-detail' proposal.slug %}">
{% get_item_detail_url object as detail_url %}
<a href="{{ detail_url }}">
<i class="fa fa-arrow-left" aria-hidden="true"></i>
{% trans 'back to proposal' %}</a>
</li>
Expand All @@ -21,7 +22,6 @@

<h1>{% trans 'Edit proposal' %}</h1>

{% url 'budgeting:proposal-detail' proposal.slug as cancel %}
{% include "meinberlin_budgeting/includes/proposal_form.html" with proposal=proposal cancel=cancel %}
{% include "meinberlin_budgeting/includes/proposal_form.html" with proposal=proposal cancel=detail_url %}
</div>
{% endblock %}
6 changes: 3 additions & 3 deletions apps/budgeting/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,21 +53,21 @@ class ProposalDetailView(module_views.ItemDetailView):
class ProposalCreateView(module_views.ItemCreateView):
model = models.Proposal
form_class = forms.ProposalForm
permission_required = 'meinberlin_budgeting.propose_proposal'
permission_required = 'meinberlin_budgeting.create_proposal'
template_name = 'meinberlin_budgeting/proposal_create_form.html'


class ProposalUpdateView(module_views.ItemUpdateView):
model = models.Proposal
form_class = forms.ProposalForm
permission_required = 'meinberlin_budgeting.modify_proposal'
permission_required = 'meinberlin_budgeting.change_proposal'
template_name = 'meinberlin_budgeting/proposal_update_form.html'


class ProposalDeleteView(module_views.ItemDeleteView):
model = models.Proposal
success_message = _("Your budget request has been deleted")
permission_required = 'meinberlin_budgeting.modify_proposal'
permission_required = 'meinberlin_budgeting.change_proposal'
template_name = 'meinberlin_budgeting/proposal_confirm_delete.html'

def delete(self, request, *args, **kwargs):
Expand Down
88 changes: 88 additions & 0 deletions apps/contrib/templates/meinberlin_contrib/item_detail.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
{% extends "base.html" %}
{% load i18n module_tags rules react_comments react_ratings wagtailcore_tags item_tags %}

{% block title %}{{object.name}}{% endblock %}
{% block content %}
<div class="resource-navigation">
<div class="l-wrapper">
<nav class="resource-navigation__breadcrumbs breadcrumbs">
<ul>
<li>
<a href="{% url 'project-detail' object.project.slug %}">
<i class="fa fa-arrow-left" aria-hidden="true"></i>
{% trans 'back to project' %}</a>
</li>
</ul>
</nav>

{% get_item_change_permission object as change_perm %}
{% has_perm change_perm request.user object as show_dropdown %}

{% if show_dropdown %}
<div class="resource-navigation__actions dropdown dropdown--right">
<button
title="{% trans 'Actions' %}"
type="button"
class="dropdown-toggle"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false"
id="idea-{{object.pk}}-actions"
>
<i class="fa fa-ellipsis-v" aria-hidden="true"></i>
</button>
<ul class="dropdown-menu" aria-labelledby="idea-{{object.pk}}-actions">
<li>
{% get_item_update_url object as change_url %}
<a class="dropdown-item" href="{{ change_url }}">{% trans 'Edit' %}</a>
</li>
<li>
{% get_item_delete_url object as delete_url %}
<a class="dropdown-item" href="{{ delete_url }}">{% trans 'Delete' %}</a>
</li>
{% block dropdown_items %}{% endblock %}
</ul>
</div>
{% endif %}
</div>
</div>

<div class="resource-header">
<div class="l-wrapper">
<div class="l-center-6">
<h1 class="resource-header__title">{{ object.name }}</h1>

<div class="resource-header__meta">{{ object.creator.username }}</div>

{% if object.category %}
<div class="resource-header__meta">
<div class="label label--big">{{ object.category }}</div>
</div>
{% endif %}

{% block additional_meta %}{% endblock %}

{% if object|has_feature:"rate" %}
<div class="resource-header__action">
{% react_ratings object %}
</div>
{% endif %}

{% block additional_content %}{% endblock %}

</div>
</div>
</div>

<div class="idea-description">
<div class="l-wrapper">
<div class="l-center-6">
{{ object.description | richtext }}
</div>
</div>
</div>

<div class="l-wrapper">
{% react_comments object %}
</div>
{% endblock %}
Loading