def save(self, email_dict=None, request=None): email_enabled = getattr(settings, 'CAKTUS_EMAIL_ENABLED', True) if self.instance.id: user = super(PersonForm, self).save() created = False else: try: user = User.objects.get(email=self.cleaned_data['email']) created = False except User.DoesNotExist: user = super(PersonForm, self).save(commit=False) created = True if not email_enabled: user.set_password(settings.CAKTUS_DEBUG_PASSWORD) username_base = "%s%s" % (user.first_name, user.last_name) if username_base == '': username_base = user.email user.username = slugify_uniquely( username_base[:20], queryset=User.objects.all(), field='username', ) user.save() self.save_m2m() if email_dict and email_enabled: if 'extra_context' not in email_dict: email_dict['extra_context'] = {} email_dict['extra_context']['user_is_new'] = created if created: password = User.objects.make_random_password(length=8) user.set_password(password) user.save() email_dict['extra_context']['password'] = password send_user_email(request, user, email_dict) return user, created
def handle_noargs(self, **options): for contact in crm.Contact.objects.all(): if contact.type == 'business': contact.slug = slugify_uniquely( contact.name, crm.Contact.objects.exclude(pk=contact.pk), ) contact.sort_name = slugify(contact.name) elif contact.type == 'individual': name = '%s %s' % (contact.first_name, contact.last_name) contact.slug = slugify_uniquely( name, crm.Contact.objects.exclude(pk=contact.pk), ) contact.sort_name = slugify( '%s %s' % (contact.last_name, contact.first_name), ) contact.save()
def save(self, commit=True): instance = super(BusinessForm, self).save(commit=False) qs = crm.Contact.objects.all() if instance.pk: qs = qs.exclude(pk=instance.pk) instance.slug = slugify_uniquely(instance.name, qs) instance.sort_name = slugify(instance.name) instance.type = 'business' if commit: instance.save() self.save_m2m() return instance
def save(self, commit=True): instance = super(ProfileForm, self).save(commit=False) qs = crm.Contact.objects.all() if instance.pk: qs = qs.exclude(pk=instance.pk) instance.slug = slugify_uniquely(instance.get_full_name(), qs) if instance.user: instance.user.first_name = instance.first_name instance.user.last_name = instance.last_name instance.user.email = instance.email instance.user.save() if instance.description is None: instance.description = '' instance.type = 'individual' sort_name = "%s %s" % (instance.last_name, instance.first_name) instance.sort_name = slugify(sort_name) if commit: instance.save() self.save_m2m() return instance