diff --git a/apps/feedback/__init__.py b/apps/feedback/__init__.py new file mode 100644 index 0000000000..1a6a97716c --- /dev/null +++ b/apps/feedback/__init__.py @@ -0,0 +1,12 @@ +from __future__ import absolute_import + +from django.utils.translation import ugettext_lazy as _ + +from navigation.api import (register_links, register_top_menu, + register_multi_item_links, register_sidebar_template) +from common import about_view, license_view + +form_view = {'text': _('Feedback'), 'view': 'form_view', 'famfam': 'telephone'} + +register_links(['form_view'], [about_view, license_view], menu_name='secondary_menu') +register_links(['form_view', 'about_view', 'license_view'], [form_view], menu_name='secondary_menu') diff --git a/apps/feedback/api.py b/apps/feedback/api.py new file mode 100644 index 0000000000..b373f74408 --- /dev/null +++ b/apps/feedback/api.py @@ -0,0 +1,12 @@ +import requests + +from django.utils.simplejson import dumps + +FORM_SUBMIT_URL = 'https://docs.google.com/spreadsheet/formResponse' +FORM_KEY = 'dGZrYkw3SDl5OENMTG15emp1UFFEUWc6MQ' +FORM_RECEIVER_FIELD = 'entry.0.single' +TIMEOUT = 10 + + +def submit_form(form): + r = requests.post(FORM_SUBMIT_URL, data={'formkey': FORM_KEY, FORM_RECEIVER_FIELD: dumps(form.cleaned_data)}, timeout=TIMEOUT) diff --git a/apps/feedback/forms.py b/apps/feedback/forms.py new file mode 100644 index 0000000000..afee457dbc --- /dev/null +++ b/apps/feedback/forms.py @@ -0,0 +1,92 @@ +from __future__ import absolute_import + +import logging + +from django import forms +from django.utils.translation import ugettext_lazy as _ + +logger = logging.getLogger(__name__) + + +class FeedbackForm(forms.Form): + attract = forms.CharField( + widget=forms.widgets.Textarea( + attrs={'rows': 2}, + ), + label=_(u'What features of Mayan EDMS attracted you to start using it or consider using it?'), + required=False + ) + + future = forms.CharField( + widget=forms.widgets.Textarea( + attrs={'rows': 2}, + ), + label=_(u'What features would you like to see implemented in Mayan EDMS?'), + required=False + ) + + deploy = forms.CharField( + widget=forms.widgets.Textarea( + attrs={'rows': 2}, + ), + label=_(u'Could you tell us a bit about how you are deploying or plan to deploy Mayan EDMS (OS, webserver, cloud/local, hardware specs)?'), + required=False + ) + + hardest = forms.CharField( + widget=forms.widgets.Textarea( + attrs={'rows': 2}, + ), + label=_(u'What features of Mayan EDMS did you find hardest to understand or implement?'), + required=False + ) + + support = forms.BooleanField( + label=_(u'Would you be interested in purchasing paid support for Mayan EDMS?'), + required=False + ) + + sell_support = forms.BooleanField( + label=_(u'Are currently providing or planning to provide paid support for Mayan EDMS?'), + required=False + ) + + hosted = forms.BooleanField( + label=_(u'Would you be interested in a cloud hosted solution for Mayan EDMS?'), + required=False + ) + + turn_key = forms.BooleanField( + label=_(u'Would you be interested in a turn-key solution for Mayan EDMS that included a physical server appliance?'), + required=False + ) + + name = forms.CharField( + label=_(u'Your name:'), + required=False + ) + + email = forms.CharField( + label=_(u'Your email:'), + required=False + ) + + company = forms.CharField( + label=_(u'Company name:'), + required=False + ) + + website = forms.CharField( + label=_(u'Company website:'), + required=False + ) + + use_info = forms.BooleanField( + label=_(u'May we display your company name & logo in our website as a user of Mayan EDMS with a link back to your website?'), + required=False + ) + + mailing_list = forms.BooleanField( + label=_(u'May we keep your contact information to keep you up to date with developments or oferings related to Mayan EDMS?'), + required=False + ) diff --git a/apps/feedback/locale/en/LC_MESSAGES/django.po b/apps/feedback/locale/en/LC_MESSAGES/django.po new file mode 100644 index 0000000000..81ae2b76c0 --- /dev/null +++ b/apps/feedback/locale/en/LC_MESSAGES/django.po @@ -0,0 +1,103 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-02-02 12:46-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: __init__.py:9 +msgid "Feedback" +msgstr "" + +#: forms.py:16 +msgid "" +"What features of Mayan EDMS attracted you to start using it or consider " +"using it?" +msgstr "" + +#: forms.py:24 +msgid "What features would you like to see implemented in Mayan EDMS?" +msgstr "" + +#: forms.py:32 +msgid "" +"Could you tell us a bit about how you are deploying or plan to deploy Mayan " +"EDMS (OS, webserver, cloud/local, hardware specs)?" +msgstr "" + +#: forms.py:40 +msgid "" +"What features of Mayan EDMS did you find hardest to understand or implement?" +msgstr "" + +#: forms.py:45 +msgid "Would you be interested in purchasing paid support for Mayan EDMS?" +msgstr "" + +#: forms.py:50 +msgid "" +"Are currently providing or planning to provide paid support for Mayan EDMS?" +msgstr "" + +#: forms.py:55 +msgid "Would you be interested in a cloud hosted solution for Mayan EDMS?" +msgstr "" + +#: forms.py:60 +msgid "" +"Would you be interested in a turn-key solution for Mayan EDMS that included " +"a physical server appliance?" +msgstr "" + +#: forms.py:65 +msgid "Your name:" +msgstr "" + +#: forms.py:70 +msgid "Your email:" +msgstr "" + +#: forms.py:75 +msgid "Company name:" +msgstr "" + +#: forms.py:80 +msgid "Company website:" +msgstr "" + +#: forms.py:85 +msgid "" +"May we display your company name & logo in our website as a user of Mayan " +"EDMS with a link back to your website?" +msgstr "" + +#: forms.py:90 +msgid "" +"May we keep your contact information to keep you up to date with " +"developments or oferings related to Mayan EDMS?" +msgstr "" + +#: views.py:20 +msgid "Thank you for submiting your feedback." +msgstr "" + +#: views.py:23 +#, python-format +msgid "Error submiting form; %s." +msgstr "" + +#: views.py:28 +msgid "feedback form" +msgstr "" diff --git a/apps/feedback/locale/es/LC_MESSAGES/django.po b/apps/feedback/locale/es/LC_MESSAGES/django.po new file mode 100644 index 0000000000..364afdffd9 --- /dev/null +++ b/apps/feedback/locale/es/LC_MESSAGES/django.po @@ -0,0 +1,104 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-02-02 12:46-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:9 +msgid "Feedback" +msgstr "" + +#: forms.py:16 +msgid "" +"What features of Mayan EDMS attracted you to start using it or consider " +"using it?" +msgstr "" + +#: forms.py:24 +msgid "What features would you like to see implemented in Mayan EDMS?" +msgstr "" + +#: forms.py:32 +msgid "" +"Could you tell us a bit about how you are deploying or plan to deploy Mayan " +"EDMS (OS, webserver, cloud/local, hardware specs)?" +msgstr "" + +#: forms.py:40 +msgid "" +"What features of Mayan EDMS did you find hardest to understand or implement?" +msgstr "" + +#: forms.py:45 +msgid "Would you be interested in purchasing paid support for Mayan EDMS?" +msgstr "" + +#: forms.py:50 +msgid "" +"Are currently providing or planning to provide paid support for Mayan EDMS?" +msgstr "" + +#: forms.py:55 +msgid "Would you be interested in a cloud hosted solution for Mayan EDMS?" +msgstr "" + +#: forms.py:60 +msgid "" +"Would you be interested in a turn-key solution for Mayan EDMS that included " +"a physical server appliance?" +msgstr "" + +#: forms.py:65 +msgid "Your name:" +msgstr "" + +#: forms.py:70 +msgid "Your email:" +msgstr "" + +#: forms.py:75 +msgid "Company name:" +msgstr "" + +#: forms.py:80 +msgid "Company website:" +msgstr "" + +#: forms.py:85 +msgid "" +"May we display your company name & logo in our website as a user of Mayan " +"EDMS with a link back to your website?" +msgstr "" + +#: forms.py:90 +msgid "" +"May we keep your contact information to keep you up to date with " +"developments or oferings related to Mayan EDMS?" +msgstr "" + +#: views.py:20 +msgid "Thank you for submiting your feedback." +msgstr "" + +#: views.py:23 +#, python-format +msgid "Error submiting form; %s." +msgstr "" + +#: views.py:28 +msgid "feedback form" +msgstr "" diff --git a/apps/feedback/locale/it/LC_MESSAGES/django.po b/apps/feedback/locale/it/LC_MESSAGES/django.po new file mode 100644 index 0000000000..364afdffd9 --- /dev/null +++ b/apps/feedback/locale/it/LC_MESSAGES/django.po @@ -0,0 +1,104 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-02-02 12:46-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:9 +msgid "Feedback" +msgstr "" + +#: forms.py:16 +msgid "" +"What features of Mayan EDMS attracted you to start using it or consider " +"using it?" +msgstr "" + +#: forms.py:24 +msgid "What features would you like to see implemented in Mayan EDMS?" +msgstr "" + +#: forms.py:32 +msgid "" +"Could you tell us a bit about how you are deploying or plan to deploy Mayan " +"EDMS (OS, webserver, cloud/local, hardware specs)?" +msgstr "" + +#: forms.py:40 +msgid "" +"What features of Mayan EDMS did you find hardest to understand or implement?" +msgstr "" + +#: forms.py:45 +msgid "Would you be interested in purchasing paid support for Mayan EDMS?" +msgstr "" + +#: forms.py:50 +msgid "" +"Are currently providing or planning to provide paid support for Mayan EDMS?" +msgstr "" + +#: forms.py:55 +msgid "Would you be interested in a cloud hosted solution for Mayan EDMS?" +msgstr "" + +#: forms.py:60 +msgid "" +"Would you be interested in a turn-key solution for Mayan EDMS that included " +"a physical server appliance?" +msgstr "" + +#: forms.py:65 +msgid "Your name:" +msgstr "" + +#: forms.py:70 +msgid "Your email:" +msgstr "" + +#: forms.py:75 +msgid "Company name:" +msgstr "" + +#: forms.py:80 +msgid "Company website:" +msgstr "" + +#: forms.py:85 +msgid "" +"May we display your company name & logo in our website as a user of Mayan " +"EDMS with a link back to your website?" +msgstr "" + +#: forms.py:90 +msgid "" +"May we keep your contact information to keep you up to date with " +"developments or oferings related to Mayan EDMS?" +msgstr "" + +#: views.py:20 +msgid "Thank you for submiting your feedback." +msgstr "" + +#: views.py:23 +#, python-format +msgid "Error submiting form; %s." +msgstr "" + +#: views.py:28 +msgid "feedback form" +msgstr "" diff --git a/apps/feedback/locale/pt/LC_MESSAGES/django.po b/apps/feedback/locale/pt/LC_MESSAGES/django.po new file mode 100644 index 0000000000..364afdffd9 --- /dev/null +++ b/apps/feedback/locale/pt/LC_MESSAGES/django.po @@ -0,0 +1,104 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-02-02 12:46-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: __init__.py:9 +msgid "Feedback" +msgstr "" + +#: forms.py:16 +msgid "" +"What features of Mayan EDMS attracted you to start using it or consider " +"using it?" +msgstr "" + +#: forms.py:24 +msgid "What features would you like to see implemented in Mayan EDMS?" +msgstr "" + +#: forms.py:32 +msgid "" +"Could you tell us a bit about how you are deploying or plan to deploy Mayan " +"EDMS (OS, webserver, cloud/local, hardware specs)?" +msgstr "" + +#: forms.py:40 +msgid "" +"What features of Mayan EDMS did you find hardest to understand or implement?" +msgstr "" + +#: forms.py:45 +msgid "Would you be interested in purchasing paid support for Mayan EDMS?" +msgstr "" + +#: forms.py:50 +msgid "" +"Are currently providing or planning to provide paid support for Mayan EDMS?" +msgstr "" + +#: forms.py:55 +msgid "Would you be interested in a cloud hosted solution for Mayan EDMS?" +msgstr "" + +#: forms.py:60 +msgid "" +"Would you be interested in a turn-key solution for Mayan EDMS that included " +"a physical server appliance?" +msgstr "" + +#: forms.py:65 +msgid "Your name:" +msgstr "" + +#: forms.py:70 +msgid "Your email:" +msgstr "" + +#: forms.py:75 +msgid "Company name:" +msgstr "" + +#: forms.py:80 +msgid "Company website:" +msgstr "" + +#: forms.py:85 +msgid "" +"May we display your company name & logo in our website as a user of Mayan " +"EDMS with a link back to your website?" +msgstr "" + +#: forms.py:90 +msgid "" +"May we keep your contact information to keep you up to date with " +"developments or oferings related to Mayan EDMS?" +msgstr "" + +#: views.py:20 +msgid "Thank you for submiting your feedback." +msgstr "" + +#: views.py:23 +#, python-format +msgid "Error submiting form; %s." +msgstr "" + +#: views.py:28 +msgid "feedback form" +msgstr "" diff --git a/apps/feedback/locale/ru/LC_MESSAGES/django.po b/apps/feedback/locale/ru/LC_MESSAGES/django.po new file mode 100644 index 0000000000..a53b9861e5 --- /dev/null +++ b/apps/feedback/locale/ru/LC_MESSAGES/django.po @@ -0,0 +1,105 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2012-02-02 12:46-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" + +#: __init__.py:9 +msgid "Feedback" +msgstr "" + +#: forms.py:16 +msgid "" +"What features of Mayan EDMS attracted you to start using it or consider " +"using it?" +msgstr "" + +#: forms.py:24 +msgid "What features would you like to see implemented in Mayan EDMS?" +msgstr "" + +#: forms.py:32 +msgid "" +"Could you tell us a bit about how you are deploying or plan to deploy Mayan " +"EDMS (OS, webserver, cloud/local, hardware specs)?" +msgstr "" + +#: forms.py:40 +msgid "" +"What features of Mayan EDMS did you find hardest to understand or implement?" +msgstr "" + +#: forms.py:45 +msgid "Would you be interested in purchasing paid support for Mayan EDMS?" +msgstr "" + +#: forms.py:50 +msgid "" +"Are currently providing or planning to provide paid support for Mayan EDMS?" +msgstr "" + +#: forms.py:55 +msgid "Would you be interested in a cloud hosted solution for Mayan EDMS?" +msgstr "" + +#: forms.py:60 +msgid "" +"Would you be interested in a turn-key solution for Mayan EDMS that included " +"a physical server appliance?" +msgstr "" + +#: forms.py:65 +msgid "Your name:" +msgstr "" + +#: forms.py:70 +msgid "Your email:" +msgstr "" + +#: forms.py:75 +msgid "Company name:" +msgstr "" + +#: forms.py:80 +msgid "Company website:" +msgstr "" + +#: forms.py:85 +msgid "" +"May we display your company name & logo in our website as a user of Mayan " +"EDMS with a link back to your website?" +msgstr "" + +#: forms.py:90 +msgid "" +"May we keep your contact information to keep you up to date with " +"developments or oferings related to Mayan EDMS?" +msgstr "" + +#: views.py:20 +msgid "Thank you for submiting your feedback." +msgstr "" + +#: views.py:23 +#, python-format +msgid "Error submiting form; %s." +msgstr "" + +#: views.py:28 +msgid "feedback form" +msgstr "" diff --git a/apps/feedback/models.py b/apps/feedback/models.py new file mode 100644 index 0000000000..71a8362390 --- /dev/null +++ b/apps/feedback/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/apps/feedback/tests.py b/apps/feedback/tests.py new file mode 100644 index 0000000000..501deb776c --- /dev/null +++ b/apps/feedback/tests.py @@ -0,0 +1,16 @@ +""" +This file demonstrates writing tests using the unittest module. These will pass +when you run "manage.py test". + +Replace this with more appropriate tests for your application. +""" + +from django.test import TestCase + + +class SimpleTest(TestCase): + def test_basic_addition(self): + """ + Tests that 1 + 1 always equals 2. + """ + self.assertEqual(1 + 1, 2) diff --git a/apps/feedback/urls.py b/apps/feedback/urls.py new file mode 100644 index 0000000000..53380a2d92 --- /dev/null +++ b/apps/feedback/urls.py @@ -0,0 +1,5 @@ +from django.conf.urls.defaults import patterns, url + +urlpatterns = patterns('feedback.views', + url(r'^form/$', 'form_view', (), 'form_view'), +) diff --git a/apps/feedback/views.py b/apps/feedback/views.py new file mode 100644 index 0000000000..b6c9d2b5b3 --- /dev/null +++ b/apps/feedback/views.py @@ -0,0 +1,31 @@ +from __future__ import absolute_import + +from django.utils.translation import ugettext_lazy as _ +from django.http import HttpResponseRedirect +from django.shortcuts import render_to_response, get_object_or_404 +from django.template import RequestContext +from django.contrib import messages +from django.core.urlresolvers import reverse + +from .forms import FeedbackForm +from .api import submit_form + + +def form_view(request): + if request.method == 'POST': + form = FeedbackForm(request.POST) + if form.is_valid(): + try: + submit_form(form) + messages.success(request, _(u'Thank you for submiting your feedback.')) + return HttpResponseRedirect('/') + except Exception, e: + messages.error(request, _(u'Error submiting form; %s.') % e) + else: + form = FeedbackForm() + + return render_to_response('generic_form.html', { + 'title': _(u'feedback form'), + 'form': form, + }, + context_instance=RequestContext(request)) diff --git a/requirements/production.txt b/requirements/production.txt index f8408ec634..41ab10ed77 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -16,3 +16,4 @@ djangorestframework==0.2.3 South==0.7.3 python-gnupg==0.2.8 python-hkp==0.1.3 +requests==0.10.1 diff --git a/settings.py b/settings.py index fb3ed62f47..ef68252deb 100644 --- a/settings.py +++ b/settings.py @@ -156,6 +156,7 @@ INSTALLED_APPS = ( 'mimetype', 'scheduler', 'job_processor', + 'feedback', # Mayan EDMS 'storage', 'folders', diff --git a/urls.py b/urls.py index c125b3676d..a6ae677f51 100644 --- a/urls.py +++ b/urls.py @@ -31,6 +31,7 @@ urlpatterns = patterns('', (r'^api/', include('rest_api.urls')), (r'^gpg/', include('django_gpg.urls')), (r'^documents/signatures/', include('document_signatures.urls')), + (r'^feedback/', include('feedback.urls')), )