def view(request, project_id):
    try:
        project = Project.objects.get(pk=project_id)
    except:
        return HttpResponse(status=404, content='Project not found')
    if project.redirectto_project:
        do_redirect = 'false' != request.GET.get('redirect')
        if do_redirect:
            return redirect(project.redirectto_project.get_view_link())

    stats = stats_services.project_stats(project)
    issues_sponsoring = issue_services.search_issues(project_id=project_id, is_sponsored=True)[0:3]
    issues_kickstarting = issue_services.search_issues(project_id=project_id, is_sponsored=False)[0:3]
    issues_sponsoring = json.dumps(issue_services.to_card_dict(issues_sponsoring))
    issues_kickstarting = json.dumps(issue_services.to_card_dict(issues_kickstarting))
    top_sponsors = stats_services.project_top_sponsors(project_id)[0:5]
    top_programmers = stats_services.project_top_programmers(project_id)[0:5]
    is_watching = request.user.is_authenticated() and watch_services.is_watching_project(request.user, project.id)
    return render_to_response('core2/project.html',
                              {'project': project,
                               'stats': stats,
                               'tags': json.dumps([t.name for t in project.get_tags()]),
                               'issues_sponsoring': issues_sponsoring,
                               'issues_kickstarting': issues_kickstarting,
                               'top_sponsors': top_sponsors,
                               'top_programmers': top_programmers,
                               'is_watching': is_watching,
                               },
                              context_instance=RequestContext(request))
    def test_deactivated_user_should_not_be_sponsoring_working_or_watching(self):
        offer = test_data.create_dummy_offer_btc()
        user = offer.sponsor
        solution = test_data.create_dummy_solution(programmer=user)
        issue = test_data.create_dummy_issue()
        watch_services.toggle_watch(user, 'ISSUE', issue.id, Watch.WATCHED)
        
        user = User.objects.get(pk=user.id)
        offer = Offer.objects.get(pk=offer.id)
        solution = Solution.objects.get(pk=solution.id)
        self.assertTrue(user.is_active)
        self.assertEqual(Offer.OPEN, offer.status)
        self.assertEqual(Solution.IN_PROGRESS, solution.status)
        self.assertTrue(watch_services.is_watching_issue(user, issue.id))

        user_services.deactivate_user(user)

        user = User.objects.get(pk=user.id)
        offer = Offer.objects.get(pk=offer.id)
        solution = Solution.objects.get(pk=solution.id)
        self.assertFalse(user.is_active)
        self.assertEqual(Offer.REVOKED, offer.status)
        self.assertEqual(Solution.ABORTED, solution.status)
        self.assertFalse(watch_services.is_watching_issue(user, issue.id))
        self.assertFalse(watch_services.is_watching_project(user, issue.project.id))
        self.assertFalse(watch_services.is_watching_issue(user, offer.issue.id))
        self.assertFalse(watch_services.is_watching_issue(user, solution.issue.id))
Beispiel #3
0
def view(request, project_id):
    try:
        project = Project.objects.get(pk=project_id)
    except:
        return HttpResponse(status=404, content='Project not found')
    if project.redirectto_project:
        do_redirect = 'false' != request.GET.get('redirect')
        if do_redirect:
            return redirect(project.redirectto_project.get_view_link())

    stats = stats_services.project_stats(project)
    issues_sponsoring = issue_services.search_issues(project_id=project_id,
                                                     is_sponsored=True)[0:3]
    issues_kickstarting = issue_services.search_issues(project_id=project_id,
                                                       is_sponsored=False)[0:3]
    issues_sponsoring = json.dumps(
        issue_services.to_card_dict(issues_sponsoring))
    issues_kickstarting = json.dumps(
        issue_services.to_card_dict(issues_kickstarting))
    top_sponsors = stats_services.project_top_sponsors(project_id)[0:5]
    top_programmers = stats_services.project_top_programmers(project_id)[0:5]
    is_watching = request.user.is_authenticated(
    ) and watch_services.is_watching_project(request.user, project.id)
    return render_to_response(
        'core2/project.html', {
            'project': project,
            'stats': stats,
            'tags': json.dumps([t.name for t in project.get_tags()]),
            'issues_sponsoring': issues_sponsoring,
            'issues_kickstarting': issues_kickstarting,
            'top_sponsors': top_sponsors,
            'top_programmers': top_programmers,
            'is_watching': is_watching,
        },
        context_instance=RequestContext(request))
Beispiel #4
0
def view(request, project_id):
    project = Project.objects.get(pk=project_id)
    stats = stats_services.project_stats(project)
    issues_sponsoring = issue_services.search_issues(project_id=project_id, is_public_suggestion=False)[0:3]
    issues_kickstarting = issue_services.search_issues(project_id=project_id, is_public_suggestion=True)[0:3]
    issues_sponsoring = json.dumps(issue_services.to_card_dict(issues_sponsoring))
    issues_kickstarting = json.dumps(issue_services.to_card_dict(issues_kickstarting))
    top_sponsors = stats_services.project_top_sponsors(project_id)[0:5]
    top_programmers = stats_services.project_top_programmers(project_id)[0:5]
    is_watching = request.user.is_authenticated() and watch_services.is_watching_project(request.user, project.id)
    return render_to_response('core2/project.html',
                              {'project': project,
                               'stats': stats,
                               'tags': json.dumps([t.name for t in project.get_tags()]),
                               'issues_sponsoring': issues_sponsoring,
                               'issues_kickstarting': issues_kickstarting,
                               'top_sponsors': top_sponsors,
                               'top_programmers': top_programmers,
                               'is_watching': is_watching,
                               },
                              context_instance=RequestContext(request))