Exemple #1
0
def edit_link(request, id):
    """edit a link"""
    # prepare messages
    mm = MessageManager(request)
    link = get_object_or_404(Link, pk=id)
    if request.user.is_authenticated() and request.user.username == link.user.username:
        if request.POST:
            form = CreateLinkForm(request.POST, request.FILES, user=request.user)
            if form.is_valid():
                form.update(request, link)
                mm.set_success("Your link has been updated")
                return redirect(link.get_absolute_url())
            else:
                # form had errors
                return render(request, 'main/link/edit.html', mm.messages(), {'form':form, 'link':link})
        else:
            # prepare new form for user
            lpk = None
            if link.group():
                lpk = link.group().pk
            term_str = delim_list(object_taxon(link), ',')
            form = CreateLinkForm(user=request.user, initial={'group': lpk, 'title':link.title, 'url':link.url, 'terms':term_str})
            
            return render(request, 'main/link/edit.html', mm.messages(), {'form':form, 'link':link})
    else:
        return redirect(request.META.get('HTTP_REFERER','/'))
Exemple #2
0
def create_link(request, gid=None):
    """page to create a new link object"""
    # prepare messages
    mm = MessageManager(request)
    if request.user.is_authenticated():
        # TODO: allow unauthorized users to create temporary content, but require them to
        # sign up for an account before it can be saved. (html5 local db)
        form = None
        if request.POST:
            form = CreateLinkForm(request.POST, request.FILES, user=request.user)
            if form.is_valid(): 
                new = form.save(request, gid)
                mm.set_success("You successfully created a new link \"%s\"" % new.title)
                # TODO: take to new link page
                if new.group():
                    return redirect(new.group().get_absolute_url())
                else:
                    return redirect(request.user.get_absolute_url())
            else:
                # form had errors
                data = request.POST.copy()
                formerr = form
                
                dgroup=None
                if gid:
                    form.fields['group'].widget.attrs['disabled'] = True # radio / checkbox
                    dgroup = get_object_or_404(cGroup, pk=gid)
                    form.fields['group'].widget.choices = ((gid,dgroup.name),)
                    
                return render(request, 'main/link/create.html', mm.messages(), {'form':form, 'group':dgroup})
        else:
            # prepare new form for user
            form = CreateLinkForm(user=request.user, initial={'group': gid})
            
            dgroup=None
            if gid:
                form.fields['group'].widget.attrs['disabled'] = True # radio / checkbox
                dgroup = get_object_or_404(cGroup, pk=gid)
                
            return render(request, 'main/link/create.html', mm.messages(), {'form':form, 'group':dgroup})
    else:
        return redirect(request.META.get('HTTP_REFERER','/'))