def fork(self, *args, **kwargs): template = self.instance.template template_items = copy.copy(template.items.all()) # batch_files = self.instance.batch_files.all() project = self.instance project.name += ' (copy)' project.status = models.Project.STATUS_DRAFT project.is_prototype = False project.parent_id = self.instance.id template.pk = None template.save() project.template = template review_project = models.Project.objects.filter(parent_id=self.instance.group_id, is_review=True).first() for template_item in template_items: template_item.pk = None template_item.template = template template_item.save() project.id = None project.save() project.group_id = project.id project.save() template = { "name": 't_' + generate_random_id(), "items": [] } self.create_review(project=project, template_data=template, parent_review_project=review_project) return project
def create(self, with_defaults=True, **kwargs): template_initial = self.validated_data.pop('template') if 'template' in self.validated_data else None template_items = template_initial['items'] if template_initial else [] template = { "name": 't_' + generate_random_id(), "items": template_items } template_serializer = TemplateSerializer(data=template) self.validated_data.pop('post_mturk') project = models.Project.objects.create(owner=kwargs['owner'], post_mturk=True, amount_due=0, **self.validated_data) if template_serializer.is_valid(): project_template = template_serializer.create(with_defaults=with_defaults, is_review=False, owner=kwargs['owner']) project.template = project_template else: raise ValidationError(template_serializer.errors) project.group_id = project.id if not with_defaults: project.status = models.Project.STATUS_IN_PROGRESS project.published_at = timezone.now() # self.instance = project # if not project.is_paid: # self.pay(self.instance.price * self.instance.repetition) # self.create_task(project.id) project.save() self.create_review(project=project, template_data=template) models.BoomerangLog.objects.create(object_id=project.group_id, min_rating=project.min_rating, rating_updated_at=project.rating_updated_at, reason='DEFAULT') return project
def create_mturk_user(apps, schema_editor): user = apps.get_model("auth", "User") profile = apps.get_model("crowdsourcing", "UserProfile") worker = apps.get_model("crowdsourcing", "Worker") mturk_user = user.objects.create(username='******', email='*****@*****.**', password=make_password(generate_random_id()), is_active=False) mturk_profile = profile.objects.get_or_create(user=mturk_user) mturk_worker = worker.objects.get_or_create(profile=mturk_profile[0], alias='mturk')
def create(self, **kwargs): project = models.Project.objects.create(deleted=False, owner=kwargs["owner"].requester) template = {"name": "t_" + generate_random_id()} template_serializer = TemplateSerializer(data=template) template = None if template_serializer.is_valid(): template = template_serializer.create(with_default=True, owner=kwargs["owner"]) else: raise ValidationError(template_serializer.errors) models.ProjectTemplate.objects.get_or_create(project=project, template=template) return project
def create_mturk_user(apps, schema_editor): user = apps.get_model("auth", "User") profile = apps.get_model("crowdsourcing", "UserProfile") worker = apps.get_model("crowdsourcing", "Worker") mturk_user = user.objects.create(username='******', email='*****@*****.**', password=make_password( generate_random_id()), is_active=False) mturk_profile = profile.objects.get_or_create(user=mturk_user) mturk_worker = worker.objects.get_or_create(profile=mturk_profile[0], alias='mturk')
def get_or_create_worker(worker_id): if worker_id is None: return None daemo_username = '******' + string.lower(worker_id) user = get_model_or_none(User, username=daemo_username) if user is None: user_obj = User.objects.create(username=daemo_username, email=daemo_username + '@daemo.stanford.edu', password=make_password(generate_random_id()), is_active=False) UserProfile.objects.create(user=user_obj) return user_obj else: return user
def create(self, **kwargs): project = models.Project.objects.create( deleted=False, owner=kwargs['owner'].requester) template = {"name": 't_' + generate_random_id()} template_serializer = TemplateSerializer(data=template) template = None if template_serializer.is_valid(): template = template_serializer.create(with_default=True, owner=kwargs['owner']) else: raise ValidationError(template_serializer.errors) models.ProjectTemplate.objects.get_or_create(project=project, template=template) return project
def fork(self, *args, **kwargs): template = self.instance.template template_items = copy.copy(template.items.all()) # batch_files = self.instance.batch_files.all() project = self.instance project.name += ' (copy)' project.status = models.Project.STATUS_DRAFT project.is_prototype = False project.parent_id = self.instance.id project.last_opened_at = None project.aux_attributes = {"sort_results_by": "worker_id"} project.amount_due = 0 project.min_rating = 3.0 project.is_paid = False project.previous_min_rating = 3.0 project.discussion_link = None project.publish_at = None template.pk = None template.save() project.template = template review_project = models.Project.objects.filter( parent_id=self.instance.group_id, is_review=True).first() for template_item in template_items: template_item.pk = None template_item.template = template template_item.save() TemplateItemSerializer.rebuild_tree(template) project.id = None project.save() project.group_id = project.id project.save() template = {"name": 't_' + generate_random_id(), "items": []} self.create_task(project.id) self.create_review(project=project, template_data=template, parent_review_project=review_project) return project
def fork(self, *args, **kwargs): template = self.instance.template template_items = copy.copy(template.items.all()) # batch_files = self.instance.batch_files.all() project = self.instance project.name += ' (copy)' project.status = models.Project.STATUS_DRAFT project.is_prototype = False project.parent_id = self.instance.id project.last_opened_at = None project.aux_attributes = {"sort_results_by": "worker_id"} project.amount_due = 0 project.min_rating = 3.0 project.is_paid = False project.previous_min_rating = 3.0 project.discussion_link = None project.publish_at = None template.pk = None template.save() project.template = template review_project = models.Project.objects.filter(parent_id=self.instance.group_id, is_review=True).first() for template_item in template_items: template_item.pk = None template_item.template = template template_item.save() TemplateItemSerializer.rebuild_tree(template) project.id = None project.save() project.group_id = project.id project.save() template = { "name": 't_' + generate_random_id(), "items": [] } self.create_task(project.id) self.create_review(project=project, template_data=template, parent_review_project=review_project) return project