def create_profile(sender, instance, created, raw, using, **kwargs): if created: # Set the username to a simpler form. username = f"{instance.first_name}-{instance.pk}" if instance.first_name else f'user-{instance.pk}' if User.objects.filter(username=username).exclude( id=instance.pk).exists(): username = util.get_uuid(6) User.objects.filter(pk=instance.pk).update(username=username) # Make sure staff users are also moderators. role = Profile.MANAGER if instance.is_staff else Profile.READER Profile.objects.using(using).create(user=instance, uid=username, name=instance.first_name, role=role) tasks.create_messages(rec_list=[instance], template="messages/welcome.md")
def create_profile(sender, instance, created, raw, using, **kwargs): if created: # Set the username to a simpler form. username = f"{instance.first_name}-{instance.pk}" if instance.first_name else f'user-{instance.pk}' username = slugify(username) if User.objects.filter(username=username).exclude(id=instance.pk).exists(): username = util.get_uuid(6) User.objects.filter(pk=instance.pk).update(username=username) # Make sure staff users are also moderators. role = Profile.MANAGER if (instance.is_staff or instance.is_superuser) else Profile.READER Profile.objects.using(using).create(user=instance, uid=username, name=instance.first_name, role=role) user_ids = [instance.pk] tasks.create_messages(user_ids=user_ids, template="messages/welcome.md") # Recompute watched tags instance.profile.add_watched()
def handle(self, *args, **options): # Get the filename. fname = options['fname'] if not os.path.isfile(fname): logger.error(f'Not a valid filename: {fname}') return stream = open(fname, 'rU') for row in csv.DictReader(stream): name = row.get("Name", '') email = row.get("Email", '') handler = row.get("Handler", '') # All fields must be filled in. if not (name and email): logger.error(f"Invalid row: {row}") continue # Fix capitalization. name = name.strip() email = email.strip().lower() handler = handler.strip() if User.objects.filter(email=email).exists(): logger.info( f"Skipped creation. User with email={email} already exists." ) else: username = handler or util.get_uuid(16) user = User.objects.create(email=email, username=username, first_name=name) user.set_password(settings.SECRET_KEY) user.save() logger.info(f"Created user name={name} email={email}")
def create_profile(sender, instance, created, raw, using, **kwargs): if created: # Set the username a simpler username. username = f"{instance.pk}" # Fix uid clashes. if Profile.objects.filter(uid=username): username = util.get_uuid(8) logger.info( f"username clash for pk={instance.pk} new uid={username}") # Make sure staff users are also moderators. role = (Profile.MANAGER if (instance.is_staff or instance.is_superuser) else Profile.READER) # Create a user profile associate with the user. Profile.objects.create(user=instance, uid=username, name=instance.first_name, role=role) try: # Minimize failures on signup. # Send the welcome message. user_ids = [instance.pk] tasks.create_messages(user_ids=user_ids, template="messages/welcome.md") except Exception as exc: logger.error(f"{exc}") # Recompute watched tags try: instance.profile.add_watched() except Exception as exc: logger.error(f"recomputing watched tags={exc}")
def save(self, *args, **kwargs): self.uid = self.uid or util.get_uuid(10) self.sent_date = self.sent_date or util.now() super(Message, self).save(**kwargs)
def create_uuid(sender, instance, *args, **kwargs): # Generate a unique username if it does not exist. instance.username = instance.username or util.get_uuid(8)
def create_uuid(sender, instance, *args, **kwargs): instance.username = instance.username or util.get_uuid(8)
def save(self, *args, **kwargs): self.html = self.html or mistune.markdown(self.body) self.uid = self.uid or util.get_uuid(10) self.sent_date = self.sent_date or util.now() super(Message, self).save(**kwargs)