Beispiel #1
0
def test_get_voters():
    f.UserFactory()
    project = f.ProjectFactory()
    project_type = ContentType.objects.get_for_model(project)
    vote = f.VoteFactory(content_type=project_type, object_id=project.id)

    assert list(votes.get_voters(project)) == [vote.user]
Beispiel #2
0
def test_get_voters():
    f.UserFactory()
    project = f.ProjectFactory()
    project_type = ContentType.objects.get_for_model(project)
    vote = f.VoteFactory(content_type=project_type, object_id=project.id)

    assert list(votes.get_voters(project)) == [vote.user]
Beispiel #3
0
def issues_to_csv(project, queryset):
    csv_data = io.StringIO()
    fieldnames = [
        "ref", "subject", "description", "milestone", "owner",
        "owner_full_name", "assigned_to", "assigned_to_full_name", "status",
        "severity", "priority", "type", "is_closed", "attachments",
        "external_reference", "tags", "watchers", "voters"
    ]
    for custom_attr in project.issuecustomattributes.all():
        fieldnames.append(custom_attr.name)

    writer = csv.DictWriter(csv_data, fieldnames=fieldnames)
    writer.writeheader()
    for issue in queryset:
        issue_data = {
            "ref":
            issue.ref,
            "subject":
            issue.subject,
            "description":
            issue.description,
            "milestone":
            issue.milestone.name if issue.milestone else None,
            "owner":
            issue.owner.username,
            "owner_full_name":
            issue.owner.get_full_name(),
            "assigned_to":
            issue.assigned_to.username if issue.assigned_to else None,
            "assigned_to_full_name":
            issue.assigned_to.get_full_name() if issue.assigned_to else None,
            "status":
            issue.status.name,
            "severity":
            issue.severity.name,
            "priority":
            issue.priority.name,
            "type":
            issue.type.name,
            "is_closed":
            issue.is_closed,
            "attachments":
            issue.attachments.count(),
            "external_reference":
            issue.external_reference,
            "tags":
            ",".join(issue.tags or []),
            "watchers": [u.id for u in issue.get_watchers()],
            "voters":
            votes_services.get_voters(issue).count(),
        }

        for custom_attr in project.issuecustomattributes.all():
            value = issue.custom_attributes_values.attributes_values.get(
                str(custom_attr.id), None)
            issue_data[custom_attr.name] = value

        writer.writerow(issue_data)

    return csv_data
Beispiel #4
0
def issues_to_csv(project, queryset):
    csv_data = io.StringIO()
    fieldnames = [
        "ref",
        "subject",
        "description",
        "milestone",
        "owner",
        "owner_full_name",
        "assigned_to",
        "assigned_to_full_name",
        "status",
        "severity",
        "priority",
        "type",
        "is_closed",
        "attachments",
        "external_reference",
        "tags",
        "watchers",
        "voters",
    ]
    for custom_attr in project.issuecustomattributes.all():
        fieldnames.append(custom_attr.name)

    writer = csv.DictWriter(csv_data, fieldnames=fieldnames)
    writer.writeheader()
    for issue in queryset:
        issue_data = {
            "ref": issue.ref,
            "subject": issue.subject,
            "description": issue.description,
            "milestone": issue.milestone.name if issue.milestone else None,
            "owner": issue.owner.username,
            "owner_full_name": issue.owner.get_full_name(),
            "assigned_to": issue.assigned_to.username if issue.assigned_to else None,
            "assigned_to_full_name": issue.assigned_to.get_full_name() if issue.assigned_to else None,
            "status": issue.status.name,
            "severity": issue.severity.name,
            "priority": issue.priority.name,
            "type": issue.type.name,
            "is_closed": issue.is_closed,
            "attachments": issue.attachments.count(),
            "external_reference": issue.external_reference,
            "tags": ",".join(issue.tags or []),
            "watchers": [u.id for u in issue.get_watchers()],
            "voters": votes_services.get_voters(issue).count(),
        }

        for custom_attr in project.issuecustomattributes.all():
            value = issue.custom_attributes_values.attributes_values.get(str(custom_attr.id), None)
            issue_data[custom_attr.name] = value

        writer.writerow(issue_data)

    return csv_data
Beispiel #5
0
    def retrieve(self, request, *args, **kwargs):
        pk = kwargs.get("pk", None)
        issue_id = kwargs.get("issue_id", None)
        issue = get_object_or_404(models.Issue, pk=issue_id)

        self.check_permissions(request, 'retrieve', issue)

        try:
            self.object = votes_service.get_voters(issue).get(pk=pk)
        except User.DoesNotExist:
            raise Http404

        serializer = self.get_serializer(self.object)
        return Response(serializer.data)
Beispiel #6
0
    def retrieve(self, request, *args, **kwargs):
        pk = kwargs.get("pk", None)
        issue_id = kwargs.get("issue_id", None)
        issue = get_object_or_404(models.Issue, pk=issue_id)

        self.check_permissions(request, 'retrieve', issue)

        try:
            self.object = votes_service.get_voters(issue).get(pk=pk)
        except User.DoesNotExist:
            raise Http404

        serializer = self.get_serializer(self.object)
        return response.Ok(serializer.data)
Beispiel #7
0
    def retrieve(self, request, *args, **kwargs):
        pk = kwargs.get("pk", None)
        resource_id = kwargs.get("resource_id", None)
        resource = get_object_or_404(self.resource_model, pk=resource_id)

        self.check_permissions(request, "retrieve", resource)

        try:
            self.object = services.get_voters(resource).get(pk=pk)
        except ObjectDoesNotExist:  # or User.DoesNotExist
            return response.NotFound()

        serializer = self.get_serializer(self.object)
        return response.Ok(serializer.data)
Beispiel #8
0
    def retrieve(self, request, *args, **kwargs):
        pk = kwargs.get("pk", None)
        resource_id = kwargs.get("resource_id", None)
        resource = get_object_or_404(self.resource_model, pk=resource_id)

        self.check_permissions(request, 'retrieve', resource)

        try:
            self.object = services.get_voters(resource).get(pk=pk)
        except ObjectDoesNotExist:  # or User.DoesNotExist
            return response.NotFound()

        serializer = self.get_serializer(self.object)
        return response.Ok(serializer.data)
Beispiel #9
0
def tasks_to_csv(project, queryset):
    csv_data = io.StringIO()
    fieldnames = ["ref", "subject", "description", "user_story", "milestone", "owner",
                  "owner_full_name", "assigned_to", "assigned_to_full_name",
                  "status", "is_iocaine", "is_closed", "us_order",
                  "taskboard_order", "attachments", "external_reference", "tags",
                  "watchers", "voters"]
    for custom_attr in project.taskcustomattributes.all():
        fieldnames.append(custom_attr.name)

    writer = csv.DictWriter(csv_data, fieldnames=fieldnames)
    writer.writeheader()
    for task in queryset:
        task_data = {
            "ref": task.ref,
            "subject": task.subject,
            "description": task.description,
            "user_story": task.user_story.ref if task.user_story else None,
            "milestone": task.milestone.name if task.milestone else None,
            "owner": task.owner.username if task.owner else None,
            "owner_full_name": task.owner.get_full_name() if task.owner else None,
            "assigned_to": task.assigned_to.username if task.assigned_to else None,
            "assigned_to_full_name": task.assigned_to.get_full_name() if task.assigned_to else None,
            "status": task.status.name,
            "is_iocaine": task.is_iocaine,
            "is_closed": task.status.is_closed,
            "us_order": task.us_order,
            "taskboard_order": task.taskboard_order,
            "attachments": task.attachments.count(),
            "external_reference": task.external_reference,
            "tags": ",".join(task.tags or []),
            "watchers": [u.id for u in task.get_watchers()],
            "voters": votes_services.get_voters(task).count(),
        }
        for custom_attr in project.taskcustomattributes.all():
            value = task.custom_attributes_values.attributes_values.get(str(custom_attr.id), None)
            task_data[custom_attr.name] = value

        writer.writerow(task_data)

    return csv_data
Beispiel #10
0
 def get_votes(self, obj):
     return [x.email for x in votes_service.get_voters(obj)]
Beispiel #11
0
 def get_queryset(self):
     issue = models.Issue.objects.get(pk=self.kwargs.get("issue_id"))
     return votes_service.get_voters(issue)
Beispiel #12
0
 def get_queryset(self):
     issue = models.Issue.objects.get(pk=self.kwargs.get("issue_id"))
     return votes_service.get_voters(issue)
Beispiel #13
0
 def get_queryset(self):
     resource = self.resource_model.objects.get(
         pk=self.kwargs.get("resource_id"))
     return services.get_voters(resource)
Beispiel #14
0
def userstories_to_csv(project, queryset):
    csv_data = io.StringIO()
    fieldnames = [
        "ref", "subject", "description", "milestone", "owner",
        "owner_full_name", "assigned_to", "assigned_to_full_name", "status",
        "is_closed"
    ]
    for role in project.roles.filter(computable=True).order_by('name'):
        fieldnames.append("{}-points".format(role.slug))
    fieldnames.append("total-points")

    fieldnames += [
        "backlog_order", "sprint_order", "kanban_order", "created_date",
        "modified_date", "finish_date", "client_requirement",
        "team_requirement", "attachments", "generated_from_issue",
        "external_reference", "tasks", "tags", "watchers", "voters"
    ]

    for custom_attr in project.userstorycustomattributes.all():
        fieldnames.append(custom_attr.name)

    writer = csv.DictWriter(csv_data, fieldnames=fieldnames)
    writer.writeheader()
    for us in queryset:
        row = {
            "ref":
            us.ref,
            "subject":
            us.subject,
            "description":
            us.description,
            "milestone":
            us.milestone.name if us.milestone else None,
            "owner":
            us.owner.username if us.owner else None,
            "owner_full_name":
            us.owner.get_full_name() if us.owner else None,
            "assigned_to":
            us.assigned_to.username if us.assigned_to else None,
            "assigned_to_full_name":
            us.assigned_to.get_full_name() if us.assigned_to else None,
            "status":
            us.status.name,
            "is_closed":
            us.is_closed,
            "backlog_order":
            us.backlog_order,
            "sprint_order":
            us.sprint_order,
            "kanban_order":
            us.kanban_order,
            "created_date":
            us.created_date,
            "modified_date":
            us.modified_date,
            "finish_date":
            us.finish_date,
            "client_requirement":
            us.client_requirement,
            "team_requirement":
            us.team_requirement,
            "attachments":
            us.attachments.count(),
            "generated_from_issue":
            us.generated_from_issue.ref if us.generated_from_issue else None,
            "external_reference":
            us.external_reference,
            "tasks":
            ",".join([str(task.ref) for task in us.tasks.all()]),
            "tags":
            ",".join(us.tags or []),
            "watchers": [u.id for u in us.get_watchers()],
            "voters":
            votes_services.get_voters(us).count(),
        }

        for role in us.project.roles.filter(computable=True).order_by('name'):
            if us.role_points.filter(role_id=role.id).count() == 1:
                row["{}-points".format(role.slug)] = us.role_points.get(
                    role_id=role.id).points.value
            else:
                row["{}-points".format(role.slug)] = 0
        row['total-points'] = us.get_total_points()

        for custom_attr in project.userstorycustomattributes.all():
            value = us.custom_attributes_values.attributes_values.get(
                str(custom_attr.id), None)
            row[custom_attr.name] = value

        writer.writerow(row)

    return csv_data
Beispiel #15
0
def tasks_to_csv(project, queryset):
    csv_data = io.StringIO()
    fieldnames = [
        "ref", "subject", "description", "user_story", "milestone", "owner",
        "owner_full_name", "assigned_to", "assigned_to_full_name", "status",
        "is_iocaine", "is_closed", "us_order", "taskboard_order",
        "attachments", "external_reference", "tags", "watchers", "voters"
    ]
    for custom_attr in project.taskcustomattributes.all():
        fieldnames.append(custom_attr.name)

    writer = csv.DictWriter(csv_data, fieldnames=fieldnames)
    writer.writeheader()
    for task in queryset:
        task_data = {
            "ref":
            task.ref,
            "subject":
            task.subject,
            "description":
            task.description,
            "user_story":
            task.user_story.ref if task.user_story else None,
            "milestone":
            task.milestone.name if task.milestone else None,
            "owner":
            task.owner.username if task.owner else None,
            "owner_full_name":
            task.owner.get_full_name() if task.owner else None,
            "assigned_to":
            task.assigned_to.username if task.assigned_to else None,
            "assigned_to_full_name":
            task.assigned_to.get_full_name() if task.assigned_to else None,
            "status":
            task.status.name,
            "is_iocaine":
            task.is_iocaine,
            "is_closed":
            task.status.is_closed,
            "us_order":
            task.us_order,
            "taskboard_order":
            task.taskboard_order,
            "attachments":
            task.attachments.count(),
            "external_reference":
            task.external_reference,
            "tags":
            ",".join(task.tags or []),
            "watchers": [u.id for u in task.get_watchers()],
            "voters":
            votes_services.get_voters(task).count(),
        }
        for custom_attr in project.taskcustomattributes.all():
            value = task.custom_attributes_values.attributes_values.get(
                str(custom_attr.id), None)
            task_data[custom_attr.name] = value

        writer.writerow(task_data)

    return csv_data
Beispiel #16
0
def userstories_to_csv(project,queryset):
    csv_data = io.StringIO()
    fieldnames = ["ref", "subject", "description", "milestone", "owner",
                  "owner_full_name", "assigned_to", "assigned_to_full_name",
                  "status", "is_closed"]
    for role in project.roles.filter(computable=True).order_by('name'):
        fieldnames.append("{}-points".format(role.slug))
    fieldnames.append("total-points")

    fieldnames += ["backlog_order", "sprint_order", "kanban_order",
                   "created_date", "modified_date", "finish_date",
                   "client_requirement", "team_requirement", "attachments",
                   "generated_from_issue", "external_reference", "tasks",
                   "tags",
                   "watchers", "voters"]

    for custom_attr in project.userstorycustomattributes.all():
        fieldnames.append(custom_attr.name)

    writer = csv.DictWriter(csv_data, fieldnames=fieldnames)
    writer.writeheader()
    for us in queryset:
        row = {
            "ref": us.ref,
            "subject": us.subject,
            "description": us.description,
            "milestone": us.milestone.name if us.milestone else None,
            "owner": us.owner.username if us.owner else None,
            "owner_full_name": us.owner.get_full_name() if us.owner else None,
            "assigned_to": us.assigned_to.username if us.assigned_to else None,
            "assigned_to_full_name": us.assigned_to.get_full_name() if us.assigned_to else None,
            "status": us.status.name,
            "is_closed": us.is_closed,
            "backlog_order": us.backlog_order,
            "sprint_order": us.sprint_order,
            "kanban_order": us.kanban_order,
            "created_date": us.created_date,
            "modified_date": us.modified_date,
            "finish_date": us.finish_date,
            "client_requirement": us.client_requirement,
            "team_requirement": us.team_requirement,
            "attachments": us.attachments.count(),
            "generated_from_issue": us.generated_from_issue.ref if us.generated_from_issue else None,
            "external_reference": us.external_reference,
            "tasks": ",".join([str(task.ref) for task in us.tasks.all()]),
            "tags": ",".join(us.tags or []),
            "watchers": [u.id for u in us.get_watchers()],
            "voters": votes_services.get_voters(us).count(),
        }

        for role in us.project.roles.filter(computable=True).order_by('name'):
            if us.role_points.filter(role_id=role.id).count() == 1:
                row["{}-points".format(role.slug)] = us.role_points.get(role_id=role.id).points.value
            else:
                row["{}-points".format(role.slug)] = 0
        row['total-points'] = us.get_total_points()

        for custom_attr in project.userstorycustomattributes.all():
            value = us.custom_attributes_values.attributes_values.get(str(custom_attr.id), None)
            row[custom_attr.name] = value

        writer.writerow(row)

    return csv_data
Beispiel #17
0
 def get_votes(self, obj):
     return [x.email for x in votes_service.get_voters(obj)]
Beispiel #18
0
 def get_queryset(self):
     resource = self.resource_model.objects.get(pk=self.kwargs.get("resource_id"))
     return services.get_voters(resource)