Exemple #1
0
 def test_valid_input(self):
     form_object = forms.AskWidgetForm(include_text=False,
                                       data=self.good_data,
                                       user=AnonymousUser())
     self.assertTrue(form_object.is_valid())
     form_object = forms.AskWidgetForm(include_text=False,
                                       data=self.good_data_anon,
                                       user=AnonymousUser())
     self.assertTrue(form_object.is_valid())
Exemple #2
0
def ask_widget(request, widget_id):

    def post_exercise(data, request):
        thread = models.Thread.objects.create_new(**data)
        exercise = thread._exercise_post()
        request.session['widget_exercise_url'] = exercise.get_absolute_url()
        return exercise

    widget = get_object_or_404(models.AskWidget, id=widget_id)

    if request.method == "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 = ' '


            if widget.group:
                group_id = widget.group.id
            else:
                group_id = None

            if widget.tag:
                tagnames = widget.tag.name
            else:
                tagnames = ''

            data_dict = {
                'title': title,
                'added_at': datetime.now(),
                'wiki': False,
                'text': text,
                'tagnames': tagnames,
                'group_id': group_id,
                'is_anonymous': ask_anonymously
            }
            if request.user.is_authenticated():
                data_dict['author'] = request.user
                exercise = post_exercise(data_dict, request)
                return redirect('ask_by_widget_complete')
            else:
                request.session['widget_exercise'] = data_dict
                next_url = '%s?next=%s' % (
                        reverse('widget_signin'),
                        reverse('ask_by_widget', args=(widget.id,))
                )
                return redirect(next_url)
    else:
        if 'widget_exercise' in request.session and \
                request.GET.get('action', 'post-after-login'):
            if request.user.is_authenticated():
                data_dict = request.session['widget_exercise']
                data_dict['author'] = request.user
                exercise = post_exercise(request.session['widget_exercise'], request)
                del request.session['widget_exercise']
                return redirect('ask_by_widget_complete')
            else:
                #FIXME: this redirect is temporal need to create the correct view
                next_url = '%s?next=%s' % (reverse('widget_signin'), reverse('ask_by_widget'))
                return redirect(next_url)

        form = forms.AskWidgetForm(include_text=widget.include_text_field)

    data = {
            'form': form,
            'widget': widget,
            'editor_type': askbot_settings.EDITOR_TYPE
           }
    return render_into_skin('embed/ask_by_widget.html', data, request)