示例#1
0
def team_detail(request, project_slug, language_code):
    project = get_object_or_404(Project.objects.select_related(), slug=project_slug)
    language = Language.objects.by_code_or_alias_or_404(language_code)
    team = Team.objects.get_or_none(project, language.code)

    filter_form = ProjectsFilterForm(project, request.GET)

    projects_filter = []
    if filter_form.is_valid():
        projects_filter = filter_form.cleaned_data['project']

    if team and request.user.is_authenticated():
        user_access_request = request.user.teamaccessrequest_set.filter(
            team__pk=team.pk)
    else:
        user_access_request = None

    statslist = RLStats.objects.select_related('resource', 'resource__project',
        'lock', 'last_committer', 'resource__priority')

    if projects_filter:
        statslist = statslist.filter(resource__project__in=[projects_filter,])

    statslist = statslist.by_project_and_language(project, language)

    if not statslist:
        raise Http404

    empty_rlstats = Resource.objects.select_related('project', 'priority'
        ).by_project(project).exclude(id__in=statslist.values('resource')
        ).order_by('project__name')

    if projects_filter:
        empty_rlstats = empty_rlstats.filter(project__in=[projects_filter,])

    total_entries = Resource.objects.by_project(project).aggregate(
        total_entities=Sum('total_entities'))['total_entities']

    if team:
        coordinators = team.coordinators.select_related('profile').all()[:6]
    else:
        coordinators = None

    return render_to_response("teams/team_detail.html", {
        "project": project,
        "language": language,
        "team": team,
        "user_access_request": user_access_request,
        "project_team_page": True,
        "statslist": statslist,
        "empty_rlstats": empty_rlstats,
        "filter_form": filter_form,
        "total_entries": total_entries,
        "coordinators": coordinators,
    }, context_instance=RequestContext(request))
示例#2
0
def team_detail(request, project_slug, language_code):
    project = get_object_or_404(Project.objects.select_related(),
                                slug=project_slug)
    language = Language.objects.by_code_or_alias_or_404(language_code)
    team = Team.objects.get_or_none(project, language.code)

    filter_form = ProjectsFilterForm(project, request.GET)

    projects_filter = []
    if filter_form.is_valid():
        projects_filter = filter_form.cleaned_data['project']

    if team and request.user.is_authenticated():
        user_access_request = request.user.teamaccessrequest_set.filter(
            team__pk=team.pk)
    else:
        user_access_request = None

    statslist = RLStats.objects.select_related('resource', 'resource__project',
                                               'lock', 'last_committer',
                                               'resource__priority')

    if projects_filter:
        statslist = statslist.filter(resource__project__in=[
            projects_filter,
        ])

    statslist = statslist.by_project_and_language(project, language)

    if not statslist and not team:
        raise Http404

    empty_rlstats = Resource.objects.select_related(
        'project', 'priority').by_project(project).exclude(
            id__in=statslist.values('resource')).order_by('project__name')

    if projects_filter:
        empty_rlstats = empty_rlstats.filter(project__in=[
            projects_filter,
        ])

    total_entries = Resource.objects.by_project(project).aggregate(
        total_entities=Sum('total_entities'))['total_entities']

    if team:
        coordinators = team.coordinators.select_related('profile').all()[:6]
    else:
        coordinators = None

    # HACK: For every resource without an RLStats object, we need to fool
    # the template that there is one. So, we create the object without
    # saving it to the DB and append it to the list. I know this is not very
    # nice but I can't think of a nicer way to do it.
    statslist = list(statslist)
    for resource in empty_rlstats:
        rl = RLStats(
            resource=resource,
            language=language,
            untranslated=resource.total_entities,
        )
        statslist.append(rl)

    return render_to_response("teams/team_detail.html", {
        "project": project,
        "language": language,
        "team": team,
        "user_access_request": user_access_request,
        "project_team_page": True,
        "statslist": statslist,
        "filter_form": filter_form,
        "total_entries": total_entries,
        "coordinators": coordinators,
    },
                              context_instance=RequestContext(request))
示例#3
0
文件: views.py 项目: 593in/transifex
def team_detail(request, project_slug, language_code):
    project = get_object_or_404(Project.objects.select_related(), slug=project_slug)
    language = Language.objects.by_code_or_alias_or_404(language_code)
    team = Team.objects.get_or_none(project, language.code)

    filter_form = ProjectsFilterForm(project, request.GET)

    projects_filter = []
    if filter_form.is_valid():
        projects_filter = filter_form.cleaned_data['project']

    if team and request.user.is_authenticated():
        user_access_request = request.user.teamaccessrequest_set.filter(
            team__pk=team.pk)
    else:
        user_access_request = None

    statslist = RLStats.objects.select_related('resource', 'resource__project',
        'lock', 'last_committer', 'resource__priority')

    if projects_filter:
        statslist = statslist.filter(resource__project__in=[projects_filter,])

    statslist = statslist.by_project_and_language(project, language)

    if not statslist and not team:
        raise Http404

    empty_rlstats = Resource.objects.select_related('project', 'priority'
        ).by_project(project).exclude(id__in=statslist.values('resource')
        ).order_by('project__name')

    if projects_filter:
        empty_rlstats = empty_rlstats.filter(project__in=[projects_filter,])

    total_entries = Resource.objects.by_project(project).aggregate(
        total_entities=Sum('total_entities'))['total_entities']

    if team:
        coordinators = team.coordinators.select_related('profile').all()[:6]
    else:
        coordinators = None

    # HACK: For every resource without an RLStats object, we need to fool
    # the template that there is one. So, we create the object without
    # saving it to the DB and append it to the list. I know this is not very
    # nice but I can't think of a nicer way to do it.
    statslist = list(statslist)
    for resource in empty_rlstats:
        rl = RLStats(resource=resource, language=language,
            untranslated=resource.total_entities,
        )
        statslist.append(rl)

    return render_to_response("teams/team_detail.html", {
        "project": project,
        "language": language,
        "team": team,
        "user_access_request": user_access_request,
        "project_team_page": True,
        "statslist": statslist,
        "filter_form": filter_form,
        "total_entries": total_entries,
        "coordinators": coordinators,
    }, context_instance=RequestContext(request))