Skip to content

Commit

Permalink
include Edit Review form from user profile (bug 691589)
Browse files Browse the repository at this point in the history
  • Loading branch information
cvan committed Oct 4, 2011
1 parent 44447e1 commit 9531e87
Show file tree
Hide file tree
Showing 7 changed files with 51 additions and 22 deletions.
12 changes: 10 additions & 2 deletions apps/reviews/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from tower import ugettext as _

from reviews.models import ReviewFlag
from .forms import ReviewFlagForm
from . import forms


@jingo.register.filter
Expand Down Expand Up @@ -50,5 +50,13 @@ def mobile_reviews_link(context, addon):
@jinja2.contextfunction
def report_review_popup(context):
c = dict(context.items())
c.update(ReviewFlag=ReviewFlag, flag_form=ReviewFlagForm())
c.update(ReviewFlag=ReviewFlag, flag_form=forms.ReviewFlagForm())
return c


@jingo.register.inclusion_tag('reviews/edit_review.html')
@jinja2.contextfunction
def edit_review_form(context):
c = dict(context.items())
c.update(form=forms.ReviewForm())
return c
19 changes: 19 additions & 0 deletions apps/reviews/templates/reviews/edit_review.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{% from "includes/forms.html" import pretty_field, required_note %}
<div class="hidden">
<form method="post" id="review-edit-form" action="#"
class="review article review-form prettyform">
{{ csrf() }}
<fieldset>
<ul>
{{ pretty_field(form.title, _('Title')) }}
{{ pretty_field(form.rating, _('Rating')) }}
{{ pretty_field(form.body, _('Review')) }}
</ul>
</fieldset>
<footer>
{{ required_note() }}
<input type="submit" value="{{ _('Submit review') }}">
{{ _('or') }} <a href="#" id="review-edit-cancel">{{ _('Cancel') }}</a>
</footer>
</form>
</div>
20 changes: 1 addition & 19 deletions apps/reviews/templates/reviews/review_list.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{% extends "impala/base.html" %}
{% from 'includes/forms.html' import pretty_field, required_note %}
{% set amo_user = request.amo_user if request.user.is_authenticated() else None %}

{# L10n: {0} is an add-on name. #}
Expand Down Expand Up @@ -100,24 +99,7 @@ <h1>{{ _('No reviews found.') }}</h1>
{% endfor %}
{{ reviews|impala_paginator }}
{% endblock review_list %}
<div class="hidden">
<form method="post" id="review-edit-form" action="#"
class="review article review-form prettyform">
{{ csrf() }}
<fieldset>
<ul>
{{ pretty_field(form.title, _('Title')) }}
{{ pretty_field(form.rating, _('Rating')) }}
{{ pretty_field(form.body, _('Review')) }}
</ul>
</fieldset>
<footer>
{{ required_note() }}
<input type="submit" value="{{ _('Submit review') }}">
{{ _('or') }} <a href="#" id="review-edit-cancel">{{ _('Cancel') }}</a>
</footer>
</form>
</div>
{{ edit_review_form() }}
</div>
{{ report_review_popup() }}
{% endblock content %}
9 changes: 9 additions & 0 deletions apps/reviews/tests/test_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from addons.models import Addon
from amo.urlresolvers import reverse
from reviews.models import ReviewFlag
from reviews.forms import ReviewForm


def setup():
Expand Down Expand Up @@ -87,3 +88,11 @@ def test_report_review_popup():
for flag, text in ReviewFlag.FLAGS:
eq_(doc('li a[href$=%s]' % flag).text(), text)
eq_(doc('form input[name=note]').length, 1)


def test_edit_review_form():
doc = pq(render('{{ edit_review_form() }}'))
eq_(doc('#review-edit-form').length, 1)
eq_(doc('p.req').length, 1)
for name in ReviewForm().fields.keys():
eq_(doc('[name=%s]' % name).length, 1)
6 changes: 6 additions & 0 deletions apps/reviews/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,12 @@ def test_abuse_form(self):
r = self.client.get(reverse('reviews.detail', args=['a1865', 218468]))
self.assertTemplateUsed(r, 'reviews/report_review.html')

def test_edit_review_form(self):
r = self.client.get(reverse('reviews.list', args=['a1865']))
self.assertTemplateUsed(r, 'reviews/edit_review.html')
r = self.client.get(reverse('reviews.detail', args=['a1865', 218468]))
self.assertTemplateUsed(r, 'reviews/edit_review.html')

def test_list(self):
r = self.client.get(reverse('reviews.list', args=['a1865']))
eq_(r.status_code, 200)
Expand Down
1 change: 1 addition & 0 deletions apps/users/templates/users/impala/profile.html
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ <h2>{{ _('My Reviews') }}</h2>
{% include "reviews/review.html" %}
{% endwith %}
{% endfor %}
{{ edit_review_form() }}
</div>
{% else %}
<p class="no-reviews">{{ _('No add-on reviews yet.') }}</p>
Expand Down
6 changes: 5 additions & 1 deletion apps/users/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -693,10 +693,14 @@ def test_my_reviews(self):
cache.clear()
eq_(list(self.user.reviews), [r])

doc = pq(self.client.get(self.url).content)('#reviews')
r = self.client.get(self.url)
doc = pq(r.content)('#reviews')
eq_(doc('.item').length, 1)
eq_(doc('#review-218207').length, 1)

# Edit Review form should be present.
self.assertTemplateUsed(r, 'reviews/edit_review.html')

def test_my_collections(self):
doc = pq(self.client.get(self.url).content)('#my-collections')
ul = doc('#my-created')
Expand Down

0 comments on commit 9531e87

Please sign in to comment.