def form_valid(self, form): company = form["contact"].save(commit=False) is_new = not bool(company.pk) company.save() user = self.request.user person = get_person_contact(user) company.members.add(person) billing_address = form["billing"].save() shipping_address = form["shipping"].save() if billing_address.pk != company.default_billing_address_id: # Identity changed due to immutability company.default_billing_address = billing_address if shipping_address.pk != company.default_shipping_address_id: # Identity changed due to immutability company.default_shipping_address = shipping_address message = _("Company information saved successfully.") # If company registration requires activation, # company will be created as inactive. if is_new and company_registration_requires_approval(self.request.shop): company.is_active = False message = _("Company information saved successfully. " "Please follow the instructions sent to your email address.") company.save() if is_new: user_registered.send(sender=self.__class__, user=self.request.user, request=self.request) CompanyAccountCreated(contact=company, customer_email=company.email).run(shop=self.request.shop) messages.success(self.request, message) return redirect("shuup:company_edit")
def save(self): company = self.forms["contact"].save(commit=False) is_new = not bool(company.pk) company.save() user = self.request.user # TODO: Should this check if contact will be created? Or should we expect create always? person = get_person_contact(user) person.add_to_shop(self.request.shop) company.members.add(person) company.add_to_shop(self.request.shop) if "billing" in self.forms: billing_address = self.forms["billing"].save() if billing_address.pk != company.default_billing_address_id: # Identity changed due to immutability company.default_billing_address = billing_address if "shipping" in self.forms: shipping_address = self.forms["shipping"].save() if shipping_address.pk != company.default_shipping_address_id: # Identity changed due to immutability company.default_shipping_address = shipping_address message = _("Company information saved successfully.") # If company registration requires activation, # company will be created as inactive. if is_new and company_registration_requires_approval( self.request.shop): company.is_active = False message = _( "Company information saved successfully. " "Please follow the instructions sent to your email address.") messages.success(self.request, message) company.save() if is_new: user_registered.send(sender=self.__class__, user=self.request.user, request=self.request) CompanyAccountCreated( contact=company, customer_email=company.email).run(shop=self.request.shop) return company
def save(self, commit=True): company = self.forms['company'].save(commit=False) billing_address = self.forms['billing'].save(commit=False) person = self.forms['contact_person'].save(commit=False) user = self.forms['user_account'].save(commit=False) company.default_billing_address = billing_address company.default_shipping_address = billing_address for field in ['name', 'name_ext', 'email', 'phone']: setattr(billing_address, field, getattr(company, field)) person.user = user user.first_name = person.first_name user.last_name = person.last_name user.email = person.email # If company registration requires approval, # company and person contacts will be created as inactive if company_registration_requires_approval(self.request.shop): company.is_active = False person.is_active = False if commit: user.save() person.user = user person.save() person.shops.add(self.request.shop) billing_address.save() company.default_billing_address = billing_address company.default_shipping_address = billing_address company.save() company.shops.add(self.request.shop) company.members.add(person) company_registration_save.send(sender=type(self), request=self.request, user=user, company=company) return user
def save(self, commit=True): company = self.forms['company'].save(commit=False) billing_address = self.forms['billing'].save(commit=False) person = self.forms['contact_person'].save(commit=False) user = self.forms['user_account'].save(commit=False) company.default_billing_address = billing_address company.default_shipping_address = billing_address for field in ['name', 'name_ext', 'email', 'phone']: setattr(billing_address, field, getattr(company, field)) person.user = user user.first_name = person.first_name user.last_name = person.last_name user.email = person.email # If company registration requires approval, # company and person contacts will be created as inactive if company_registration_requires_approval(self.request.shop): company.is_active = False person.is_active = False if commit: user.save() person.user = user person.save() person.shops.add(self.request.shop) billing_address.save() company.default_billing_address = billing_address company.default_shipping_address = billing_address company.save() company.shops.add(self.request.shop) company.members.add(person) if has_installed("shuup.gdpr"): from shuup.gdpr.utils import create_user_consent_for_all_documents create_user_consent_for_all_documents(self.request.shop, user) return user
def save(self, commit=True): with atomic(): company = self.forms["company"].save(commit=False) billing_address = self.forms["billing"].save(commit=False) person = self.forms["contact_person"].save(commit=False) user = self.forms["user_account"].save(commit=False) company.default_billing_address = billing_address company.default_shipping_address = billing_address for field in ["name", "name_ext", "email", "phone"]: setattr(billing_address, field, getattr(company, field)) person.user = user user.first_name = person.first_name user.last_name = person.last_name user.email = person.email # If company registration requires approval, # company and person contacts will be created as inactive if company_registration_requires_approval(self.request.shop): company.is_active = False person.is_active = False user.save() person.user = user person.save() person.shops.add(self.request.shop) billing_address.save() company.default_billing_address = billing_address company.default_shipping_address = billing_address company.save() company.add_to_shop(self.request.shop) company.members.add(person) company_registration_save.send(sender=type(self), request=self.request, user=user, company=company) return user
def save(self, commit=True): company = self.forms['company'].save(commit=False) billing_address = self.forms['billing'].save(commit=False) person = self.forms['contact_person'].save(commit=False) user = self.forms['user_account'].save(commit=False) company.default_billing_address = billing_address company.default_shipping_address = billing_address for field in ['name', 'name_ext', 'email', 'phone']: setattr(billing_address, field, getattr(company, field)) person.user = user user.first_name = person.first_name user.last_name = person.last_name user.email = person.email # If company registration requires approval, # company and person contacts will be created as inactive if company_registration_requires_approval(self.request.shop): company.is_active = False person.is_active = False if commit: user.save() person.user = user person.save() person.shops.add(self.request.shop) billing_address.save() company.default_billing_address = billing_address company.default_shipping_address = billing_address company.save() company.add_to_shop(self.request.shop) company.members.add(person) company_registration_save.send(sender=type(self), request=self.request, user=user, company=company) return user
def save(self): company = self.forms["contact"].save(commit=False) is_new = not bool(company.pk) company.save() user = self.request.user # TODO: Should this check if contact will be created? Or should we expect create always? person = get_person_contact(user) person.add_to_shop(self.request.shop) company.members.add(person) company.add_to_shop(self.request.shop) if "billing" in self.forms: billing_address = self.forms["billing"].save() if billing_address.pk != company.default_billing_address_id: # Identity changed due to immutability company.default_billing_address = billing_address if "shipping" in self.forms: shipping_address = self.forms["shipping"].save() if shipping_address.pk != company.default_shipping_address_id: # Identity changed due to immutability company.default_shipping_address = shipping_address message = _("Company information saved successfully.") # If company registration requires activation, # company will be created as inactive. if is_new and company_registration_requires_approval(self.request.shop): company.is_active = False message = _("Company information saved successfully. " "Please follow the instructions sent to your email address.") messages.success(self.request, message) company.save() if is_new: user_registered.send(sender=self.__class__, user=self.request.user, request=self.request) CompanyAccountCreated(contact=company, customer_email=company.email).run(shop=self.request.shop) return company