diff --git a/aiteo/admin.py b/aiteo/admin.py index a4e2d4b..5db4993 100644 --- a/aiteo/admin.py +++ b/aiteo/admin.py @@ -3,6 +3,7 @@ from aiteo.models import Question, Response + class ResponseInline(admin.StackedInline): model = Response @@ -13,4 +14,5 @@ class QuestionAdmin(admin.ModelAdmin): ] + admin.site.register(Question, QuestionAdmin) \ No newline at end of file diff --git a/aiteo/forms.py b/aiteo/forms.py index a1e1043..3dfe340 100644 --- a/aiteo/forms.py +++ b/aiteo/forms.py @@ -3,6 +3,7 @@ from aiteo.models import Question, Response + class AskQuestionForm(forms.ModelForm): class Meta: @@ -15,5 +16,4 @@ class AddResponseForm(forms.ModelForm): class Meta: model = Response fields = ["content"] - \ No newline at end of file diff --git a/aiteo/models.py b/aiteo/models.py index 503a777..d7f2049 100644 --- a/aiteo/models.py +++ b/aiteo/models.py @@ -11,6 +11,7 @@ from voting.models import Vote + class Question(models.Model): object_id = models.IntegerField(null=True, blank=True) @@ -56,7 +57,7 @@ def update_score(self): self.score = result["score"] self.vote_count = result["num_votes"] self.save() - + def accept(self): # check for another active one and mark it inactive try: diff --git a/aiteo/templatetags/extra_voting_tags_mergeme.py b/aiteo/templatetags/extra_voting_tags_mergeme.py index 09eaea4..c55d160 100644 --- a/aiteo/templatetags/extra_voting_tags_mergeme.py +++ b/aiteo/templatetags/extra_voting_tags_mergeme.py @@ -3,6 +3,7 @@ register = template.Library() + @register.filter def get_state(original_type, vote_obj): # FIXME: there is a better name for it diff --git a/aiteo/urls.py b/aiteo/urls.py index fc2eb96..bdf022d 100644 --- a/aiteo/urls.py +++ b/aiteo/urls.py @@ -1,32 +1,36 @@ from django.conf.urls.defaults import * -from aiteo.models import Question, Response from voting.views import vote_on_object +from aiteo.models import Question, Response + + urlpatterns = patterns("", - url(r'^$', "aiteo.views.question_list", name="aiteo_question_list"), - url(r'^ask/$', "aiteo.views.question_create", name="aiteo_question_create"), - url(r'^question/(?P\d+)/$', "aiteo.views.question_detail", name="aiteo_question_detail"), - url(r'^question/(?P\d+)/accept/(?P\d+)/$', "aiteo.views.mark_accepted", name="aiteo_mark_accepted"), + url(r"^$", "aiteo.views.question_list", name="aiteo_question_list"), + url(r"^ask/$", "aiteo.views.question_create", name="aiteo_question_create"), + url(r"^question/(?P\d+)/$", "aiteo.views.question_detail", name="aiteo_question_detail"), + url(r"^question/(?P\d+)/accept/(?P\d+)/$", "aiteo.views.mark_accepted", name="aiteo_mark_accepted"), # Question voting - url(r'^question/vote-question/(?P\d+)/(?Pup|down|clear)vote/$', + url(r"^question/vote-question/(?P\d+)/(?Pup|down|clear)vote/$", vote_on_object, dict( model = Question, template_object_name = "object", template_name = "questions/confirm_vote.html", allow_xmlhttprequest = True ), - name="aiteo_question_vote"), + name="aiteo_question_vote" + ), # Response voting - url(r'^question/vote-response/(?P\d+)/(?Pup|down|clear)vote/$', + url(r"^question/vote-response/(?P\d+)/(?Pup|down|clear)vote/$", vote_on_object, dict( model = Response, template_object_name = "object", template_name = "questions/confirm_vote.html", allow_xmlhttprequest = True ), - name="aiteo_response_vote"), + name="aiteo_response_vote" + ), ) \ No newline at end of file diff --git a/aiteo/views.py b/aiteo/views.py index 6c9c738..30e2dfd 100644 --- a/aiteo/views.py +++ b/aiteo/views.py @@ -8,6 +8,7 @@ from aiteo.models import Question + @login_required # @@@ def question_list(request, group_slug=None, bridge=None): @@ -24,10 +25,14 @@ def question_list(request, group_slug=None, bridge=None): if group: questions = group.content_objects(questions) - return render_to_response("aiteo/question_list.html", { + ctx = { "group": group, "questions": questions, - }, context_instance=RequestContext(request)) + } + + return render_to_response("aiteo/question_list.html", + context_instance = RequestContext(request, ctx) + ) @login_required @@ -51,10 +56,14 @@ def question_create(request, group_slug=None, bridge=None): else: form = AskQuestionForm() - return render_to_response("aiteo/question_create.html", { + ctx = { "group": group, "form": form, - }, context_instance=RequestContext(request)) + } + + return render_to_response("aiteo/question_create.html", + context_instance = RequestContext(request) + ) @login_required # @@@ @@ -83,7 +92,7 @@ def question_detail(request, question_id, group_slug=None, bridge=None): if request.method == "POST": add_response_form = AddResponseForm(request.POST) - + if add_response_form.is_valid(): response = add_response_form.save(commit=False) response.question = question @@ -96,13 +105,17 @@ def question_detail(request, question_id, group_slug=None, bridge=None): else: add_response_form = None - return render_to_response("aiteo/question_detail.html", { + ctx = { "group": group, "is_me": is_me, "question": question, "responses": responses, "add_response_form": add_response_form, - }, context_instance=RequestContext(request)) + } + + return render_to_response("aiteo/question_detail.html", + context_instance = RequestContext(request) + ) @login_required