Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def edit(request,company_uuid,contact_uuid,address_uuid):
- mcompany = get_object_or_404(models.Company, uuid = company_uuid)
- extra_questions, extra_ids = get_questions(request, 2)
- if request.method == 'POST': # If the form has been submitted...
- form = forms.EditCompanyForm(request.POST,instance=mcompany, extra=extra_questions, extra_ids=extra_ids)
- if form.is_valid():
- fModel = form.save(commit = False)
- for (question, answer) in form.extra_answers():
- save_answer(request, question, answer, mcompany.uuid, 2)
- form.save()
- url = reverse('contacts_details',kwargs={'company_uuid':mcompany.uuid,
- 'address_uuid':address_uuid,
- 'contact_uuid':contact_uuid})
- return HttpResponseRedirect(url)
- else:
- form = forms.EditCompanyForm(request.POST,instance=mcompany, extra=extra_questions, extra_ids=extra_ids)
- return share.output_page(request,'contacts/edit.html',{'form': form,
- 'company_uuid':mcompany.uuid,
- 'address_uuid':address_uuid,
- 'contact_uuid':contact_uuid})
- class EditCompanyForm(jsforms.JMSModelForm):
- """
- The Company form with the contacts fields included
- """
- name = forms.CharField(label = _('Company Name'),widget = forms.TextInput(attrs={'class':'large-input-box'}))
- discount=forms.FloatField(widget = jsforms.StandardUnit("PC"),required=False)
- allow_download = forms.BooleanField(required=False,label=_('Allow download'))
- def __init__(self, *args, **kwargs):
- extra = kwargs.pop('extra')
- extra_id = kwargs.pop('extra_ids')
- super(EditCompanyForm, self).__init__(*args, **kwargs)
- for i, question in enumerate(extra):
- settings = ExtraFieldSetup.objects.get(uuid=extra_id[i])
- if settings.type == 2:
- list = []
- list_partial = str(settings.extra).split(':')
- for choice in list_partial:
- x = choice, choice
- list.append(x)
- self.fields['custom_%s' % i] = forms.ChoiceField(choices=list, label=question, required=False)
- else:
- self.fields['custom_%s' % i] = forms.CharField(label=question, required=False)
- def extra_answers(self):
- for name, value in self.cleaned_data.items():
- if name.startswith('custom_'):
- yield (self.fields[name].label, value)
- class Meta:
- model = models.Company
- exclude = ('company', 'otherdetails', 'jms_code', 'logo', 'hidden', 'user')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement