src/p4l/views.py
changeset 40 cc7149ca6863
parent 38 c4e5bb735ec1
child 43 829d9d4111da
equal deleted inserted replaced
39:33a413910b75 40:cc7149ca6863
     4 
     4 
     5 @author: tc
     5 @author: tc
     6 '''
     6 '''
     7 
     7 
     8 from django.conf import settings
     8 from django.conf import settings
     9 from django.contrib.auth.decorators import login_required
       
    10 from django.utils.decorators import method_decorator
     9 from django.utils.decorators import method_decorator
    11 from django.views.generic import ListView, DetailView
    10 from django.views.generic import ListView, DetailView
    12 from p4l.forms import RecordFilterForm
    11 from p4l.forms import RecordFilterForm
    13 from p4l.models import Record
    12 from p4l.models import Record
    14 from p4l.utils import get_labels_for_uris
    13 from p4l.utils import get_labels_for_uris
    15 import json
    14 import json
    16 import logging
    15 import logging
    17 from p4l.semantictree.forms.forms import SubjectForm
       
    18 from django.utils.safestring import mark_safe
       
    19 
    16 
    20 
    17 
    21 logger = logging.getLogger(__name__)
    18 logger = logging.getLogger(__name__)
    22 
    19 
    23 class RecordListView(ListView):
    20 class RecordListView(ListView):
    24     
    21     
    25     queryset = Record.objects.select_related("language").prefetch_related('titles').distinct()  # @UndefinedVariable
    22     queryset = Record.objects.select_related("language").prefetch_related('titles').distinct()  # @UndefinedVariable
    26     paginate_by = settings.NB_RECORDS_BY_PAGE
    23     paginate_by = settings.NB_RECORDS_BY_PAGE
    27     template_name = "p4l/p4l_home.html"
    24     template_name = "p4l/p4l_home.html"
    28     form_class = RecordFilterForm
    25     form_class = RecordFilterForm
    29     
       
    30     @method_decorator(login_required)
       
    31     def dispatch(self, *args, **kwargs):
       
    32         return super(RecordListView, self).dispatch(*args, **kwargs)
       
    33     
    26     
    34     def get_context_data(self, **kwargs):
    27     def get_context_data(self, **kwargs):
    35         context = ListView.get_context_data(self, **kwargs)
    28         context = ListView.get_context_data(self, **kwargs)
    36         context['filter_form'] = self.form_class()
    29         context['filter_form'] = self.form_class()
    37         # Add filter params from GET params
    30         # Add filter params from GET params
    53 class RecordDetailView(DetailView):
    46 class RecordDetailView(DetailView):
    54     
    47     
    55     model = Record
    48     model = Record
    56     template_name = "p4l/p4l_record_view.html"
    49     template_name = "p4l/p4l_record_view.html"
    57     slug_field = "identifier"
    50     slug_field = "identifier"
    58     
       
    59     @method_decorator(login_required)
       
    60     def dispatch(self, *args, **kwargs):
       
    61         return super(RecordDetailView, self).dispatch(*args, **kwargs)
       
    62     
    51     
    63     def get_context_data(self, **kwargs):
    52     def get_context_data(self, **kwargs):
    64         context = DetailView.get_context_data(self, **kwargs)
    53         context = DetailView.get_context_data(self, **kwargs)
    65         # We get the language, "fr" by default
    54         # We get the language, "fr" by default
    66         lang = "fr"
    55         lang = "fr"
   166 PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
   155 PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
   167 SELECT DISTINCT ?uri ?label
   156 SELECT DISTINCT ?uri ?label
   168 WHERE {
   157 WHERE {
   169     ?uri a skos:Collection ;
   158     ?uri a skos:Collection ;
   170     skos:inScheme <http://skos.um.es/unescothes/CS000> ;    
   159     skos:inScheme <http://skos.um.es/unescothes/CS000> ;    
   171     rdfs:label ?label .
   160     skos:prefLabel|rdfs:label ?label .
   172     FILTER (lang(?label) = ?language). 
   161     FILTER (lang(?label) = ?language). 
   173     FILTER NOT EXISTS { [skos:member ?uri] }
   162     FILTER NOT EXISTS { [skos:member ?uri] }
   174 }
   163 }
   175 """,
   164 """,
   176                             'data-childs-query':
   165                             'data-childs-query':