def create_task(self, owner=None, project=None, title='', description='', status='open'): """ Create a 'default' task with some standard values but allow for overrides. The returned object is saved to the database. """ if not owner: # Create a new user with a random username owner = self.create_user() if not project: # Create a new project owner = self.create_project() if not title: title = generate_random_slug() if not description: title = generate_random_slug() task = Task( owner=owner, title=title, status=status, project=project ) task.save() return task
def create_blog_post(self, title='We make it work', slug=None, language='nl', user=None, status='published', published_date=now()): post = BlogPostProxy() if not slug: slug = generate_random_slug() # Ensure generated slug is unique. while BlogPostProxy.objects.filter(slug=slug).exists(): slug = generate_random_slug() if not user: user = self.create_user() user.save() post.title = title post.status = status post.published_date = published_date post.language = language post.title = title post.slug = slug post.author = user post.save() # The contents needs to be created separately. ph = Placeholder.objects.create_for_object(post, 'blog_contents') ph.save() return post
def create_project( self, organization=None, owner=None, title="", phase="fund", slug="", latitude=None, longitude=None, money_asked=500000, ): """ Create a 'default' project with some standard values so it can be saved to the database, but allow for overriding. The returned object is saved to the database. """ if not latitude: latitude = Decimal("-11.2352") if not longitude: longitude = Decimal("-84.123") if not organization: organization = self.create_organization() organization.save() if not owner: # Create a new user with a random username owner = self.create_user() if not slug: slug = generate_random_slug() while Project.objects.filter(slug=slug).exists(): slug = generate_random_slug() project = Project( organization=organization, owner=owner, title=title, slug=slug, phase=phase, latitude=latitude, longitude=longitude, money_asked=money_asked, ) project.save() return project
def create_organization(self, slug=None): """ Create a 'default' organization with some standard values so it can be saved to the database, but allow for overriding. The returned object is not yet saved to the database. """ if not slug: slug = generate_random_slug() while Organization.objects.filter(slug=slug).exists(): slug = generate_random_slug() organization = Organization(slug=slug) organization.save() return organization
def create_project(self, organization=None, owner=None, title=None, phase='pitch', slug=None, money_asked=0): """ Create a 'default' project with some standard values so it can be saved to the database, but allow for overriding. The returned object is saved to the database. """ if not owner: # Create a new user with a random username owner = self.create_user() if not slug: slug = generate_random_slug() while Project.objects.filter(slug=slug).exists(): slug = generate_random_slug() if not title: title = generate_random_slug() while Project.objects.filter(title=title).exists(): title = generate_random_slug() project = Project(owner=owner, title=title, slug=slug, phase=phase) project.save() project.projectpitch.title = title project.projectpitch.status = ProjectPitch.PitchStatuses.new project.projectpitch.save() if money_asked: project.projectplan = ProjectPlan(title=project.title, project=project) project.projectplan.status = 'approved' # add an organization so we can create pay-outs project.projectplan.organization = self.create_organization() project.projectplan.save() project.projectcampaign = ProjectCampaign(status='running', project=project, money_asked=money_asked) project.projectcampaign.save() project.phase = ProjectPhases.campaign project.save() return project