summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdolfo Fitoria <adolfo.fitoria@gmail.com>2012-08-14 23:05:10 -0600
committerAdolfo Fitoria <adolfo.fitoria@gmail.com>2012-08-14 23:05:10 -0600
commit267587ef672703d90cfb8cc22a147c1e572de483 (patch)
treee7dc0cc151c4669bb3a4e6294c794d58ec375d97
parent1cfdfa2dc4c882232926d385eeefd86c1a1ff9dc (diff)
downloadaskbot-267587ef672703d90cfb8cc22a147c1e572de483.tar.gz
askbot-267587ef672703d90cfb8cc22a147c1e572de483.tar.bz2
askbot-267587ef672703d90cfb8cc22a147c1e572de483.zip
Fixed some styles
Added text field into the widget created edit view for the widget
-rw-r--r--askbot/forms.py8
-rw-r--r--askbot/migrations/0135_auto__add_askwidget.py1
-rw-r--r--askbot/models/widgets.py6
-rwxr-xr-xaskbot/skins/default/media/style/askbot-modal.css3
-rw-r--r--askbot/skins/default/templates/ask_by_widget.html32
-rw-r--r--askbot/skins/default/templates/ask_widget_form.html (renamed from askbot/skins/default/templates/create_ask_widget.html)6
-rwxr-xr-xaskbot/skins/default/templates/widgets/askbot_widget.js2
-rw-r--r--askbot/tests/form_tests.py7
-rw-r--r--askbot/tests/widget_tests.py15
-rw-r--r--askbot/urls.py5
-rw-r--r--askbot/views/widgets.py31
11 files changed, 95 insertions, 21 deletions
diff --git a/askbot/forms.py b/askbot/forms.py
index 4a36b8ac..5662661a 100644
--- a/askbot/forms.py
+++ b/askbot/forms.py
@@ -892,6 +892,7 @@ class AskWidgetForm(forms.Form, FormWithHideableFields):
'''Simple form with just the title to ask a question'''
title = TitleField()
+ text = EditorField(required=False)
ask_anonymously = forms.BooleanField(
label=_('ask anonymously'),
help_text=_(
@@ -901,12 +902,15 @@ class AskWidgetForm(forms.Form, FormWithHideableFields):
required=False,
)
- def __init__(self, *args, **kwargs):
+ def __init__(self, include_text=True, *args, **kwargs):
super(AskWidgetForm, self).__init__(*args, **kwargs)
#hide ask_anonymously field
- if askbot_settings.ALLOW_ASK_ANONYMOUSLY is False:
+ if not askbot_settings.ALLOW_ASK_ANONYMOUSLY:
self.hide_field('ask_anonymously')
+ if not include_text:
+ self.hide_field('text')
+
class AskByEmailForm(forms.Form):
""":class:`~askbot.forms.AskByEmailForm`
validates question data, where question was posted
diff --git a/askbot/migrations/0135_auto__add_askwidget.py b/askbot/migrations/0135_auto__add_askwidget.py
index ce95d5e6..11b287e8 100644
--- a/askbot/migrations/0135_auto__add_askwidget.py
+++ b/askbot/migrations/0135_auto__add_askwidget.py
@@ -14,6 +14,7 @@ class Migration(SchemaMigration):
('title', self.gf('django.db.models.fields.CharField')(max_length=100)),
('group', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='groups', null=True, to=orm['askbot.Tag'])),
('default_group', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['askbot.Tag'], null=True, blank=True)),
+ ('include_text_field', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
('inner_style', self.gf('django.db.models.fields.TextField')(default='')),
('outer_style', self.gf('django.db.models.fields.TextField')(default='')),
))
diff --git a/askbot/models/widgets.py b/askbot/models/widgets.py
index ca21f7a4..ecd9818d 100644
--- a/askbot/models/widgets.py
+++ b/askbot/models/widgets.py
@@ -16,16 +16,14 @@ class AskWidget(models.Model):
related_name='groups')
default_group = models.ForeignKey(Tag, null=True, blank=True)
+ include_text_field = models.BooleanField(default=False, blank=True)
+
inner_style = models.TextField(default=DEFAULT_INNER_STYLE, blank=True)
outer_style= models.TextField(default=DEFAULT_OUTER_STYLE, blank=True)
class Meta:
app_label = 'askbot'
-
- def embed_code(self):
- pass
-
def __unicode__(self):
return "Widget: %s" % self.title
diff --git a/askbot/skins/default/media/style/askbot-modal.css b/askbot/skins/default/media/style/askbot-modal.css
index 6f16dc5d..cec8bc6a 100755
--- a/askbot/skins/default/media/style/askbot-modal.css
+++ b/askbot/skins/default/media/style/askbot-modal.css
@@ -11,7 +11,7 @@
#AskbotAskWidget div{
width:600px;
- height:200px;
+ height:400px;
margin: 100px auto;
background-color: #fff;
border:1px solid #000;
@@ -21,4 +21,5 @@
#AskbotAskWidget iframe{
width:600px;
+ height:400px;
}
diff --git a/askbot/skins/default/templates/ask_by_widget.html b/askbot/skins/default/templates/ask_by_widget.html
index f700f83a..f5c2a0a2 100644
--- a/askbot/skins/default/templates/ask_by_widget.html
+++ b/askbot/skins/default/templates/ask_by_widget.html
@@ -1,16 +1,40 @@
{% extends "widget_base.html" %}
+{% import "macros.html" as macros %}
{% block forestyle %}
+ <style type="text/css" media="screen">
+ #editor {
+ display: block;
+ min-height: 200px;
+ width: 100%;
+ margin: 0;
+ border: #CCE6EC 2px solid;
+ }
+
+ #id_title{
+ width: 100%;
+ font-size: 130%;
+ border: #CCE6EC 3px solid;
+ }
+
+ #submit{
+ float: right;
+ font-size: 130%;
+ }
+ </style>
{%endblock%}
{%block body%}
-Enter your question
<form action="." method="POST" accept-charset="utf-8">
{% csrf_token %}
- {{form.title}}
+ <p>{{form.title}}</p>
+ {{form.text}}
{% if form.ask_anonymously %}
- {{form.ask_anonymously}}
+ <p>{{form.ask_anonymously.label_tag()}}: {{form.ask_anonymously}}</p>
{%endif%}
- <input type="submit" value="Ask your question" />
+ <input type="submit" value="Ask your question" id="submit" />
</form>
{{form.errors}}
{%endblock%}
+{% block endjs %}
+{% endblock %}
+
diff --git a/askbot/skins/default/templates/create_ask_widget.html b/askbot/skins/default/templates/ask_widget_form.html
index 3c831229..8b4c52fe 100644
--- a/askbot/skins/default/templates/create_ask_widget.html
+++ b/askbot/skins/default/templates/ask_widget_form.html
@@ -4,6 +4,10 @@
{% block content %}
<h1> Create a askbot ask widget.</h1>
+{%if form.non_field_errors()%}
+ {{form.non_field_errors()}}
+{%endif%}
+
<form action="." method="POST">
{%for field in form%}
<div class='field'>
@@ -11,7 +15,7 @@
{{field.label_tag()}}: {{field}}
</div>
{%endfor%}
- <p><input type='submit' value='Create Widget' /></p>
+ <p><input type='submit' value='Save Widget' /></p>
</form>
{% endblock %}
diff --git a/askbot/skins/default/templates/widgets/askbot_widget.js b/askbot/skins/default/templates/widgets/askbot_widget.js
index f7b0c356..646d3dd5 100755
--- a/askbot/skins/default/templates/widgets/askbot_widget.js
+++ b/askbot/skins/default/templates/widgets/askbot_widget.js
@@ -8,7 +8,7 @@ var AskbotAskWidget = {
var html = AskbotAskWidget.createButton();
var link = document.createElement('link');
link.setAttribute("rel", "stylesheet");
- link.setAttribute("href", 'http://{{host}}/static/default/media/style/askbot-modal.css');
+ link.setAttribute("href", 'http://{{host}}{{"/style/askbot-modal.css"|media}}');
//creating the div
var motherDiv = document.createElement('div');
diff --git a/askbot/tests/form_tests.py b/askbot/tests/form_tests.py
index be88cf39..90f4f4f2 100644
--- a/askbot/tests/form_tests.py
+++ b/askbot/tests/form_tests.py
@@ -374,11 +374,12 @@ class AskWidgetFormTests(AskbotTestCase):
self.bad_data = {'title': ''}
def test_valid_input(self):
- form_object = self.form(self.good_data)
+ form_object = self.form(include_text=False, data=self.good_data)
+ print form_object.errors
self.assertTrue(form_object.is_valid())
- form_object = self.form(self.good_data_anon)
+ form_object = self.form(include_text=False, data=self.good_data_anon)
self.assertTrue(form_object.is_valid())
def test_invalid_input(self):
- form_object = self.form(self.bad_data)
+ form_object = self.form(False, data=self.bad_data)
self.assertFalse(form_object.is_valid())
diff --git a/askbot/tests/widget_tests.py b/askbot/tests/widget_tests.py
index 7c602804..673b17f4 100644
--- a/askbot/tests/widget_tests.py
+++ b/askbot/tests/widget_tests.py
@@ -77,6 +77,7 @@ class WidgetCreatorViewsTests(AskbotTestCase):
self.user.set_password('testpass')
self.user.set_admin_status()
self.user.save()
+ self.widget = models.AskWidget.objects.create(title='foo widget')
def test_list_ask_widget_view(self):
self.client.login(username='user1', password='testpass')
@@ -95,3 +96,17 @@ class WidgetCreatorViewsTests(AskbotTestCase):
post_data = {'title': 'Test widget'}
response = self.client.post(reverse('create_ask_widget'), post_data)
self.assertEquals(response.status_code, 302)
+
+ def test_edit_ask_widget_get(self):
+ self.client.login(username='user1', password='testpass')
+ response = self.client.get(reverse('edit_ask_widget',
+ args=(self.widget.id, )))
+ self.assertEquals(response.status_code, 200)
+ self.assertTrue('form' in response.context)
+
+ def test_edit_ask_widget_post(self):
+ self.client.login(username='user1', password='testpass')
+ post_data = {'title': 'Test lalalla'}
+ response = self.client.post(reverse('edit_ask_widget',
+ args=(self.widget.id, )), post_data)
+ self.assertEquals(response.status_code, 302)
diff --git a/askbot/urls.py b/askbot/urls.py
index afcada05..b91c2ed8 100644
--- a/askbot/urls.py
+++ b/askbot/urls.py
@@ -402,6 +402,11 @@ urlpatterns = patterns('',
name = 'create_ask_widget'
),
url(
+ r'^widgets/ask/edit/(?P<widget_id>\d+)/$',
+ views.widgets.edit_ask_widget,
+ name = 'edit_ask_widget'
+ ),
+ url(
r'^widgets/ask/$',
views.widgets.list_ask_widget,
name = 'list_ask_widgets'
diff --git a/askbot/views/widgets.py b/askbot/views/widgets.py
index c40a9001..46a78037 100644
--- a/askbot/views/widgets.py
+++ b/askbot/views/widgets.py
@@ -20,7 +20,7 @@ from askbot import forms
def ask_widget(request, widget_id):
def post_question(data, request):
- thread = models.Thread.objects.create_new(**data_dict)
+ thread = models.Thread.objects.create_new(**data)
question = thread._question_post()
request.session['widget_question_url'] = question.get_absolute_url()
return question
@@ -28,15 +28,20 @@ def ask_widget(request, widget_id):
widget = get_object_or_404(models.AskWidget, id=widget_id)
if request.method == "POST":
- form = forms.AskWidgetForm(request.POST)
+ form = forms.AskWidgetForm(include_text=widget.include_text_field,
+ data=request.POST)
if form.is_valid():
ask_anonymously = form.cleaned_data['ask_anonymously']
title = form.cleaned_data['title']
+ if widget.include_text_field:
+ text = form.cleaned_data['text']
+ else:
+ text = ' '
data_dict = {
'title': title,
'added_at': datetime.now(),
'wiki': False,
- 'text': ' ',
+ 'text': text,
'tagnames': '',
'is_anonymous': ask_anonymously
}
@@ -63,7 +68,7 @@ def ask_widget(request, widget_id):
next_url = '%s?next=%s' % (reverse('widget_signin'), reverse('ask_by_widget'))
return redirect(next_url)
- form = forms.AskWidgetForm()
+ form = forms.AskWidgetForm(include_text=widget.include_text_field)
data = {'form': form, 'widget': widget}
return render_into_skin('ask_by_widget.html', data, request)
@@ -100,7 +105,23 @@ def create_ask_widget(request):
form = models.widgets.CreateAskWidgetForm()
data = {'form': form}
- return render_into_skin('create_ask_widget.html', data, request)
+ return render_into_skin('ask_widget_form.html', data, request)
+
+@decorators.admins_only
+def edit_ask_widget(request, widget_id):
+ widget = get_object_or_404(models.AskWidget, pk=widget_id)
+ if request.method=='POST':
+ form = models.widgets.CreateAskWidgetForm(request.POST,
+ instance=widget)
+ if form.is_valid():
+ form.save()
+ return redirect('list_ask_widgets')
+ else:
+ form = models.widgets.CreateAskWidgetForm(instance=widget)
+
+ data = {'form': form}
+ return render_into_skin('ask_widget_form.html', data, request)
+
#TODO: Add cache
def render_ask_widget_js(request, widget_id):