Esempio n. 1
0
 def test_all_sorting_fields(self):
     """Test all_sorting_fields method"""
     self.assertEqual(LoreSortingFields.all_sorting_fields(), [
         LoreSortingFields.SORT_BY_NR_VIEWS[0],
         LoreSortingFields.SORT_BY_NR_ATTEMPTS[0],
         LoreSortingFields.SORT_BY_AVG_GRADE[0],
         LoreSortingFields.SORT_BY_TITLE[0],
     ])
Esempio n. 2
0
 def test_all_sorting_fields(self):
     """Test all_sorting_fields method"""
     self.assertEqual(
         LoreSortingFields.all_sorting_fields(),
         [
             LoreSortingFields.SORT_BY_NR_VIEWS[0],
             LoreSortingFields.SORT_BY_NR_ATTEMPTS[0],
             LoreSortingFields.SORT_BY_AVG_GRADE[0],
             LoreSortingFields.SORT_BY_TITLE[0],
         ]
     )
Esempio n. 3
0
File: views.py Progetto: olabi/lore
def repository_view(request, repo_slug):
    """
    View for repository page.
    """
    try:
        repo = get_repo(repo_slug, request.user.id)
    except NotFound:
        raise Http404
    except LorePermissionDenied:
        raise PermissionDenied

    exports = request.session.get(
        'learning_resource_exports', {}).get(repo.slug, [])

    sortby = dict(request.GET.copy()).get('sortby', [])
    if (len(sortby) > 0 and
            sortby[0] in LoreSortingFields.all_sorting_fields()):
        sortby_field = sortby[0]
    else:
        # default value
        sortby_field = LoreSortingFields.DEFAULT_SORTING_FIELD

    sorting_options = {
        "current": LoreSortingFields.get_sorting_option(
            sortby_field),
        "all": LoreSortingFields.all_sorting_options_but(
            sortby_field)
    }

    try:
        page_size = int(request.GET.get(LorePagination.page_size_query_param))
    except (ValueError, KeyError, TypeError):
        page_size = LorePagination.page_size

    if page_size <= 0:
        page_size = LorePagination.page_size
    elif page_size > LorePagination.max_page_size:
        page_size = LorePagination.max_page_size

    context = {
        "repo": repo,
        "perms_on_cur_repo": get_perms(request.user, repo),
        "sorting_options_json": json.dumps(sorting_options),
        "exports_json": json.dumps(exports),
        "page_size_json": json.dumps(page_size)
    }

    return render(
        request,
        "repository.html",
        context
    )
Esempio n. 4
0
File: views.py Progetto: olabi/lore
def repository_view(request, repo_slug):
    """
    View for repository page.
    """
    try:
        repo = get_repo(repo_slug, request.user.id)
    except NotFound:
        raise Http404
    except LorePermissionDenied:
        raise PermissionDenied

    exports = request.session.get('learning_resource_exports',
                                  {}).get(repo.slug, [])

    sortby = dict(request.GET.copy()).get('sortby', [])
    if (len(sortby) > 0
            and sortby[0] in LoreSortingFields.all_sorting_fields()):
        sortby_field = sortby[0]
    else:
        # default value
        sortby_field = LoreSortingFields.DEFAULT_SORTING_FIELD

    sorting_options = {
        "current": LoreSortingFields.get_sorting_option(sortby_field),
        "all": LoreSortingFields.all_sorting_options_but(sortby_field)
    }

    try:
        page_size = int(request.GET.get(LorePagination.page_size_query_param))
    except (ValueError, KeyError, TypeError):
        page_size = LorePagination.page_size

    if page_size <= 0:
        page_size = LorePagination.page_size
    elif page_size > LorePagination.max_page_size:
        page_size = LorePagination.max_page_size

    context = {
        "repo": repo,
        "perms_on_cur_repo": get_perms(request.user, repo),
        "sorting_options_json": json.dumps(sorting_options),
        "exports_json": json.dumps(exports),
        "page_size_json": json.dumps(page_size)
    }

    return render(request, "repository.html", context)
Esempio n. 5
0
 def __call__(self, request, repo_slug):
     # Get arguments from the URL
     # It's a subclass of an external class, so we don't have
     # repo_slug in __init__.
     # pylint: disable=attribute-defined-outside-init
     try:
         self.repo = get_repo(repo_slug, request.user.id)
     except NotFound:
         raise Http404()
     except LorePermissionDenied:
         raise PermissionDenied('unauthorized')
     # get sorting from params if it's there
     sortby = dict(request.GET.copy()).get('sortby', [])
     if (len(sortby) > 0 and
             sortby[0] in LoreSortingFields.all_sorting_fields()):
         self.sortby = sortby[0]
     else:
         # default value
         self.sortby = LoreSortingFields.DEFAULT_SORTING_FIELD
     return super(RepositoryView, self).__call__(request)