Esempio n. 1
0
 def _get_queryset_project(self):
     """Filtering by translation/project."""
     if "project" not in self.request.GET:
         return
     try:
         self.project, self.component, self.translation = get_project_translation(
             self.request,
             self.request.GET.get("project"),
             self.request.GET.get("component"),
             self.request.GET.get("lang"),
         )
     except Http404:
         messages.error(self.request, _("Failed to find matching project!"))
Esempio n. 2
0
 def _get_queryset_project(self):
     """Filtering by translation/project."""
     if 'project' not in self.request.GET:
         return
     try:
         self.project, self.component, self.translation = get_project_translation(
             self.request,
             self.request.GET.get('project'),
             self.request.GET.get('component'),
             self.request.GET.get('lang'),
         )
     except Http404:
         messages.error(self.request, _('Failed to find matching project!'))
Esempio n. 3
0
 def _get_queryset_project(self, form):
     """Filtering by translation/project."""
     if not form.cleaned_data.get("project"):
         return
     try:
         self.project, self.component, self.translation = get_project_translation(
             self.request,
             form.cleaned_data.get("project"),
             form.cleaned_data.get("component"),
             form.cleaned_data.get("lang"),
         )
     except Http404:
         messages.error(self.request, _("Failed to find matching project!"))
Esempio n. 4
0
 def _get_queryset_project(self):
     """Filtering by translation/project."""
     if 'project' in self.request.GET:
         try:
             self.project, self.component, self.translation = \
                 get_project_translation(
                     self.request,
                     self.request.GET.get('project'),
                     self.request.GET.get('component'),
                     self.request.GET.get('lang'),
                 )
         except Http404:
             messages.error(
                 self.request,
                 _('Failed to find matching project!')
             )
Esempio n. 5
0
def get_activity_stats(
    request,
    days: int,
    step: int,
    project: Optional[str] = None,
    component: Optional[str] = None,
    lang: Optional[str] = None,
    user: Optional[str] = None,
):
    """Parse json stats URL params."""
    if project is None and lang is None and user is None:
        project = None
        component = None
        translation = None
        language = None
        user = None
    elif user is not None:
        project = None
        component = None
        translation = None
        language = None
        user = get_object_or_404(User, username=user)
    elif project is None:
        project = None
        component = None
        translation = None
        language = get_object_or_404(Language, code=lang)
        user = None
    else:
        # Process parameters
        project, component, translation = get_project_translation(
            request, project, component, lang)
        language = None
        user = None

    key = cache_key(days, step, project, component, translation, language,
                    user)
    result = cache.get(key)
    if not result:
        # Get actual stats
        result = Change.objects.base_stats(days, step, project, component,
                                           translation, language, user)
        cache.set(key, result, 3600 * 4)
    return result
Esempio n. 6
0
def get_json_stats(request, days, step, project=None, component=None,
                   lang=None, user=None):
    """Parse json stats URL params."""
    if project is None and lang is None and user is None:
        project = None
        component = None
        translation = None
        language = None
        user = None
    elif user is not None:
        project = None
        component = None
        translation = None
        language = None
        user = get_object_or_404(User, username=user)
    elif project is None:
        project = None
        component = None
        translation = None
        language = get_object_or_404(Language, code=lang)
        user = None
    else:
        # Process parameters
        project, component, translation = get_project_translation(
            request,
            project,
            component,
            lang
        )
        language = None
        user = None

    key = cache_key(
        days, step, project, component, translation, language, user
    )
    result = cache.get(key)
    if not result or True:
        # Get actual stats
        result = Change.objects.base_stats(
            days, step, project, component, translation, language, user
        )
        cache.set(key, result, 3600 * 4)
    return result