Beispiel #1
0
    def save(self, commit=True):
        # self.instance is a Contact instance
        company_id = self.data['company_id']
        partner_url = self.cleaned_data.get('partnerurl', '')
        partner_source = self.cleaned_data.get('partnersource', '')

        status = Status.objects.create(approved_by=self.user)
        partner = Partner.objects.create(name=self.cleaned_data['partnername'],
                                         uri=partner_url,
                                         owner_id=company_id,
                                         data_source=partner_source,
                                         approval_status=status)
        log_change(partner,
                   self,
                   self.user,
                   partner,
                   partner.name,
                   action_type=ADDITION)

        create_contact = any(
            self.cleaned_data.get(field) for field in self.__CONTACT_FIELDS
            if self.cleaned_data.get(field))

        if create_contact:
            create_location = any(
                self.cleaned_data.get(field)
                for field in self.__LOCATION_FIELDS
                if self.cleaned_data.get(field))

            self.instance.partner = partner
            instance = super(NewPartnerForm, self).save(commit)
            partner.primary_contact = instance

            if create_location:
                location = Location.objects.create(
                    **{
                        field: self.cleaned_data[field]
                        for field in self.__LOCATION_FIELDS
                    })

                if location not in instance.locations.all():
                    instance.locations.add(location)

            # Tag creation
            tag_data = filter(bool,
                              self.cleaned_data['partner-tags'].split(','))
            tags = tag_get_or_create(company_id, tag_data)
            partner.tags = tags
            partner.save()
            self.instance.tags = tags
            log_change(instance,
                       self,
                       self.user,
                       partner,
                       instance.name,
                       action_type=ADDITION)

            return instance
        # No contact was created
        return None
Beispiel #2
0
    def save(self, commit=True):
        # self.instance is a Contact instance
        company_id = self.data['company_id']
        partner_url = self.data.get('partnerurl', '')
        partner_source = self.data.get('partnersource', '')

        status = Status.objects.create(approved_by=self.user)
        partner = Partner.objects.create(name=self.data['partnername'],
                                         uri=partner_url, owner_id=company_id,
                                         data_source=partner_source,
                                         approval_status=status)

        log_change(partner, self, self.user, partner, partner.name,
                   action_type=ADDITION)

        self.data = remove_partner_data(self.data,
                                        ['partnername', 'partnerurl',
                                         'csrfmiddlewaretoken', 'company',
                                         'company_id', 'ct'])

        create_contact = any(self.cleaned_data.get(field)
                             for field in self.__CONTACT_FIELDS 
                             if self.cleaned_data.get(field))

        if create_contact:
            create_location = any(self.cleaned_data.get(field)
                                  for field in self.__LOCATION_FIELDS
                                  if self.cleaned_data.get(field))

            self.instance.partner = partner
            instance = super(NewPartnerForm, self).save(commit)
            partner.primary_contact = instance
            
            if create_location:
                location = Location.objects.create(**{
                    field: self.cleaned_data[field] 
                    for field in self.__LOCATION_FIELDS})

                if location not in instance.locations.all():
                    instance.locations.add(location)

            # Tag creation
            tag_data = filter(bool,
                              self.cleaned_data['partner-tags'].split(','))
            tags = tag_get_or_create(company_id, tag_data)
            partner.tags = tags
            partner.save()
            self.instance.tags = tags
            log_change(instance, self, self.user, partner, instance.name,
                       action_type=ADDITION)

            return instance
        # No contact was created
        return None
Beispiel #3
0
def add_tags(request):
    company = get_company_or_404(request)
    data = request.GET.get('data').split(',')
    tags = tag_get_or_create(company.id, data)
    return HttpResponse(json.dumps('success'))
Beispiel #4
0
 def clean_tags(self):
     data = filter(bool, self.cleaned_data['tags'].split(','))
     tags = tag_get_or_create(self.data.get('company'), data)
     return tags
Beispiel #5
0
def add_tags(request):
    company = get_company_or_404(request)
    data = request.GET.get("data").split(",")
    tag_get_or_create(company.id, data)
    return HttpResponse(json.dumps("success"))
Beispiel #6
0
 def clean_tags(self):
     data = filter(bool, self.cleaned_data['tags'].split(','))
     tags = tag_get_or_create(self.data['company_id'], data)
     return tags