--- a/src/p4l/config.py.tmpl Fri Aug 30 17:58:35 2013 +0200
+++ b/src/p4l/config.py.tmpl Sat Aug 31 19:20:46 2013 +0200
@@ -135,3 +135,7 @@
}
}
+NB_RECORDS_BY_PAGE = 20
+SPARQL_QUERY_ENDPOINT = "http://localhost:8080/openrdf-sesame/repositories/plan4learning"
+
+
--- a/src/p4l/management/commands/import_record.py Fri Aug 30 17:58:35 2013 +0200
+++ b/src/p4l/management/commands/import_record.py Sat Aug 31 19:20:46 2013 +0200
@@ -139,21 +139,22 @@
record.notes = self.extract_single_value_form_graph(graph,"SELECT DISTINCT ?o WHERE { ?s iiep:notes ?o .}", bindings={'s':URIRef(record.uri)})
record.recordType = self.extract_single_value_form_graph(graph,"SELECT DISTINCT ?o WHERE { ?s dct:type ?o .}", bindings={'s':URIRef(record.uri)})
record.isDocumentPart = self.extract_single_value_form_graph(graph,"SELECT DISTINCT ?o WHERE { ?s iiep:isDocumentPart ?o .}", bindings={'s':URIRef(record.uri)}, convert=self.convert_bool)
+ record.isMultilingual = self.extract_single_value_form_graph(graph,"SELECT DISTINCT ?o WHERE { ?s iiep:isMultilingual ?o .}", bindings={'s':URIRef(record.uri)}, convert=self.convert_bool)
record.editionStatement = self.extract_single_value_form_graph(graph,"SELECT DISTINCT ?o WHERE { ?s iiep:editionStatement ?o .}", bindings={'s':URIRef(record.uri)})
language = self.extract_single_value_form_graph(graph,"SELECT DISTINCT ?o WHERE { ?s dct:language ?o .}", bindings={'s':URIRef(record.uri)})
if language:
- record.language, _ = Language.objects.get_or_create(language=language)
+ record.language, _ = Language.objects.get_or_create(uri=language)
record.save()
- self.add_to_related_collection(record.otherLanguages, graph, ['language'], "SELECT ?o WHERE { ?s iiep:otherLanguage ?o .}", bindings={'s':URIRef(record.uri)})
- self.add_to_related_collection(record.subjects, graph, ['subject'], "SELECT ?o WHERE { ?s dct:subject ?o .}", bindings={'s':URIRef(record.uri)})
- self.add_to_related_collection(record.themes, graph, ['theme'], "SELECT ?o WHERE { ?s iiep:theme ?o .}", bindings={'s':URIRef(record.uri)})
- self.add_to_related_collection(record.countries, graph, ['country'], "SELECT ?o WHERE { ?s iiep:country ?o .}", bindings={'s':URIRef(record.uri)})
+ self.add_to_related_collection(record.otherLanguages, graph, ['uri'], "SELECT ?o WHERE { ?s iiep:otherLanguage ?o .}", bindings={'s':URIRef(record.uri)})
+ self.add_to_related_collection(record.subjects, graph, ['uri'], "SELECT ?o WHERE { ?s dct:subject ?o .}", bindings={'s':URIRef(record.uri)})
+ self.add_to_related_collection(record.themes, graph, ['uri'], "SELECT ?o WHERE { ?s iiep:theme ?o .}", bindings={'s':URIRef(record.uri)})
+ self.add_to_related_collection(record.countries, graph, ['uri'], "SELECT ?o WHERE { ?s iiep:country ?o .}", bindings={'s':URIRef(record.uri)})
self.add_to_related_collection(record.authors, graph, ['name'], "SELECT ?o WHERE { ?s iiep:author ?o .}", bindings={'s':URIRef(record.uri)})
self.add_to_related_collection(record.subjectPersons, graph, ['name'], "SELECT ?o WHERE { ?s iiep:subjectPerson ?o .}", bindings={'s':URIRef(record.uri)})
- self.add_to_related_collection(record.projectNames, graph, ['label','acronym'], "SELECT ?l ?a WHERE { [ iiep:projectName ?bnode ]. ?bnode rdfs:label ?l. OPTIONAL { ?bnode iiep:acronym ?a } }")
+ self.add_to_related_collection(record.projectNames, graph, ['uri'], "SELECT ?o WHERE { ?s iiep:projectName ?o . }")
self.add_to_related_collection(
record.periodicals,
@@ -184,8 +185,9 @@
self.add_to_related_collection(
record.subjectCorporateBodies,
graph,
- ['label', 'acronym'],
- "SELECT ?l ?a WHERE { [iiep:subjectCorporateBody ?bnode]. OPTIONAL { ?bnode rdfs:label ?l }. OPTIONAL { ?bnode iiep:acronym ?a } }",
+ ['uri'],
+ "SELECT ?o WHERE { ?s iiep:subjectCorporateBody ?o. }",
+ bindings={'s':URIRef(record.uri)}
)
self.add_to_related_collection(
@@ -199,8 +201,9 @@
self.add_to_related_collection(
record.corporateAuthors,
graph,
- ['label', 'acronym'],
- "SELECT ?l ?a WHERE { [iiep:corporateAuthor ?bnode]. OPTIONAL { ?bnode rdfs:label ?l }. OPTIONAL { ?bnode iiep:acronym ?a } }",
+ ['uri'],
+ "SELECT ?o WHERE { ?s iiep:corporateAuthor ?o.}",
+ bindings={'s':URIRef(record.uri)}
)
self.add_to_related_collection(
--- a/src/p4l/models/__init__.py Fri Aug 30 17:58:35 2013 +0200
+++ b/src/p4l/models/__init__.py Sat Aug 31 19:20:46 2013 +0200
@@ -3,11 +3,11 @@
'Subject', 'Theme', 'Country', 'Isbn','Issn', 'DocumentCode',
'Language', 'Title', 'AddedTitle', 'TitleMainDocument', 'Abstract'
'Collation', 'VolumeIssue', 'Author', 'SubjectPerson', 'Periodical',
- 'Meeting', 'SubjectMeeting', 'CorporateBody', 'Record', 'User']
+ 'Meeting', 'SubjectMeeting', 'Record', 'User']
from p4l.models.data import (Imprint, Serie, ProjectName, CorporateAuthor, Url,
Subject, Theme, Country, Isbn, Issn, DocumentCode, Language, Title,
AddedTitle, TitleMainDocument, Abstract, Collation, VolumeIssue, Author,
- SubjectPerson, Periodical, Meeting, SubjectMeeting, CorporateBody, Record)
+ SubjectPerson, Periodical, Meeting, SubjectMeeting, Record)
from p4l.models.user import User
\ No newline at end of file
--- a/src/p4l/models/data.py Fri Aug 30 17:58:35 2013 +0200
+++ b/src/p4l/models/data.py Sat Aug 31 19:20:46 2013 +0200
@@ -18,6 +18,7 @@
class ProjectName(P4lModel):
+ uri = models.URLField(max_length=2048, unique=True, db_index=True)
label = models.CharField(max_length=2048, blank=False, null=False, db_index=True)
acronym = models.CharField(max_length=2048, blank=True, null=True, db_index=True) #iiep:acronym
class Meta(P4lModel.Meta):
@@ -25,10 +26,11 @@
class CorporateAuthor(P4lModel):
- record = models.ForeignKey('p4l.Record', related_name="corporateAuthors", db_index=True)
- label = models.CharField(max_length=2048, blank=False, null=False, db_index=True)
- acronym = models.CharField(max_length=2048, blank=True, null=True, db_index=True) #iiep:acronym
-
+ uri = models.URLField(max_length=2048, unique=True, db_index=True)
+ label = models.CharField(max_length=2048, blank=True, null=True, db_index=True)
+ acronym = models.CharField(max_length=2048, blank=True, null=True, db_index=True) #iiep:acronym
+ class Meta(P4lModel.Meta):
+ unique_together = ['label','acronym']
class Url(P4lModel):
record = models.ForeignKey('p4l.Record', related_name="urls", db_index=True)
@@ -38,16 +40,16 @@
class Subject(P4lModel):
- subject = models.URLField(max_length=2048, unique=True, db_index=True)
+ uri = models.URLField(max_length=2048, unique=True, db_index=True)
label = models.CharField(max_length=2048, blank=True, null=True, db_index=True) # filled from sparql request after import
class Theme(P4lModel):
- theme = models.URLField(max_length=2048, unique=True, db_index=True)
+ uri = models.URLField(max_length=2048, unique=True, db_index=True)
label = models.CharField(max_length=2048, blank=True, null=True, db_index=True) # filled from sparql request after import
class Country(P4lModel):
- country = models.URLField(max_length=2048, unique=True, db_index=True)
+ uri = models.URLField(max_length=2048, unique=True, db_index=True)
label = models.CharField(max_length=2048, blank=True, null=True, db_index=True) # filled from sparql request after import
@@ -65,11 +67,9 @@
documentCode = models.CharField(max_length=128) #iiep:issn
class Language(P4lModel):
- language = models.URLField(max_length=2048, unique=True, db_index=True)
+ uri = models.URLField(max_length=2048, unique=True, db_index=True)
label = models.CharField(max_length=2048, blank=True, null=True, db_index=True) # filled from sparql request after import
-
-
class BaseTitle(P4lModelLang):
title = models.CharField(max_length=2048, blank=False, null=False, db_index=True)
class Meta(P4lModelLang.Meta):
@@ -137,12 +137,6 @@
record = models.ForeignKey('p4l.Record', related_name="subjectMeetings", db_index=True)
-class CorporateBody(P4lModel):
- label = models.CharField(max_length=2048, blank=False, null=False, db_index=True) #rdfs:label
- acronym = models.CharField(max_length=2048, blank=True, null=True, db_index=True) #iiep:acronym
- class Meta(P4lModel.Meta):
- unique_together = ['label','acronym']
-
class Record(P4lModel):
uri = models.URLField(max_length=2048, unique=True, db_index=True) #subject
subjects = models.ManyToManyField('p4l.Subject') #dct:subject # Thesaurus with no country
@@ -169,12 +163,14 @@
#series = foreign key from 'p4l.Serie' #iiep:serie
#authors = foreign key from 'p4l.Author' #iiep:author
#subjectPersons = foreign key from 'p4l.SubjectPerson' #iiep:subjectPerson
- subjectCorporateBodies = models.ManyToManyField('p4l.CorporateBody') #iiep:subjectCorporateBody # Organisation ?
+ subjectCorporateBodies = models.ManyToManyField('p4l.CorporateAuthor', related_name='recordsSubjectCorporateBody') #iiep:subjectCorporateBody
#subjectMeetings = foreign key from 'p4l.SubjectMeeting' #iiep:subjectMeeting
- #corporateAuthors = foreign key from 'p4l.CorporateAuthor' #iiep:corporateAuthor # Organisation ?
+ corporateAuthors = models.ManyToManyField('p4l.CorporateAuthor', related_name='recordsCorporateAuthor') #iiep:subjectCorporateBody
#urls foreign Key from Url #iiep:url
recordType = models.URLField(max_length=2048) #dct:type
+
isDocumentPart = models.BooleanField() #iiep:isDocumentPart
+ isMultilingual = models.BooleanField() #iiep:isMultilingual
def __unicode__(self):
return "Record id %s { identifier: %s, uri: %s, editionStatement: %s, recordType: %s, isDocumentPart: %s, notes: %s, language : %s}" \