Exemple #1
0
def import_story(request, project_slug, queue_id):
    logger.debug("Adding story from StoryQueue")
    project = get_object_or_404(Project, slug=project_slug)
    write_access_or_403(project, request.user)
    try:
        story = StoryQueue.objects.get(id=queue_id)
    except:
        return HttpResponseRedirect(
            reverse("story_queue_url", kwargs={'project_slug': project_slug}))

    if story.project != project:
        # Shenanigans here!
        raise PermissionDenied()

    # TODO (Useability):
    #    What should rank be set at to make the most sense?
    new_story = Story(project=project,
                      rank=0,
                      local_id=project.getNextId(),
                      summary=story.summary,
                      detail=story.detail,
                      extra_1=story.extra_1,
                      extra_2=story.extra_2,
                      extra_3=story.extra_3,
                      status=story.status,
                      points=story.points,
                      iteration=project.get_default_iteration(),
                      creator=request.user)
    new_story.save()
    mapping = ExternalStoryMapping(story=new_story,
                                   external_id=story.external_id,
                                   external_url=story.external_url,
                                   extra_slug=story.extra_slug)
    mapping.save()
    request.user.message_set.create(message="Story imported.")

    story.delete()  # delete the story queue object since we just imported it.

    signals.story_imported.send(sender=request,
                                story=new_story,
                                story_queue=story,
                                user=request.user)

    return HttpResponseRedirect(
        reverse("story_queue_url",
                kwargs={'project_slug':
                        project_slug}))  #story_queue(request,project_slug)
Exemple #2
0
def import_stories(request, project_slug):
    logger.debug("Adding story from StoryQueue")
    project = get_object_or_404(Project, slug=project_slug)
    write_access_or_403(project, request.user)
    queue_ids = str(request.POST.get("stories", "")).split(",")
    iteration = project.get_default_iteration()
    count = 0

    for queue_id in queue_ids:
        try:
            story = StoryQueue.objects.get(id=queue_id)
        except:
            continue

        if story.project != project:
            # Shenanigans here!
            raise PermissionDenied()

        new_story = Story(project=project,
                          rank=0,
                          local_id=project.getNextId(),
                          summary=story.summary,
                          detail=story.detail,
                          extra_1=story.extra_1,
                          extra_2=story.extra_2,
                          extra_3=story.extra_3,
                          status=story.status,
                          points=story.points,
                          iteration=iteration,
                          creator=request.user)
        new_story.save()
        logger.debug("Added story %d" % new_story.id)
        mapping = ExternalStoryMapping(story=new_story,
                                       external_id=story.external_id,
                                       external_url=story.external_url,
                                       extra_slug=story.extra_slug)
        mapping.save()
        story.delete(
        )  # delete the story queue object since we just imported it.
        signals.story_imported.send(sender=request,
                                    story=new_story,
                                    story_queue=story,
                                    user=request.user)
        count += 1

    return HttpResponse("%d imported" % count)
Exemple #3
0
def import_stories(request, project_slug):
    logger.debug("Adding story from StoryQueue")
    project = get_object_or_404(Project, slug=project_slug)
    write_access_or_403(project, request.user)
    queue_ids = str(request.POST.get("stories", "")).split(",")
    iteration = project.get_default_iteration()
    count = 0

    for queue_id in queue_ids:
        try:
            story = StoryQueue.objects.get(id=queue_id)
        except:
            continue

        if story.project != project:
            # Shenanigans here!
            raise PermissionDenied()

        new_story = Story(project=project, rank=0,
                          local_id=project.getNextId(),
                          summary=story.summary,
                          detail=story.detail,
                          extra_1=story.extra_1,
                          extra_2=story.extra_2,
                          extra_3=story.extra_3,
                          status=story.status,
                          points=story.points,
                          iteration=iteration,
                          creator=request.user
                          )
        new_story.save()
        logger.debug("Added story %d" % new_story.id)
        mapping = ExternalStoryMapping(story=new_story,
                                       external_id=story.external_id,
                                       external_url=story.external_url,
                                       extra_slug=story.extra_slug)
        mapping.save()
        # delete the story queue object since we just imported it.
        story.delete()
        signals.story_imported.send(
            sender=request, story=new_story, story_queue=story, user=request.user)
        count += 1

    return HttpResponse("%d imported" % count)
Exemple #4
0
def import_story(request, project_slug, queue_id):
    logger.debug("Adding story from StoryQueue")
    project = get_object_or_404( Project, slug=project_slug )
    write_access_or_403(project, request.user )
    try:
        story = StoryQueue.objects.get(id=queue_id)
    except:
        return HttpResponseRedirect(reverse("story_queue_url", kwargs={'project_slug':project_slug} ))
        
    if story.project != project:
        # Shenanigans here!
        raise PermissionDenied()

    # TODO (Useability):
    #    What should rank be set at to make the most sense?
    new_story = Story(project=project, rank=0,
                      local_id=project.getNextId(),
                      summary=story.summary,
                      detail=story.detail,
                      extra_1=story.extra_1,
                      extra_2=story.extra_2,
                      extra_3=story.extra_3,
                      status=story.status,
                      points=story.points,
                      iteration = project.get_default_iteration(),
                      creator = request.user
                      )
    new_story.save()
    mapping = ExternalStoryMapping(story=new_story,
                                   external_id=story.external_id,
                                   external_url=story.external_url,
                                   extra_slug=story.extra_slug)
    mapping.save()
    request.user.message_set.create(message="Story imported.")

    story.delete() # delete the story queue object since we just imported it.

    signals.story_imported.send( sender=request, story=new_story, story_queue=story, user=request.user )

    return HttpResponseRedirect(reverse("story_queue_url", kwargs={'project_slug':project_slug} )) #story_queue(request,project_slug)