def create_user( username = None, email = None, notification_schedule = None, date_joined = None, status = 'a', reputation = 1 ): """Creates a user and sets default update subscription settings""" user = models.User.objects.create_user(username, email) user.reputation = reputation if date_joined is not None: user.date_joined = date_joined user.save() user.set_status(status) if notification_schedule == None: notification_schedule = models.EmailFeedSetting.NO_EMAIL_SCHEDULE for feed_type, frequency in notification_schedule.items(): feed = models.EmailFeedSetting( feed_type = feed_type, frequency = frequency, subscriber = user ) feed.save() return user
def create_user(username=None, email=None, notification_schedule=None, date_joined=None, status=None, reputation=1): """Creates a user and sets default update subscription settings ``notification_schedule`` is a dictionary with keys the same as in keys in :attr:`~askbot.models.EmailFeedSetting.FEED_TYPES`: * 'q_ask' - questions that user asks * 'q_all' - enture forum, tag filtered * 'q_ans' - questions that user answers * 'q_sel' - questions that user decides to follow * 'm_and_c' - comments and mentions of user anywhere and values as keys in :attr:`~askbot.models.EmailFeedSetting.FEED_TYPES`: * 'i' - instantly * 'd' - daily * 'w' - weekly * 'n' - never """ user = models.User.objects.create_user(username, email) user.reputation = reputation if date_joined is not None: user.date_joined = date_joined user.save() if notification_schedule == None: notification_schedule = models.EmailFeedSetting.NO_EMAIL_SCHEDULE #a hack, we need to delete these, that will be created automatically #because just below we will be replacing them with the new values user.notification_subscriptions.all().delete() for feed_type, frequency in notification_schedule.items(): feed = models.EmailFeedSetting( feed_type = feed_type, frequency = frequency, subscriber = user ) feed.save() signals.user_registered.send(None, user=user) if status: user.set_status(status) return user
def create_user( username = None, email = None, notification_schedule = None, date_joined = None, status = 'a', reputation = 1 ): """Creates a user and sets default update subscription settings ``notification_schedule`` is a dictionary with keys the same as in keys in :attr:`~askbot.models.EmailFeedSetting.FEED_TYPES`: * 'q_ask' - questions that user asks * 'q_all' - enture forum, tag filtered * 'q_ans' - questions that user answers * 'q_sel' - questions that user decides to follow * 'm_and_c' - comments and mentions of user anywhere and values as keys in :attr:`~askbot.models.EmailFeedSetting.FEED_TYPES`: * 'i' - instantly * 'd' - daily * 'w' - weekly * 'n' - never """ user = models.User.objects.create_user(username, email) user.reputation = reputation if date_joined is not None: user.date_joined = date_joined user.save() user.set_status(status) if notification_schedule == None: notification_schedule = models.EmailFeedSetting.NO_EMAIL_SCHEDULE for feed_type, frequency in notification_schedule.items(): feed = models.EmailFeedSetting( feed_type = feed_type, frequency = frequency, subscriber = user ) feed.save() return user