Esempio n. 1
0
def registration(req, pk=None):
    contact = None

    if pk is not None:
        contact = get_object_or_404(
            Contact, pk=pk)

    if req.method == "POST":
        if req.POST["submit"] == "Delete Contact":
            contact.delete()
            return HttpResponseRedirect(
                reverse(registration))

        else:
            form = ContactForm(
                instance=contact,
                data=req.POST)

            if form.is_valid():
                contact = form.save()
                return HttpResponseRedirect(
                    reverse(registration))

    else:
        form = ContactForm(
            instance=contact)

    return render_to_response(
        "registration/dashboard.html", {
            "contacts_table": ContactTable(Contact.objects.all(), request=req),
            "contact_form": form,
            "contact": contact
        }, context_instance=RequestContext(req)
    )
Esempio n. 2
0
def registration(req, pk=None):
    contact = None

    if pk is not None:
        contact = get_object_or_404(
            Contact, pk=pk)

    if req.method == "POST":
        if req.POST["submit"] == "Delete Contact":
            contact.delete()
            return HttpResponseRedirect(
                reverse(registration))

        elif "bulk" in req.FILES:
            # TODO use csv module
            #reader = csv.reader(open(req.FILES["bulk"].read(), "rb"))
            #for row in reader:
            for line in req.FILES["bulk"]:
                line_list = line.split(',')
                name = line_list[0].strip()
                backend_name = line_list[1].strip()
                identity = line_list[2].strip()

                contact = Contact(name=name)
                contact.save()
                # TODO deal with errors!
                backend = Backend.objects.get(name=backend_name)

                connection = Connection(backend=backend, identity=identity,
                                        contact=contact)
                connection.save()

            return HttpResponseRedirect(
                reverse(registration))
        else:
            contact_form = ContactForm(
                instance=contact,
                data=req.POST)

            if contact_form.is_valid():
                contact = contact_form.save()
                return HttpResponseRedirect(
                    reverse(registration))

    else:
        contact_form = ContactForm(
            instance=contact)
        bulk_form = BulkRegistrationForm()

    return render_to_response(
        "registration/dashboard.html", {
            "contacts_table": ContactTable(Contact.objects.all(), request=req),
            "contact_form": contact_form,
            "bulk_form": bulk_form,
            "contact": contact
        }, context_instance=RequestContext(req)
    )
Esempio n. 3
0
def registration(req, pk=None):
    contact = None

    if pk is not None:
        contact = get_object_or_404(
            Contact, pk=pk)

    if req.method == "POST":
        if req.POST["submit"] == "Delete Contact":
            contact.delete()
            return HttpResponseRedirect(
                reverse(registration))

        else:
            form = ContactForm(
                instance=contact,
                data=req.POST)

            if form.is_valid():
                contact = form.save()
                return HttpResponseRedirect(
                    reverse(registration))

    else:
        form = ContactForm(
            instance=contact)

    class ContactRow(ModelRow):

        # add an 'url' attribute; a link to the edit page, with the same
        # GET parameters as the current view. this lets us persist the
        # pagination params (page=, per-page=), maintaining the current
        # state of the contacts list (on the left).
        def url(self):
            u = reverse(registration, args=[self.data.pk])
            if req.GET: u += "?%s" % req.GET.urlencode()
            return u

        # add an 'is_active' attr, to highlight the row that we're
        # currently editing (if any) in the form to the right.
        def is_active(self):
            return self.data == contact

    return render_to_response(req,
        "registration/dashboard.html", {
            "contacts": ContactTable(request=req, row_class=ContactRow),
            "contact_form": form,
            "contact": contact
        })
Esempio n. 4
0
def registration(req, pk=None, template="registration/dashboard.html"):
    contact = None
    connection = None
    bulk_form = None

    if pk is not None:
        contact = get_object_or_404(Contact, pk=pk)
        connection = get_object_or_404(Connection, contact__name=contact.name)

    if req.method == "POST":
        if req.POST["submit"] == "Delete Contact":
            contact.delete()
            return HttpResponseRedirect(reverse(registration))

        elif "bulk" in req.FILES:
            # TODO use csv module
            #reader = csv.reader(open(req.FILES["bulk"].read(), "rb"))
            #for row in reader:
            for line in req.FILES["bulk"]:
                line_list = line.split(',')
                name = line_list[0].strip()
                backend_name = line_list[1].strip()
                identity = line_list[2].strip()

                contact = Contact(name=name)
                contact.save()
                # TODO deal with errors!
                backend = Backend.objects.get(name=backend_name)

                connection = Connection(backend=backend, identity=identity,\
                    contact=contact)
                connection.save()

            return HttpResponseRedirect(reverse(registration))
        else:
            contact_form = ContactForm(instance=contact, data=req.POST)
            connection_form = ConnectionForm(req.POST, instance=connection)

            if contact_form.is_valid() and connection_form.is_valid():
                contact = contact_form.save()
                connection = connection_form.save(commit=False)
                connection.contact = contact
                connection.save()
                return HttpResponseRedirect(reverse(registration))

    else:
        contact_form = ContactForm(instance=contact)
        bulk_form = BulkRegistrationForm()
        connection_form = ConnectionForm(instance=connection)

    return render_to_response(
        template, {
            "contacts_table": ContactTable(Contact.objects.all(), request=req),
            "contact_form": contact_form,
            "connection_form": connection_form,
            "bulk_form": bulk_form,
            "contact": contact
        },
        context_instance=RequestContext(req))