Beispiel #1
0
 def _has_perm(self, user, project):
     """
     Check that the user has access to this resource.
     """
     perm = ProjectPermission(user)
     if not perm.private(project):
         return False
     return True
Beispiel #2
0
 def _has_perm(self, user, project):
     """
     Check that the user has access to this resource.
     """
     perm = ProjectPermission(user)
     if not perm.private(project):
         return False
     return True
Beispiel #3
0
def tab_suggestions_snippet(request, entity_id, lang_code):
    """Return a template snippet with entity & translation details."""

    source_entity = get_object_or_404(SourceEntity, pk=entity_id)

    check = ProjectPermission(request.user)
    if not check.private(source_entity.resource.project):
        return permission_denied(request)

    current_translation = source_entity.get_translation(lang_code)

    return render_to_response("tab_suggestions_snippet.html", {
        'source_entity': source_entity,
        'lang_code': lang_code,
        'current_translation': current_translation
        },
    context_instance = RequestContext(request))
def tab_suggestions_snippet(request, entity_id, lang_code):
    """Return a template snippet with entity & translation details."""

    source_entity = get_object_or_404(SourceEntity, pk=entity_id)

    check = ProjectPermission(request.user)
    if not check.private(source_entity.resource.project):
        return permission_denied(request)

    current_translation = source_entity.get_translation(lang_code)

    return render_to_response("tab_suggestions_snippet.html", {
        'source_entity': source_entity,
        'lang_code': lang_code,
        'current_translation': current_translation
    },
                              context_instance=RequestContext(request))
Beispiel #5
0
def tab_details_snippet(request, entity_id, lang_code):
    """Return a template snippet with entity & translation details."""

    source_entity = get_object_or_404(SourceEntity, pk=entity_id)

    check = ProjectPermission(request.user)
    if not check.private(source_entity.resource.project):
        return permission_denied(request)

    language = get_object_or_404(Language, code=lang_code)
    translation = source_entity.get_translation(language.code)

    return list_detail.object_detail(request,
        queryset=SourceEntity.objects.all(),
        object_id=entity_id,
        template_name="tab_details_snippet.html",
        template_object_name='source_entity',
        extra_context={"translation": translation,
            "project": source_entity.resource.project})
Beispiel #6
0
def suggestion_vote(request, entity_id, lang_code, suggestion_id, direction):
    """Vote up or down for a suggestion."""

    suggestion = get_object_or_404(Suggestion, pk=suggestion_id)

    # Permissions handling
    check = ProjectPermission(request.user)
    if not check.private(suggestion.source_entity.resource.project):
        return permission_denied(request)

    #FIXME: All basic POST checks could be done in a decorator.
    if not request.method == "POST":
        return HttpResponseBadRequest(_("POST method only allowed."))

    if direction == 'up':
        suggestion.vote_up(request.user)
    elif direction == 'down':
        suggestion.vote_down(request.user)

    return HttpResponse(status=200)
Beispiel #7
0
 def _read(self, request, project_slug):
     """
     Return a list of projects or the details for a specific project.
     """
     if project_slug is None:
         # Use pagination
         p = Project.objects.for_user(request.user)
         res, msg = paginate(p, request.GET.get("start"), request.GET.get("end"))
         if res is None:
             return BAD_REQUEST(msg)
         return res
     else:
         try:
             p = Project.objects.get(slug=project_slug)
             perm = ProjectPermission(request.user)
             if not perm.private(p):
                 return rc.FORBIDDEN
         except Project.DoesNotExist:
             return rc.NOT_FOUND
         return p
Beispiel #8
0
def suggestion_vote(request, entity_id, lang_code, suggestion_id, direction):
    
    """Vote up or down for a suggestion."""

    suggestion = get_object_or_404(Suggestion, pk=suggestion_id)

    # Permissions handling
    check = ProjectPermission(request.user)
    if not check.private(suggestion.source_entity.resource.project):
        return permission_denied(request)

    #FIXME: All basic POST checks could be done in a decorator.
    if not request.method == "POST":
        return HttpResponseBadRequest(_("POST method only allowed."))

    if direction == 'up':
        suggestion.vote_up(request.user)
    elif direction == 'down':
        suggestion.vote_down(request.user)

    return HttpResponse(status=200)
Beispiel #9
0
 def _read(self, request, project_slug):
     """
     Return a list of projects or the details for a specific project.
     """
     if project_slug is None:
         # Use pagination
         p = Project.objects.for_user(request.user)
         res, msg = paginate(p, request.GET.get('start'),
                             request.GET.get('end'))
         if res is None:
             return BAD_REQUEST(msg)
         return res
     else:
         try:
             p = Project.objects.get(slug=project_slug)
             perm = ProjectPermission(request.user)
             if not perm.private(p):
                 return rc.FORBIDDEN
         except Project.DoesNotExist:
             return rc.NOT_FOUND
         return p
Beispiel #10
0
def tab_details_snippet(request, entity_id, lang_code):
    """Return a template snippet with entity & translation details."""

    source_entity = get_object_or_404(SourceEntity, pk=entity_id)

    check = ProjectPermission(request.user)
    if not check.private(source_entity.resource.project):
        return permission_denied(request)

    language = get_object_or_404(Language, code=lang_code)
    translation = source_entity.get_translation(language.code)

    return list_detail.object_detail(request,
                                     queryset=SourceEntity.objects.all(),
                                     object_id=entity_id,
                                     template_name="tab_details_snippet.html",
                                     template_object_name='source_entity',
                                     extra_context={
                                         "translation": translation,
                                         "project":
                                         source_entity.resource.project
                                     })
Beispiel #11
0
def suggestion_create(request, entity_id, lang_code):
    """Create a suggestion for an entity and a language."""

    source_entity = get_object_or_404(SourceEntity, pk=entity_id)

    # Permissions handling
    check = ProjectPermission(request.user)
    if not check.private(source_entity.resource.project):
        return permission_denied(request)

    #FIXME: All basic POST checks could be done in a decorator.
    if not request.method == "POST":
        return HttpResponseBadRequest(_("POST method only allowed."))
    suggestion_string = request.POST['suggestion_string']
    if not suggestion_string:
        return HttpResponseBadRequest(_("POST variable 'suggestion_string' missing."))

    language = Language.objects.by_code_or_alias(lang_code)
    source_entity.suggestions.create(language=language,
                                     string=request.POST['suggestion_string'],
                                     user=request.user)
    return HttpResponse(status=200)
Beispiel #12
0
def suggestion_create(request, entity_id, lang_code):
    """Create a suggestion for an entity and a language."""

    source_entity = get_object_or_404(SourceEntity, pk=entity_id)

    # Permissions handling
    check = ProjectPermission(request.user)
    if not check.private(source_entity.resource.project):
        return permission_denied(request)

    #FIXME: All basic POST checks could be done in a decorator.
    if not request.method == "POST":
        return HttpResponseBadRequest(_("POST method only allowed."))
    suggestion_string = request.POST['suggestion_string']
    if not suggestion_string:
        return HttpResponseBadRequest(
            _("POST variable 'suggestion_string' missing."))

    language = Language.objects.by_code_or_alias(lang_code)
    source_entity.suggestions.create(language=language,
                                     string=request.POST['suggestion_string'],
                                     user=request.user)
    return HttpResponse(status=200)