def new_node(category, title, user, description='', parent=None, campaign=None): """Create a new project or component. :param str category: Node category :param str title: Node title :param User user: User object :param str description: Node description :param Node project: Optional parent object :return Node: Created node """ # We use apps.get_model rather than import .model.Node # because we want the concrete Node class, not AbstractNode Node = apps.get_model('osf.Node') category = category title = strip_html(title.strip()) if description: description = strip_html(description.strip()) node = Node( title=title, category=category, creator=user, description=description, parent=parent ) node.save() if campaign: from framework.auth.campaigns import system_tag_for_campaign node.add_system_tag(system_tag_for_campaign(campaign)) return node
def create_unconfirmed(cls, username, password, fullname, do_confirm=True, campaign=None): """Create a new user who has begun registration but needs to verify their primary email address (username). """ user = cls.create(username, password, fullname) user.add_unconfirmed_email(username) user.is_registered = False if campaign: # needed to prevent cirular import from framework.auth.campaigns import system_tag_for_campaign # skipci user.system_tags.append(system_tag_for_campaign(campaign)) return user
def create_unconfirmed(cls, username, password, fullname, external_identity=None, do_confirm=True, campaign=None): """Create a new user who has begun registration but needs to verify their primary email address (username). """ user = cls.create(username, password, fullname) user.add_unconfirmed_email(username, external_identity=external_identity) user.is_registered = False if external_identity: user.external_identity.update(external_identity) if campaign: # needed to prevent cirular import from framework.auth.campaigns import system_tag_for_campaign # skipci # User needs to be saved before adding system tags (due to m2m relationship) user.save() user.add_system_tag(system_tag_for_campaign(campaign)) return user
def test_system_tag_for_campaign(self): for campaign in self.campaign_lists: tag = campaigns.system_tag_for_campaign(campaign) assert_true(tag is not None) tag = campaigns.system_tag_for_campaign(self.invalid_campaign) assert_true(tag is None)