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))
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))
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))