# HG changeset patch # User cavaliet # Date 1377783720 -7200 # Node ID 02008d61c3c86b485ef0446086428822411111bd # Parent ff4d2d4f1fb0ad765dcf911fe46a386eb09d4e7b record view + correct import diff -r ff4d2d4f1fb0 -r 02008d61c3c8 src/p4l/management/commands/import_record.py --- a/src/p4l/management/commands/import_record.py Wed Aug 28 18:45:41 2013 +0200 +++ b/src/p4l/management/commands/import_record.py Thu Aug 29 15:42:00 2013 +0200 @@ -209,7 +209,7 @@ record.subjectMeetings, graph, ['label', 'meetingNumber', 'meetingPlace', 'meetingDate', 'meetingYear'], - "SELECT ?l ?mn ?mp ?md ?my WHERE { [iiep:meeting ?bnode]. OPTIONAL { ?bnode rdfs:label ?l }. OPTIONAL { ?bnode iiep:meetingNumber ?mn }. OPTIONAL { ?bnode iiep:meetingPlace ?mp }. OPTIONAL { ?bnode iiep:meetingDate ?md }. OPTIONAL { ?bnode iiep:meetingYear ?my }}", + "SELECT ?l ?mn ?mp ?md ?my WHERE { [iiep:subjectMeeting ?bnode]. OPTIONAL { ?bnode rdfs:label ?l }. OPTIONAL { ?bnode iiep:meetingNumber ?mn }. OPTIONAL { ?bnode iiep:meetingPlace ?mp }. OPTIONAL { ?bnode iiep:meetingDate ?md }. OPTIONAL { ?bnode iiep:meetingYear ?my }}", convert={'meetingYear' : lambda y: int(y) if y is not None else None} ) diff -r ff4d2d4f1fb0 -r 02008d61c3c8 src/p4l/static/p4l/css/p4l.css --- a/src/p4l/static/p4l/css/p4l.css Wed Aug 28 18:45:41 2013 +0200 +++ b/src/p4l/static/p4l/css/p4l.css Thu Aug 29 15:42:00 2013 +0200 @@ -6,9 +6,19 @@ margin: 0 auto; width: 950px; } + +.record-table thead td:first-child { + width: 190px; +} +.record-table tbody td:first-child:first-letter { + text-transform: uppercase; +} .table thead td:first-letter { text-transform: uppercase; } +.table thead { + font-weight: bold; +} .two_buttons{ min-width: 100px; -} +} \ No newline at end of file diff -r ff4d2d4f1fb0 -r 02008d61c3c8 src/p4l/templates/p4l/p4l_home.html --- a/src/p4l/templates/p4l/p4l_home.html Wed Aug 28 18:45:41 2013 +0200 +++ b/src/p4l/templates/p4l/p4l_home.html Thu Aug 29 15:42:00 2013 +0200 @@ -21,20 +21,20 @@ {% endif %} - + {% for record in object_list %} @@ -44,7 +44,10 @@ - + {% empty %} @@ -53,16 +56,15 @@
URIlang.{% trans 'title' %}{% trans 'actions' %}
URIlang.{% trans 'titles' %}{% trans 'actions' %}
    {% for t in record.titles.all %}
  • {{ t.title }}
  • {% endfor %}
+ + +
{% trans 'No record' %}
{% if is_paginated %} diff -r ff4d2d4f1fb0 -r 02008d61c3c8 src/p4l/templates/p4l/p4l_record_view.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/p4l/templates/p4l/p4l_record_view.html Thu Aug 29 15:42:00 2013 +0200 @@ -0,0 +1,236 @@ +{% extends "p4l/p4l_base.html" %} +{% load static %} +{% load i18n %} +{% load p4lstringfilters %} + +{% block content %} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {# ajouter langue #} + + + + {# ajouter langue #} + + + + {# ajouter langue #} + + + + + + + + + + + + + + + + {# ajouter langue #} + + + + + + + + {# ajouter langue #} + + + + + + + + + + + + +
{% trans 'property' %}{% trans 'value' %}
URI{{ record.uri|default:'' }}
{% trans 'subjects' %}
    {% for i in record.subjects.all %}
  • {{ i.subject|default:'' }}
  • {% endfor %}
{% trans 'themes' %}
    {% for i in record.themes.all %}
  • {{ i.theme|default:'' }}
  • {% endfor %}
{% trans 'countries' %}
    {% for i in record.countries.all %}
  • {{ i.country|default:'' }}
  • {% endfor %}
{% trans 'identifier' %}{{ record.identifier }}
{% trans 'issns' %}
    {% for i in record.issns.all %}
  • {{ i.issn|default:'' }}
  • {% endfor %}
{% trans 'isbns' %}
    {% for i in record.isbns.all %}
  • {{ i.isbn|default:'' }}
  • {% endfor %}
{% trans 'document code' %}
    {% for i in record.documentCodes.all %}
  • {{ i.documentCode|default:'' }}
  • {% endfor %}
{% trans 'language' %}{{ record.language.language|default:'' }}
{% trans 'other languages' %}
    {% for i in record.otherLanguages.all %}
  • {{ i.language|default:'' }}
  • {% endfor %}
{% trans 'titles' %}
    {% for i in record.titles.all %}
  • {{ i.title|default:'' }}
  • {% endfor %}
{% trans 'added titles' %}
    {% for i in record.addedTitles.all %}
  • {{ i.title|default:'' }}
  • {% endfor %}
{% trans 'titles main document' %}
    {% for i in record.titlesMainDocument.all %}
  • {{ i.title|default:'' }}
  • {% endfor %}
{% trans 'edition statement' %}{{ record.editionStatement|default:'' }}
{% trans 'imprints' %} +
    + {% for i in record.imprints.all %} +
  • +
      +
    • {% trans 'City' %} : {{ i.imprintCity|default:'' }}
    • +
    • {% trans 'Publisher' %} : {{ i.publisher|default:'' }}
    • +
    • {% trans 'Date' %} : {{ i.imprintDate|default:'' }}
    • +
    +
  • + {% endfor %} +
+
{% trans 'collations' %}
    {% for i in record.collations.all %}
  • {{ i.collation|default:'' }}
  • {% endfor %}
{% trans 'volume issues' %} +
    + {% for i in record.volumeIssues.all %} +
  • +
      +
    • {% trans 'Volume' %} : {{ i.volume|default:'' }}
    • +
    • {% trans 'Number' %} : {{ i.number|default:'' }}
    • +
    +
  • + {% endfor %} +
+
{% trans 'project names' %}
    {% for i in record.projectNames.all %}
  • {% if i.acronym %}{{ i.acronym }} : {% endif %}{{ i.label|default:'' }}
  • {% endfor %}
{% trans 'periodicals' %}
    {% for i in record.periodicals.all %}
  • {{ i.label|default:'' }}
  • {% endfor %}
{% trans 'meetings' %} +
    + {% for i in record.meetings.all %} +
  • +
      +
    • {{ i.label|default:'' }}
    • +
    • {% trans 'Number' %} : {{ i.meetingNumber|default:'' }}
    • +
    • {% trans 'Place' %} : {{ i.meetingPlace|default:'' }}
    • +
    • {% trans 'Date' %} : {{ i.meetingDate|default:'' }}
    • +
    • {% trans 'Year' %} : {{ i.meetingYear|default:'' }}
    • +
    +
  • + {% endfor %} +
+
{% trans 'series' %} +
    + {% for i in record.series.all %} +
  • +
      +
    • {{ i.title|default:'' }}
    • + {% if i.volume %}
    • {% trans 'Volume' %} : {{ i.volume|default:'' }}
    • {% endif %} +
    +
  • + {% endfor %} +
+
{% trans 'authors' %}
    {% for i in record.authors.all %}
  • {{ i.name|default:'' }}
  • {% endfor %}
{% trans 'subject persons' %}
    {% for i in record.subjectPersons.all %}
  • {{ i.name|default:'' }}
  • {% endfor %}
{% trans 'subject corporate bodies' %}
    {% for i in record.subjectCorporateBodies.all %}
  • {% if i.acronym %}{{ i.acronym }} : {% endif %}{{ i.label|default:'' }}
  • {% endfor %}
{% trans 'subject meetings' %} +
    + {% for i in record.subjectMeetings.all %} +
  • +
      +
    • {{ i.label|default:'' }}
    • +
    • {% trans 'Number' %} : {{ i.meetingNumber|default:'' }}
    • +
    • {% trans 'Place' %} : {{ i.meetingPlace|default:'' }}
    • +
    • {% trans 'Date' %} : {{ i.meetingDate|default:'' }}
    • +
    • {% trans 'Year' %} : {{ i.meetingYear|default:'' }}
    • +
    +
  • + {% endfor %} +
+
{% trans 'corporate authors' %}
    {% for i in record.corporateAuthors.all %}
  • {% if i.acronym %}{{ i.acronym }} : {% endif %}{{ i.label|default:'' }}
  • {% endfor %}
{% trans 'Urls' %} +
    + {% for i in record.urls.all %} +
  • +
      +
    • {% trans 'Address' %} : {{ i.address|default:'' }}
    • +
    • {% trans 'Display' %} : {{ i.display|default:'' }}
    • +
    • {% trans 'Access level' %} : {{ i.accessLevel|default:'' }}
    • +
    +
  • + {% endfor %} +
+
{% trans 'record type' %}{{ record.recordType|default:'' }}
{% trans 'is document part' %}
+{% endblock %} \ No newline at end of file diff -r ff4d2d4f1fb0 -r 02008d61c3c8 src/p4l/urls.py --- a/src/p4l/urls.py Wed Aug 28 18:45:41 2013 +0200 +++ b/src/p4l/urls.py Thu Aug 29 15:42:00 2013 +0200 @@ -1,6 +1,6 @@ from django.conf import settings from django.conf.urls import patterns, include, url -from .views import RecordListView +from .views import RecordListView, RecordDetailView from django.contrib import admin admin.autodiscover() @@ -8,6 +8,7 @@ urlpatterns = patterns('', # Examples: url(r'^$', RecordListView.as_view(), name='p4l_home'), + url(r'^record/view$', RecordDetailView.as_view(), name='p4l_record_view'), # url(r'^p4l/', include('p4l.foo.urls')), # Uncomment the admin/doc line below to enable admin documentation: diff -r ff4d2d4f1fb0 -r 02008d61c3c8 src/p4l/views.py --- a/src/p4l/views.py Wed Aug 28 18:45:41 2013 +0200 +++ b/src/p4l/views.py Thu Aug 29 15:42:00 2013 +0200 @@ -6,15 +6,17 @@ ''' from django.conf import settings -from django.core.paginator import Paginator, InvalidPage, EmptyPage -from django.db.models import Count +#from django.core.paginator import Paginator, InvalidPage, EmptyPage +#from django.db.models import Count #from django.http.response import HttpResponse, HttpResponseForbidden -from django.views.generic import ListView#, DetailView, View +from django.shortcuts import get_object_or_404 +from django.views.generic import ListView, DetailView#, View #from django.views.generic.list import MultipleObjectMixin from .models import Record from .forms import RecordFilterForm import logging + logger = logging.getLogger(__name__) class RecordListView(ListView): @@ -42,3 +44,18 @@ return filter_form.get_filter_qs(qs) else: return qs + + +class RecordDetailView(DetailView): + + model = Record + template_name = "p4l/p4l_record_view.html" + slug_field = "uri" # Even if it is useless because we override get_objet + + def get_object(self, queryset=None): + if "uri" not in self.request.GET: + raise AttributeError(u"Record view must be called uri GET parameter") + + return get_object_or_404(Record.objects.select_related("language").prefetch_related('titles'), uri=self.request.GET["uri"]) + +