Beispiel #1
0
def company(request, company_id=None):
    """Client creation or modification"""
    company = None
    try:
        if company_id:
            company = Company.objects.get(id=company_id)
    except Company.DoesNotExist:
        pass

    if request.method == "POST":
        if company:
            form = CompanyForm(request.POST, instance=company)
        else:
            form = CompanyForm(request.POST)
        if form.is_valid():
            company = form.save()
            company.save()
            return HttpResponseRedirect(urlresolvers.reverse("crm.views.company_detail", args=[company.id]))
    else:
        if company:
            form = CompanyForm(instance=company)  # A form that edit current company
        else:
            form = CompanyForm()  # An unbound form

    return render(request, "crm/clientcompany.html", {"company": company,
                                                      "form": form,
                                                      "user": request.user})
Beispiel #2
0
    def test_form_is_not_valid(self):
        """Test is_validate() method.

            Testing CompanyForm.is_valid() method
            with empty fields return invalid form
        """
        form_data = dict()
        form = CompanyForm(data=form_data)
        self.assertFalse(form.is_valid())
Beispiel #3
0
def edit_party(request, party_id):
    #Получаем объект
    party = get_object_or_404(Party, id=party_id)
    party = getattr(party, party.party_type)

    if request.method == 'POST':

        #В зависимости от типа выбираем соответствующую форму
        if party.party_type == 'person':
            form = PersonForm(request.POST)
        elif party.party_type == 'company':
            form = CompanyForm(request.POST)

        if form.is_valid():
            if party.party_type == 'person':
                party.lname = form.cleaned_data['lname']
                party.fname = form.cleaned_data['fname']
                party.mname = form.cleaned_data['mname']
                party.background_info = form.cleaned_data['background_info']

            elif party.party_type == 'company':
                party.name = form.cleaned_data['name']
                party.background_info = form.cleaned_data['background_info']

            party.save()

            return HttpResponseRedirect(
                reverse(party_page, kwargs={'party_id': party.id}))

    else:
        if party.party_type == 'person':
            form = PersonForm({
                'lname': party.lname,
                'fname': party.fname,
                'mname': party.mname,
                'background_info': party.background_info,
                'company': party.company
            })
        elif party.party_type == 'company':
            form = CompanyForm({
                'name': party.name,
                'background_info': party.background_info
            })

    variables = RequestContext(request, {
        'form': form,
        'party_type': party.party_type,
        'party': party
    })
    return render_to_response('crm/edit_party.html', variables)
Beispiel #4
0
    def test_form_is_valid(self):
        """Test is_validate() method.

            Testing CompanyForm.is_valid() method
            with correct fields return valid form
        """
        form_data = dict(
            name='Example Company',
            city='City',
            street='Example Street 6',
            postal_code='11-111',
            number='586-22-50-789',
        )
        form = CompanyForm(data=form_data)
        self.assertTrue(form.is_valid())
Beispiel #5
0
    def test_wrong_postal_code_raise_exception(self):
        """Test clean_postal_code() method.

            Testing Company.clean_postal_code() method
            with wrong postal code raise ValidationError exception
        """
        form_data = dict(
            name='Example Company',
            city='City',
            street='Example Street 6',
            postal_code='111',
            number='123',
        )
        form = CompanyForm(data=form_data)
        form.is_valid()
        self.assertRaises(ValidationError, form.clean_postal_code)
Beispiel #6
0
def company(request, company_id=None):
    """Client creation or modification"""
    company = None
    try:
        if company_id:
            company = Company.objects.get(id=company_id)
    except Company.DoesNotExist:
        pass

    if request.method == "POST":
        if company:
            form = CompanyForm(request.POST, instance=company)
        else:
            form = CompanyForm(request.POST)
        if form.is_valid():
            company = form.save()
            company.save()
            return HttpResponseRedirect(urlresolvers.reverse("crm.views.company_detail", args=[company.id]))
    else:
        if company:
            form = CompanyForm(instance=company)  # A form that edit current company
        else:
            form = CompanyForm()  # An unbound form

    return render(request, "crm/clientcompany.html", {"company": company,
                                                      "form": form,
                                                      "user": request.user})
Beispiel #7
0
def company_new(request):
    if request.method == "POST":
        form = CompanyForm(request.POST)
        if form.is_valid():
            company = form.save(commit=False)
            company.save()
            return redirect('company_details', pk=company.pk)
    else:
        form = CompanyForm()
    return render(request, 'company/company_add.html', {'form': form})
Beispiel #8
0
def company_edit(request, pk):
    company = get_object_or_404(Company, pk=pk)
    if request.method == "POST":
        form = CompanyForm(request.POST, instance=company)
        if form.is_valid():
            company = form.save(commit=False)
            company.save()
            return redirect('company_details', pk=company.pk)
    else:
        form = CompanyForm(instance=company)
    return render(request, 'company/company_edit.html', {'form': form})
Beispiel #9
0
def client_organisation_company_popup(request):
    """Client, organisation and company creation in one popup"""
    template = get_template("crm/client-popup.html")
    result = {"success": False}
    if request.method == "POST":
        clientForm = ClientForm(request.POST, prefix="client")
        organisationForm = ClientOrganisationForm(request.POST, prefix="organisation")
        companyForm = CompanyForm(request.POST, prefix="company")
        contactForm = ContactForm(request.POST, prefix="contact")

        if contactForm.is_valid():
            contact = contactForm.save()
        else:
            contact = None

        if companyForm.is_valid():
            company = companyForm.save()
        else:
            company = None

        client = None
        if clientForm.is_valid():
            client = clientForm.save(commit=False)
        else:
            # clientForm may be invalid because client organisation is a new one
            if organisationForm.is_valid():
                organisation = organisationForm.save()
                clientForm.data = clientForm.data.copy()
                clientForm.data["client-organisation"] = organisation.id  # Inject organisation in client form
                clientForm.full_clean()
                if clientForm.is_valid():
                    client = clientForm.save(commit=False)
            elif company:
                # organisationForm may be invalid because company is a new one
                organisationForm.data = organisationForm.data.copy()
                organisationForm.data["organisation-company"] = company.id  # Inject company in organisation form
                organisationForm.full_clean()
                if organisationForm.is_valid():
                    organisation = organisationForm.save()
                    clientForm.data = clientForm.data.copy()
                    clientForm.data["client-organisation"] = organisation.id  # Inject organisation in client form
                    clientForm.full_clean()
                    if clientForm.is_valid():
                        client = clientForm.save(commit=False)

        # If everything is allright, save the client and create response
        if client:
            # Add contact if defined
            if contact:
                client.contact = contact
            client.active = True
            client.save()
            result["success"] = True
            result["client_id"] = client.id
            result["client_name"] = unicode(client)

    else:
        # Unbound forms for GET requests
        clientForm = ClientForm(prefix="client")
        organisationForm = ClientOrganisationForm(prefix="organisation")
        companyForm = CompanyForm(prefix="company")
        contactForm = ContactForm(prefix="contact")

    # Render form
    result["form"] = template.render({ "clientForm": clientForm,
                                       "organisationForm": organisationForm,
                                       "companyForm": companyForm ,
                                       "contactForm": contactForm})

    return HttpResponse(json.dumps(result), content_type="application/json")
Beispiel #10
0
def client_organisation_company_popup(request):
    """Client, organisation and company creation in one popup"""
    template = get_template("crm/client-popup.html")
    result = {"success": False}
    if request.method == "POST":
        clientForm = ClientForm(request.POST, prefix="client")
        organisationForm = ClientOrganisationForm(request.POST, prefix="organisation")
        companyForm = CompanyForm(request.POST, prefix="company")
        contactForm = ContactForm(request.POST, prefix="contact")

        if contactForm.is_valid():
            contact = contactForm.save()
        else:
            contact = None

        if companyForm.is_valid():
            company = companyForm.save()
        else:
            company = None

        client = None
        if clientForm.is_valid():
            client = clientForm.save(commit=False)
        else:
            # clientForm may be invalid because client organisation is a new one
            if organisationForm.is_valid():
                organisation = organisationForm.save()
                clientForm.data = clientForm.data.copy()
                clientForm.data["client-organisation"] = organisation.id  # Inject organisation in client form
                clientForm.full_clean()
                if clientForm.is_valid():
                    client = clientForm.save(commit=False)
            elif company:
                # organisationForm may be invalid because company is a new one
                organisationForm.data = organisationForm.data.copy()
                organisationForm.data["organisation-company"] = company.id  # Inject company in organisation form
                organisationForm.full_clean()
                if organisationForm.is_valid():
                    organisation = organisationForm.save()
                    clientForm.data = clientForm.data.copy()
                    clientForm.data["client-organisation"] = organisation.id  # Inject organisation in client form
                    clientForm.full_clean()
                    if clientForm.is_valid():
                        client = clientForm.save(commit=False)

        # If everything is allright, save the client and create response
        if client:
            # Add contact if defined
            if contact:
                client.contact = contact
            client.active = True
            client.save()
            result["success"] = True
            result["client_id"] = client.id
            result["client_name"] = unicode(client)

    else:
        # Unbound forms for GET requests
        clientForm = ClientForm(prefix="client")
        organisationForm = ClientOrganisationForm(prefix="organisation")
        companyForm = CompanyForm(prefix="company")
        contactForm = ContactForm(prefix="contact")

    # Render form
    result["form"] = template.render({ "clientForm": clientForm,
                                       "organisationForm": organisationForm,
                                       "companyForm": companyForm ,
                                       "contactForm": contactForm})

    return HttpResponse(json.dumps(result), content_type="application/json")