def group_disc_create(request, group_slug): group = Group.objects.get(slug=group_slug) if not group.is_poster(request.user): return forbidden(request) if request.method == "POST": disc_form = DiscussionCreateForm(request.POST) if disc_form.is_valid(): group = Group.objects.get(slug=group_slug) disc = Discussion.objects.create( subject=disc_form.cleaned_data['subject'], body=disc_form.cleaned_data['body'], parent_id=disc_form.cleaned_data['parent_id'], user=request.user, group=group, is_public=not group.moderate_disc(request.user), reply_count=None if disc_form.cleaned_data['parent_id'] else 0 ) messages.success(request, _("Discussion posted")) return_to = (disc_form.cleaned_data['parent_id'] if disc_form.cleaned_data['parent_id'] else disc.id) return redirect("group_disc_detail", group_slug=group.slug, disc_id=return_to) else: disc_form = DiscussionCreateForm() return render_to_response("groups/group_disc_create.html", locals(), context_instance=RequestContext(request))
def group_disc_create(request, group_slug): group = Group.objects.get(slug=group_slug) if not group.is_poster(request.user): return forbidden(request) if request.method == "POST": disc_form = DiscussionCreateForm(request.POST) if disc_form.is_valid(): group = Group.objects.get(slug=group_slug) disc = Discussion.objects.create( subject=disc_form.cleaned_data['subject'], body=disc_form.cleaned_data['body'], parent_id=disc_form.cleaned_data['parent_id'], user=request.user, group=group, is_public=not group.moderate_disc(request.user), reply_count=None if disc_form.cleaned_data['parent_id'] else 0) messages.success(request, "Discussion posted") return_to = disc_form.cleaned_data[ 'parent_id'] if disc_form.cleaned_data['parent_id'] else disc.id return redirect("group_disc_detail", group_slug=group.slug, disc_id=return_to) else: disc_form = DiscussionCreateForm() return render_to_response("groups/group_disc_create.html", locals(), context_instance=RequestContext(request))
def group_contact_admins(request, group_slug): group = Group.objects.get(slug=group_slug) from discussions.models import Discussion as GenericDiscussion if request.method == "POST": disc_form = DiscussionCreateForm(request.POST) if disc_form.is_valid(): disc = GenericDiscussion.objects.create( subject="Message to group leaders: %s" % disc_form.cleaned_data['subject'], body=disc_form.cleaned_data['body'], parent_id=None, user=request.user, content_object=group, is_public=False, disallow_replies=True, reply_count=0, contact_admin=True, ) messages.success(request, _("Your message has been sent to the group leaders")) return redirect(group) else: disc_form = DiscussionCreateForm() return render_to_response("groups/group_disc_contact_admins.html", locals(), context_instance=RequestContext(request))
def group_disc_detail(request, group_slug, disc_id): disc = get_object_or_404(Discussion, id=disc_id, parent=None) group = Group.objects.get(slug=group_slug) is_poster = group.is_poster(request.user) is_manager = group.is_user_manager(request.user) approve_form = DiscussionApproveForm() remove_form = DiscussionRemoveForm() discs = Discussion.objects.filter(parent=disc).order_by("created") disc_form = DiscussionCreateForm(initial={ 'parent_id': disc.id, 'subject': "Re: %s" % disc.subject }) return render_to_response("groups/group_disc_detail.html", locals(), context_instance=RequestContext(request))
best_choice = part break if best_choice is None and part.get_content_type() == 'text/html': best_choice = part if best_choice is None: # No text/plain or text/html message was found in the email # so we'll just reject it for now. # TODO: figure out a sane approach to email content-type handling return forbidden(request) # TODO: process text/html message differently charset = (best_choice.get_content_charset() or best_choice.get_charset() or msg.get_content_charset() or msg.get_charset() or 'utf-8') values['body'] = best_choice.get_payload(decode=True).decode(charset) disc_form = DiscussionCreateForm(values) if not disc_form.is_valid(): return forbidden(request) values = dict( subject=disc_form.cleaned_data['subject'], body=disc_form.cleaned_data['body'], parent_id=disc_form.cleaned_data['parent_id'], user=user, group=group, is_public=not group.moderate_disc(user), reply_count=None if disc_form.cleaned_data['parent_id'] else 0 ) new_disc = Discussion.objects.create(**values)