Ejemplo n.º 1
0
def add_discussion(request):
    group = Group.objects.get(id=request.POST.get('group'))
    group_profile = GroupProfile.objects.filter(group=group)[0]
    if group_profile.is_private and not group_profile.is_user_in_group(request.user):
        return HttpResponse("The group is private. You're not allowed to create discussion.")
    if request.POST:
        discussion_form = DiscussionForm(request.POST)
        if discussion_form.is_valid():
            discussion = Discussion()
            discussion.group = group
            discussion.type = DiscussionType.objects.get(id=request.POST.get('type'))
            discussion.name = discussion_form.cleaned_data['name']
            if is_heb(discussion.name):
                encoded_discussion_name = discussion.name.__repr__().encode("ascii")[2:-1]
                encoded_group_name = group.name.__repr__().encode("ascii")[2:-1]
                discussion.slug = slugify("%s_%s" % (encoded_group_name,encoded_discussion_name))
            else:
                discussion.slug = slugify("%s_%s" % (group.name,discussion.name))
            discussion.description = discussion_form.cleaned_data['description']
            discussion.created_by = request.user
            discussion.x = request.POST.get('x', None)
            discussion.y = request.POST.get('y', None)
            discussion.is_private = 'is_private' in request.POST
            discussion.save()
            return HttpResponse('reload')
        else:
            return HttpResponse(discussion_form.errors.as_text(), status=400)
    else:
        return HttpResponse('Wrong usage: HTTP POST expected')
Ejemplo n.º 2
0
def create_discussion_via_im(request):
    im_address = request.POST.get("im_address", "")
    name = request.POST.get("name", _("Untitled"))
    description = request.POST.get("description", "")
    group = int(request.POST.get("group", 0))
    user_profile = get_object_or_404(UserProfile, im_address=im_address)
    user = user_profile.user
    group = get_object_or_404(Group, pk=group)
    discussion = Discussion()
    discussion.group = group
    discussion.type = DiscussionType.objects.get(name=settings.DEFAULT_DISCUSSION_TYPE)
    discussion.name = name
    if is_heb(discussion.name):
        encoded_discussion_name = discussion.name.__repr__().encode("ascii")[2:-1]
        encoded_group_name = group.name.__repr__().encode("ascii")[2:-1]
        discussion.slug = slugify("%s_%s" % (encoded_group_name,encoded_discussion_name))
    else:
        discussion.slug = slugify("%s_%s" % (group.name,discussion.name))
    discussion.description = description
    discussion.created_by = user
    discussion.x = 0
    discussion.y = 0
    discussion.is_private = 'is_private' in request.POST
    discussion.save()
    discussion_details = {"id": discussion.id, "link": discussion.get_absolute_url(), "name": discussion.name}
    return HttpResponse(simplejson.dumps(discussion_details))
Ejemplo n.º 3
0
def add_base_story(request):
    #saving new story
    if request.POST:
        discussion = get_object_or_404(Discussion, pk=request.POST["discussion"])
        story_type = request.POST["story-class"]
        title = request.POST["title"]
        if is_heb(title):
            encoded_title = title.__repr__().encode("ascii")[2:-1]
            slug = slugify(encoded_title)
        else:
            slug = slugify(title)
        user = request.user
        speech_act = get_object_or_404(SpeechAct, pk=int(request.POST["speech_act"]))
        result = {
            '1': add_story,
            '2': add_opinion,
            '3': add_relation,
        }[story_type](request, discussion, user, title, slug, speech_act)
    else:
        result = HttpResponse(_("Wrong usage: HTTP POST expected"))
    return result