Exemple #1
0
    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
Exemple #2
0
    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')
Exemple #6
0
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
Exemple #8
0
    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