Exemple #1
0
    def save(self, *args, **kwargs):
        kwargs["commit"] = False
        user = super(AddUserForm, self).save(*args, **kwargs)
        try:
            self.cleaned_data["username"]
        except KeyError:
            if not self.instance.username:
                username = "******" % self.cleaned_data
                if not username.strip():
                    username = self.cleaned_data["email"].split("@")[0]
                qs = User.objects.exclude(id=self.instance.id)  # @UndefinedVariable PyDev limitation ("exclude")
                user.username = unique_slug(qs, "username", slugify(username))
        password = self.cleaned_data.get("password1")
        if password:
            user.set_password(password)
        user.save()

        # Save profile model.
        ProfileFieldsForm(self.data, self.files, instance=user.profile).save()
        settings.use_editable()
        #if (settings.ACCOUNTS_VERIFICATION_REQUIRED or
        #    settings.ACCOUNTS_APPROVAL_REQUIRED):
        #    user.is_active = False
        #    user.save()
        return user
Exemple #2
0
 def generate_unique_slug(self):
     """
     Create a unique slug by passing the result of get_slug() to
     utils.urls.unique_slug, which appends an index if necessary.
     """
     # For custom content types, use the ``Page`` instance for
     # slug lookup.
     concrete_model = base_concrete_model(Slugged, self)
     slug_qs = concrete_model.objects.exclude(id=self.id)
     return unique_slug(slug_qs, "slug", self.get_slug())
Exemple #3
0
 def generate_unique_slug(self):
     """
     Create a unique slug by passing the result of get_slug() to
     utils.urls.unique_slug, which appends an index if necessary.
     """
     # For custom content types, use the ``Page`` instance for
     # slug lookup.
     concrete_model = base_concrete_model(Slugged, self)
     slug_qs = concrete_model.objects.exclude(id=self.id)
     return unique_slug(slug_qs, "slug", self.get_slug())
Exemple #4
0
    def save(self, *args, **kwargs):
        """
        Create the new user. If no username is supplied (may be hidden
        via ``ACCOUNTS_PROFILE_FORM_EXCLUDE_FIELDS`` or
        ``ACCOUNTS_NO_USERNAME``), we generate a unique username, so
        that if profile pages are enabled, we still have something to
        use as the profile's slug.
        """

        kwargs["commit"] = False
        user = super(ProfileForm, self).save(*args, **kwargs)
        try:
            self.cleaned_data["username"]
        except KeyError:
            if not self.instance.username:
                try:
                    username = ("%(first_name)s %(last_name)s" %
                                self.cleaned_data).strip()
                except KeyError:
                    username = ""
                if not username:
                    username = self.cleaned_data["email"].split("@")[0]
                qs = User.objects.exclude(id=self.instance.id)
                user.username = unique_slug(qs, "username", slugify(username))
        password = self.cleaned_data.get("password1")
        if password:
            user.set_password(password)
        elif self._signup:
            try:
                user.set_unusable_password()
            except AttributeError:
                # This could happen if using a custom user model that
                # doesn't inherit from Django's AbstractBaseUser.
                pass
        user.save()

        try:
            profile = get_profile_for_user(user)
            profile_form = self.get_profile_fields_form()
            profile_form(self.data, self.files, instance=profile).save()
        except ProfileNotConfigured:
            pass

        if self._signup:
            settings.use_editable()
            if (settings.ACCOUNTS_VERIFICATION_REQUIRED or
                    settings.ACCOUNTS_APPROVAL_REQUIRED):
                user.is_active = False
                user.save()
            else:
                token = default_token_generator.make_token(user)
                user = authenticate(uidb36=int_to_base36(user.id),
                                    token=token,
                                    is_active=True)
        return user
Exemple #5
0
    def save(self, *args, **kwargs):
        """
        Create the new user. If no username is supplied (may be hidden
        via ``ACCOUNTS_PROFILE_FORM_EXCLUDE_FIELDS`` or
        ``ACCOUNTS_NO_USERNAME``), we generate a unique username, so
        that if profile pages are enabled, we still have something to
        use as the profile's slug.
        """

        kwargs["commit"] = False
        user = super(ProfileForm, self).save(*args, **kwargs)
        try:
            self.cleaned_data["username"]
        except KeyError:
            if not self.instance.username:
                try:
                    username = ("%(first_name)s %(last_name)s" %
                                self.cleaned_data).strip()
                except KeyError:
                    username = ""
                if not username:
                    username = self.cleaned_data["email"].split("@")[0]
                qs = User.objects.exclude(id=self.instance.id)
                user.username = unique_slug(qs, "username", slugify(username))
        password = self.cleaned_data.get("password1")
        if password:
            user.set_password(password)
        elif self._signup:
            try:
                user.set_unusable_password()
            except AttributeError:
                # This could happen if using a custom user model that
                # doesn't inherit from Django's AbstractBaseUser.
                pass
        user.save()

        try:
            profile = get_profile_for_user(user)
            profile_form = self.get_profile_fields_form()
            profile_form(self.data, self.files, instance=profile).save()
        except ProfileNotConfigured:
            pass

        if self._signup:
            settings.use_editable()
            if (settings.ACCOUNTS_VERIFICATION_REQUIRED
                    or settings.ACCOUNTS_APPROVAL_REQUIRED):
                user.is_active = False
                user.save()
            else:
                token = default_token_generator.make_token(user)
                user = authenticate(uidb36=int_to_base36(user.id),
                                    token=token,
                                    is_active=True)
        return user
Exemple #6
0
 def save(self, *args, **kwargs):
     """
     Create a unique slug by appending an index.
     """
     if not self.slug:
         self.slug = self.get_slug()
     # For custom content types, use the ``Page`` instance for
     # slug lookup.
     concrete_model = base_concrete_model(Slugged, self)
     slug_qs = concrete_model.objects.exclude(id=self.id)
     self.slug = unique_slug(slug_qs, "slug", self.slug)
     super(Slugged, self).save(*args, **kwargs)
Exemple #7
0
 def save(self, *args, **kwargs):
     """
     Create a unique slug by appending an index.
     """
     if not self.slug:
         self.slug = self.get_slug()
     # For custom content types, use the ``Page`` instance for
     # slug lookup.
     concrete_model = base_concrete_model(Slugged, self)
     slug_qs = concrete_model.objects.exclude(id=self.id)
     self.slug = unique_slug(slug_qs, "slug", self.slug)
     super(Slugged, self).save(*args, **kwargs)
Exemple #8
0
    def save(self, *args, **kwargs):
        """
        Create the new user. If no username is supplied (may be hidden
        via ``ACCOUNTS_PROFILE_FORM_EXCLUDE_FIELDS`` or
        ``ACCOUNTS_NO_USERNAME``), we generate a unique username, so
        that if profile pages are enabled, we still have something to
        use as the profile's slug.
        """

        kwargs["commit"] = False
        user = super(ProfileForm, self).save(*args, **kwargs)
        try:
            self.cleaned_data["username"]
        except KeyError:
            if not self.instance.username:
                try:
                    username = ("%(first_name)s %(last_name)s" %
                                self.cleaned_data).strip()
                except KeyError:
                    username = ""
                if not username:
                    username = self.cleaned_data["email"].split("@")[0]
                qs = User.objects.exclude(id=self.instance.id)
                user.username = unique_slug(qs, "username", slugify(username))
        password = self.cleaned_data.get("password1")
        if password:
            user.set_password(password)
        elif self._signup:
            user.set_unusable_password()
        user.save()

        # save profile
        profile, created = Profile.objects.get_or_create(user=user)
        profile_form = self.get_profile_fields_form()
        profile_form(self.data, self.files, instance=profile).save()

        # save lol account
        lol_account, created = LolAccount.objects.get_or_create(user=user)
        lolaccount_form = LolAccountFieldsForm
        lolaccount_form(self.data, self.files, instance=lol_account).save()

        if self._signup:
            if (settings.ACCOUNTS_VERIFICATION_REQUIRED or
                    settings.ACCOUNTS_APPROVAL_REQUIRED):
                user.is_active = False
                user.save()
            else:
                token = default_token_generator.make_token(user)
                user = authenticate(uidb36=int_to_base36(user.id),
                                    token=token,
                                    is_active=True)
        return user
Exemple #9
0
    def save(self, *args, **kwargs):
        """
        Create the new user. If no username is supplied (may be hidden
        via ``ACCOUNTS_PROFILE_FORM_EXCLUDE_FIELDS`` or
        ``ACCOUNTS_NO_USERNAME``), we generate a unique username, so
        that if profile pages are enabled, we still have something to
        use as the profile's slug.
        """

        kwargs["commit"] = False
        user = super(ProfileForm, self).save(*args, **kwargs)
        try:
            self.cleaned_data["username"]
        except KeyError:
            if not self.instance.username:
                username = "******" % self.cleaned_data
                if not username.strip():
                    username = self.cleaned_data["email"].split("@")[0]
                qs = User.objects.exclude(id=self.instance.id)
                user.username = unique_slug(qs, "username", slugify(username))
        password = self.cleaned_data.get("password1")
        if password:
            user.set_password(password)
        user.save()

        # Save profile model.
        if self._has_profile:
            try:
                profile = user.get_profile()
            except Profile.DoesNotExist:
                profile = Profile(user=user)
            profile_fields_form = self.get_profile_fields_form()
            profile_fields_form(self.data, self.files, instance=profile).save()

        if self._signup:
            settings.use_editable()
            if (settings.ACCOUNTS_VERIFICATION_REQUIRED
                    or settings.ACCOUNTS_APPROVAL_REQUIRED):
                user.is_active = False
                user.save()
            else:
                user = authenticate(username=user.username,
                                    password=password,
                                    is_active=True)
        return user
Exemple #10
0
    def save(self, *args, **kwargs):
        """
        Create the new user. If no username is supplied (may be hidden
        via ``ACCOUNTS_PROFILE_FORM_EXCLUDE_FIELDS`` or
        ``ACCOUNTS_NO_USERNAME``), we generate a unique username, so
        that if profile pages are enabled, we still have something to
        use as the profile's slug.
        """

        kwargs["commit"] = False
        user = super(ProfileForm, self).save(*args, **kwargs)
        try:
            self.cleaned_data["username"]
        except KeyError:
            if not self.instance.username:
                username = "******" % self.cleaned_data
                if not username.strip():
                    username = self.cleaned_data["email"].split("@")[0]
                qs = User.objects.exclude(id=self.instance.id)
                user.username = unique_slug(qs, "username", slugify(username))
        password = self.cleaned_data.get("password1")
        if password:
            user.set_password(password)
        user.save()

        # Save profile model.
        if self._has_profile:
            try:
                profile = user.get_profile()
            except Profile.DoesNotExist:
                profile = Profile(user=user)
            profile_fields_form = self.get_profile_fields_form()
            profile_fields_form(self.data, self.files, instance=profile).save()

        if self._signup:
            settings.use_editable()
            if (settings.ACCOUNTS_VERIFICATION_REQUIRED or
                settings.ACCOUNTS_APPROVAL_REQUIRED):
                user.is_active = False
                user.save()
            else:
                user = authenticate(username=user.username,
                                    password=password, is_active=True)
        return user
Exemple #11
0
    def save(self, commit=True):
        user = super(UserCreationForm, self).save(commit=False)
        user.set_password(str(uuid4())[:10])
        user.email = self.cleaned_data['email']
        #user.clean_email()
        user.first_name = self.cleaned_data['first_name']
        user.last_name = self.cleaned_data['last_name']

        email_slug = self.cleaned_data["email"].split('@')
        username = slugify(email_slug[0] + '-' + email_slug[1])[:16]
        qs = User.objects.exclude(id=self.instance.id)
        user.username = unique_slug(qs, "username", slugify(username))

        user.save()
        profile = get_profile_for_user(user)
        profile.membertype = self.cleaned_data['membertype']
        profile.organisation = self.cleaned_data['organisation']
        profile.save()
        # if commit:
        #     user.save()
        return user
Exemple #12
0
	def handle(self, *args, **options):
		try:
			with open('students2.json') as data_file:
				data = json.load(data_file)
				member_group = EmailGroup.objects.get_or_create(title='Standard Members')[0]
				student_group = EmailGroup.objects.get_or_create(title='Students temporary')[0]
				marketing_group = EmailGroup.objects.get_or_create(title='Marketing')[0]
				for row in data:
					print(row['name'])
					user, created = User.objects.get_or_create(email=row['email'])
					if created:
						email_slug = row["email"].split('@')
						username = slugify(email_slug[0] + '-' + email_slug[1])[:16]
						qs = User.objects.exclude(id=user.id)
						user.username = unique_slug(qs, "username", slugify(username))
						split_name = row['name'].split(' ',1)
						print(split_name)
						user.first_name = split_name[0]
						user.last_name = split_name[1]
						#profile = get_profile_for_user(user)
						user.profile.membertype = 'SM'
						user.profile.paid = True
						user.profile.paidfrom = timezone.now()
						user.profile.expires = timezone.now() + timezone.timedelta(days=366)
						user.profile.contacttype.add(member_group,student_group,marketing_group)
						user.profile.save()
						user.save()
					else:
						print('already in ', user)

					

					

					
				
		
		
		except Exception as e:
			print(e)
Exemple #13
0
 def save(self):
     slug = "seminar/{}".format(slugify(self.last_name()))
     slug_qs = Seminar.objects.exclude(id=self.id)
     self.slug = unique_slug(slug_qs, "slug", slug)
     super(Seminar, self).save()
Exemple #14
0
    def save(self, *args, **kwargs):
        """
        Create the new user. If no username is supplied (may be hidden
        via ``ACCOUNTS_PROFILE_FORM_EXCLUDE_FIELDS`` or
        ``ACCOUNTS_NO_USERNAME``), we generate a unique username, so
        that if profile pages are enabled, we still have something to
        use as the profile's slug.
        """
        kwargs["commit"] = False
        user = super(ModProfileForm, self).save(*args, **kwargs)
        try:
            self.cleaned_data["username"]
        except KeyError:
            if not self.instance.username:
                try:
                    email_slug = self.cleaned_data["email"].split('@')
                    username = slugify(email_slug[0] + '-' + email_slug[1])[:16]
                    #username = self.cleaned_data["email"].split("@")[0]
                except KeyError:
                    username = ""
                if not username:
                    #username = self.cleaned_data["email"].split("@")[0]
                    email_slug = self.cleaned_data["email"].split('@')
                    username = slugify(email_slug[0] + '-' + email_slug[1])[:16]
                qs = User.objects.exclude(id=self.instance.id)
                user.username = unique_slug(qs, "username", slugify(username))
        password = self.cleaned_data.get("password1")
        if password:
            user.set_password(password)
        elif self._signup:
            try:
                user.set_unusable_password()
            except AttributeError:
                # This could happen if using a custom user model that
                # doesn't inherit from Django's AbstractBaseUser.
                pass
        user.save()


        try:
            profile = get_profile_for_user(user)
            profile_form = self.get_profile_fields_form()
            profile_form(self.data, self.files, instance=profile).save()
        except ProfileNotConfigured:
            pass

        if self._signup:
            ## create SubscriberEmailAddress object for the group "members"
            ## so we can keep email address on record in future
            # g = EmailGroup.objects.get_or_create(title="Sign Ups")[0]
            # sub = SubscriberEmailAddress(sub_email=g,
            #                              email=self.cleaned_data["email"],
            #                              firstname=self.cleaned_data["first_name"],
            #                              lastname=self.cleaned_data["last_name"],
            #                              source='Website'
            #                              )
            # sub.save()
            
            profile.membertype = 'SU'
            profile.save()
            
            g = EmailGroup.objects.get_or_create(title='Sign Ups')[0]
            profile.contacttype.add(g)
            ###############################################
            if (settings.ACCOUNTS_VERIFICATION_REQUIRED or
                    settings.ACCOUNTS_APPROVAL_REQUIRED):
                user.is_active = False
                user.save()
            else:
                token = default_token_generator.make_token(user)
                user = authenticate(uidb36=int_to_base36(user.id),
                                    token=token,
                                    is_active=True)
        # else:
        #     if not user.is_staff:
        #         sub = SubscriberEmailAddress.objects.get(email=user.email)
        #         if self.cleaned_data["organisation"]:
        #             sub.organisation = self.cleaned_data["organisation"]
        #         if self.cleaned_data["nationality"]:
        #             sub.country = self.cleaned_data["nationality"]
        #         sub.save()

        return user