From dff1ade92ec138f339c4391df09c090006907374 Mon Sep 17 00:00:00 2001 From: hernani Date: Sat, 17 Apr 2010 21:53:07 +0000 Subject: [PATCH] fixed feedback page git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@49 0cfe37f9-358a-4d5e-be75-b63607b5c754 --- forum/migrations/0012_set_active_revision.py | 11 ++++-- ...uto__add_field_question_accepted_answer.py | 3 +- forum/settings/email.py | 4 +-- .../default/templates/feedback_email.txt | 19 ----------- .../templates/notifications/feedback.html | 28 +++++++++++++++ forum/views/meta.py | 34 +++++++++---------- forum/views/users.py | 2 +- 7 files changed, 58 insertions(+), 43 deletions(-) delete mode 100644 forum/skins/default/templates/feedback_email.txt create mode 100644 forum/skins/default/templates/notifications/feedback.html diff --git a/forum/migrations/0012_set_active_revision.py b/forum/migrations/0012_set_active_revision.py index 29e9030..24c419a 100644 --- a/forum/migrations/0012_set_active_revision.py +++ b/forum/migrations/0012_set_active_revision.py @@ -8,8 +8,15 @@ class Migration(DataMigration): def forwards(self, orm): for n in orm.Node.objects.all(): - n.active_revision = n.revisions.order_by('-id')[0] - n.save() + try: + n.active_revision = n.revisions.order_by('-id')[0] + n.save() + except: + r = orm.NodeRevision(author=n.author, body=n.body, title=n.title, revised_at=datetime.datetime.now(), + tagnames=n.tagnames, summary='Initial Revision', revision=1, node=n) + r.save() + n.active_revision = r + n.save() def backwards(self, orm): diff --git a/forum/migrations/0014_auto__add_field_question_accepted_answer.py b/forum/migrations/0014_auto__add_field_question_accepted_answer.py index 799e13a..54ef078 100644 --- a/forum/migrations/0014_auto__add_field_question_accepted_answer.py +++ b/forum/migrations/0014_auto__add_field_question_accepted_answer.py @@ -13,8 +13,9 @@ class Migration(SchemaMigration): db.add_column(u'question', 'accepted_answer', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['forum.Answer'], unique=True, null=True), keep_default=False) if db.backend_name == "postgres" and not "pgfulltext" in settings.DISABLED_MODULES: + pass db.execute("DROP TRIGGER tsvectorupdate ON question;") - db.execute("ALTER TABLE question DROP COLUMN tsv;") + db.execute("ALTER TABLE question DROP COLUMN tsv;") def backwards(self, orm): diff --git a/forum/settings/email.py b/forum/settings/email.py index 43baeb5..71c2e69 100644 --- a/forum/settings/email.py +++ b/forum/settings/email.py @@ -39,7 +39,7 @@ Does your SMTP server uses TLS for authentication. required=False)) DEFAULT_FROM_EMAIL = Setting('DEFAULT_FROM_EMAIL', '', EMAIL_SET, dict( -label = _("Site email address"), +label = _("Site 'from' email address"), help_text = _(""" The address that will show up on the 'from' field on emails sent by your website. """), @@ -50,4 +50,4 @@ label = _("Email subject prefix"), help_text = _(""" Every email sent through your website will have the subject prefixed by this string. It's usually a good idea to have such a prefix so your users can easilly set up a filter on theyr email clients. """), -required=False)) \ No newline at end of file +required=False)) diff --git a/forum/skins/default/templates/feedback_email.txt b/forum/skins/default/templates/feedback_email.txt deleted file mode 100644 index df76818..0000000 --- a/forum/skins/default/templates/feedback_email.txt +++ /dev/null @@ -1,19 +0,0 @@ -{% load i18n %} -{% spaceless %} -{% blocktrans with settings.APP_TITLE|safe as site_title %} -Hello, this is a {{site_title}} forum feedback message -{% endblocktrans %} -{% endspaceless %} - -{% spaceless %} -{% trans "Sender is" %} -{% if user.is_authenticated %} - {{user.username|safe}} {% trans "email" %}:{{user.email|safe}} -{% else %} - {% if name %}{{name|safe}}{% else %}{% trans "anonymous" %}{% endif %} - {% if email %}{% trans "email" %}:{{email|safe}}{% endif %} -{% endif %} - ip:{{request.META.REMOTE_ADDR}} -{% endspaceless %} - -{% trans "Message body:" %} {{message|safe}} diff --git a/forum/skins/default/templates/notifications/feedback.html b/forum/skins/default/templates/notifications/feedback.html new file mode 100644 index 0000000..06b8b84 --- /dev/null +++ b/forum/skins/default/templates/notifications/feedback.html @@ -0,0 +1,28 @@ +{% extends "email_base.html" %} +{% load i18n %} +{% load extra_tags %} + +{% block content %} +

{% spaceless %} + {% blocktrans with settings.APP_SHORT_NAME as site_title %} + Hello, this is a {{site_title}} forum feedback message + {% endblocktrans %} + {% endspaceless %}

+ +

+ {% trans "Sender" %}: + {% if user.is_authenticated %} + {{ user.username }}
{% trans "email" %}:{{ user.email }} + {% else %} + {% if name %}{{ name }}{% else %}{% trans "anonymous" %}{% endif %} + {% if email %}{% trans "email" %}:{{ email }}{% endif %} + {% endif %} +
+ ip: {{request.META.REMOTE_ADDR}} +

+ +
+ {% trans "Message body:" %} {{ message }} +
+ +{% endblock %} diff --git a/forum/views/meta.py b/forum/views/meta.py index 02cfbf7..c15f8f6 100644 --- a/forum/views/meta.py +++ b/forum/views/meta.py @@ -8,9 +8,11 @@ from django.core.urlresolvers import reverse from django.core.mail import mail_admins from django.utils.translation import ugettext as _ from forum.utils.forms import get_next_url -from forum.models import Badge, Award +from forum.models import Badge, Award, User from forum.badges import ALL_BADGES from forum import settings +from forum.utils.mail import send_email +import re def favicon(request): return HttpResponseRedirect(str(settings.APP_FAVICON)) @@ -27,38 +29,34 @@ def faq(request): return render_to_response('faq.html', data, context_instance=RequestContext(request)) def feedback(request): - data = {} - form = None if request.method == "POST": form = FeedbackForm(request.POST) if form.is_valid(): + context = {'user': request.user} + if not request.user.is_authenticated: - data['email'] = form.cleaned_data.get('email',None) - data['message'] = form.cleaned_data['message'] - data['name'] = form.cleaned_data.get('name',None) - message = render_to_response('feedback_email.txt',data,context_instance=RequestContext(request)) - mail_admins(_('Q&A forum feedback'), message) + context['email'] = form.cleaned_data.get('email',None) + context['message'] = form.cleaned_data['message'] + context['name'] = form.cleaned_data.get('name',None) + + recipients = [(adm.username, adm.email) for adm in User.objects.filter(is_superuser=True)] + + send_email(settings.EMAIL_SUBJECT_PREFIX + _("Feedback message from %(site_name)s") % {'site_name': settings.APP_SHORT_NAME}, + recipients, "notifications/feedback.html", context) + msg = _('Thanks for the feedback!') request.user.message_set.create(message=msg) return HttpResponseRedirect(get_next_url(request)) else: form = FeedbackForm(initial={'next':get_next_url(request)}) - data['form'] = form - return render_to_response('feedback.html', data, context_instance=RequestContext(request)) + return render_to_response('feedback.html', {'form': form}, context_instance=RequestContext(request)) feedback.CANCEL_MESSAGE=_('We look forward to hearing your feedback! Please, give it next time :)') def privacy(request): return render_to_response('privacy.html', context_instance=RequestContext(request)) -def logout(request):#refactor/change behavior? -#currently you click logout and you get -#to this view which actually asks you again - do you really want to log out? -#I guess rationale was to tell the user that s/he may be still logged in -#through their external login sytem and we'd want to remind them about it -#however it might be a little annoying -#why not just show a message: you are logged out of osqa, but -#if you really want to log out -> go to your openid provider +def logout(request): return render_to_response('logout.html', { 'next' : get_next_url(request), }, context_instance=RequestContext(request)) diff --git a/forum/views/users.py b/forum/views/users.py index 501b63a..227cdf6 100644 --- a/forum/views/users.py +++ b/forum/views/users.py @@ -120,7 +120,7 @@ def edit_user(request, id): user.about = sanitize_html(form.cleaned_data['about']) user.save() - # send user updated singal if full fields have been updated + # send user updated signal if full fields have been updated if user.email and user.real_name and user.website and user.location and \ user.date_of_birth and user.about: user_updated.send(sender=user.__class__, instance=user, updated_by=user) -- 2.45.2