Beispiel #1
0
def add_edit_for_model(request, model, model_slug, contact_slug=None, template='blcontact/includes/form.html'):
    """ Add/Edit contact """
    model = get_model(*model.split('.'))
    model_object = get_object_or_404(model, slug=model_slug, members=request.user)
    model_type = ContentType.objects.get_for_model(model_object)  
    
    if isinstance(model_object, Group):
        redirect_reverse = 'group-contact-detail'
        extra_context = {'group': model_object}

    elif isinstance(model_object, Project):
        redirect_reverse = 'project-contact-detail'
        extra_context = {'project': model_object}

    form = ContactForm(request.POST or None,
                       instance=contact_slug and Contact.objects.get(slug__iexact=contact_slug,
                                                                     content_type__pk=model_type.id))

    if request.method == "POST" and form.is_valid():
        contact = form.save(model_object)
            
        return HttpResponseRedirect(reverse(redirect_reverse,
                                            kwargs = {'model_slug': model_slug,
                                                      'contact_slug': contact.slug}))
    extra_context['form'] = form
    return direct_to_template(request,
                              template=template,
                              extra_context=extra_context)
Beispiel #2
0
def add_edit(request, id=None):
    """ Add/Edit contact """
    form = ContactForm(request.POST or None,
                       instance=id and Contact.objects.get(pk=id))
    
    if request.method == "POST" and form.is_valid():
        contact = form.save()

        return HttpResponseRedirect(reverse('contact-detail',
                                            kwargs = {'id': contact.id, }))
    return direct_to_template(request,
                              template='blcontact/includes/form.html',
                              extra_context={'form': form,})