src/p4l/management/commands/dump_record.py
changeset 107 48440ff95906
parent 103 468349edbf7f
child 126 a345f1a67bf1
equal deleted inserted replaced
106:71684a2ea502 107:48440ff95906
    15 
    15 
    16 from django.core.management import BaseCommand
    16 from django.core.management import BaseCommand
    17 from django.core.management.base import CommandError
    17 from django.core.management.base import CommandError
    18 from django.db.models.fields.related import ForeignKey
    18 from django.db.models.fields.related import ForeignKey
    19 
    19 
    20 from p4l.management.constants import (GRAPH_NAMESPACES, RDF, get_empty_graph, 
    20 from p4l.mapping.constants import GRAPH_NAMESPACES, RDF, get_empty_graph
    21     IIEP, DCT)
    21 from p4l.mapping import RecordSerializer
    22 from p4l.mapping.serializers import (ModelSerializer, SimpleFieldSerializer, 
       
    23     BooleanFieldSerializer, RelatedFieldSerializer)
       
    24 from p4l.models.data import Record
    22 from p4l.models.data import Record
    25 from p4l.utils import show_progress
    23 from p4l.utils import show_progress
    26 from rdflib.namespace import RDFS
       
    27 
    24 
    28 
    25 
    29 logger = logging.getLogger(__name__)
    26 logger = logging.getLogger(__name__)
    30 
    27 
    31 class ImprintSerializer(ModelSerializer):
       
    32     
       
    33     imprintCity = SimpleFieldSerializer(predicate=IIEP.imprintCity, lang_field='lang')
       
    34     publisher = SimpleFieldSerializer(predicate=IIEP.publisher, lang_field='lang')
       
    35     imprintDate = SimpleFieldSerializer(predicate=IIEP.imprintDate, lang_field='lang')
       
    36 
       
    37 
       
    38 class VolumeIssueSerializer(ModelSerializer):
       
    39     volume = SimpleFieldSerializer(predicate=IIEP.volume, lang_field='lang')
       
    40     number = SimpleFieldSerializer(predicate=IIEP.number, lang_field='lang')
       
    41 
       
    42 
       
    43 class MeetingSerializer(ModelSerializer):
       
    44     label = SimpleFieldSerializer(predicate=RDFS.label, lang_field='lang')
       
    45     meetingNumber = SimpleFieldSerializer(predicate=IIEP.meetingNumber, lang_field='lang')
       
    46     meetingPlace = SimpleFieldSerializer(predicate=IIEP.meetingPlace, lang_field='lang')
       
    47     meetingDate = SimpleFieldSerializer(predicate=IIEP.meetingDate, lang_field='lang')
       
    48     meetingYear = SimpleFieldSerializer(predicate=IIEP.meetingYear, lang_field='lang')
       
    49 
       
    50 class SubjectMeetingSerializer(ModelSerializer):
       
    51     label = SimpleFieldSerializer(predicate=RDFS.label)
       
    52     meetingNumber = SimpleFieldSerializer(predicate=IIEP.meetingNumber)
       
    53     meetingPlace = SimpleFieldSerializer(predicate=IIEP.meetingPlace)
       
    54     meetingDate = SimpleFieldSerializer(predicate=IIEP.meetingDate)
       
    55     meetingYear = SimpleFieldSerializer(predicate=IIEP.meetingYear)
       
    56 
       
    57 
       
    58 class SerieSerializer(ModelSerializer):
       
    59     title = SimpleFieldSerializer(predicate=DCT.title, lang_field='lang')
       
    60     volume = SimpleFieldSerializer(predicate=IIEP.volume, lang_field='lang')
       
    61 
       
    62 
       
    63 class UrlSerializer(ModelSerializer):
       
    64     address = SimpleFieldSerializer(predicate=IIEP.address)
       
    65     display = SimpleFieldSerializer(predicate=IIEP.display)
       
    66 
       
    67 
       
    68 
       
    69 class RecordSerializer(ModelSerializer):
       
    70     
       
    71     identifier = SimpleFieldSerializer(predicate=DCT.identifier)
       
    72     notes = SimpleFieldSerializer(predicate=IIEP.notes)
       
    73     editionStatement = SimpleFieldSerializer(predicate=IIEP.editionStatement)
       
    74     corporateAuthorLabel = SimpleFieldSerializer(predicate=IIEP.corporateAuthorLabel)
       
    75     recordType = SimpleFieldSerializer(predicate=DCT.type)
       
    76     isDocumentPart = BooleanFieldSerializer(predicate=IIEP.isDocumentPart)
       
    77     hidden = BooleanFieldSerializer(predicate=IIEP.hidden)
       
    78     restricted = BooleanFieldSerializer(predicate=IIEP.restricted)    
       
    79 
       
    80     language = RelatedFieldSerializer(many=False, value_field='uri', predicate=DCT.language) 
       
    81     otherLanguages = RelatedFieldSerializer(many=True, value_field='uri', predicate=IIEP.otherLanguage)
       
    82     subjects = RelatedFieldSerializer(many=True, value_field='uri', predicate=DCT.subject)
       
    83     themes = RelatedFieldSerializer(many=True, value_field='uri', predicate=IIEP.theme)
       
    84     countries = RelatedFieldSerializer(many=True, value_field='uri', predicate=IIEP.country)
       
    85     projectNames = RelatedFieldSerializer(many=True, value_field='uri', predicate=IIEP.projectName)
       
    86     subjectCorporateBodies = RelatedFieldSerializer(many=True, value_field='uri', predicate=IIEP.subjectCorporateBody) 
       
    87     corporateAuthors = RelatedFieldSerializer(many=True, value_field='uri', predicate=IIEP.corporateAuthor)
       
    88     audiences = RelatedFieldSerializer(many=True, value_field='uri', predicate=IIEP.audience)
       
    89     
       
    90     isbns = RelatedFieldSerializer(many=True, value_field='isbn', predicate=IIEP.isbn, lang_field='lang')
       
    91     issns = RelatedFieldSerializer(many=True, value_field='issn', predicate=IIEP.issn, lang_field='lang')
       
    92     collations = RelatedFieldSerializer(many=True, value_field='collation', predicate=IIEP.collation, lang_field='lang')
       
    93     documentCodes = RelatedFieldSerializer(many=True, value_field='documentCode', predicate=IIEP.documentCode, lang_field='lang')
       
    94     titles = RelatedFieldSerializer(many=True, value_field='title', predicate=IIEP.title, lang_field='lang')
       
    95     addedTitles = RelatedFieldSerializer(many=True, value_field='title', predicate=IIEP.addedTitle, lang_field='lang')
       
    96     titlesMainDocument = RelatedFieldSerializer(many=True, value_field='title', predicate=IIEP.titleMainDocument, lang_field='lang')
       
    97     abstracts = RelatedFieldSerializer(many=True, value_field='abstract', predicate=IIEP.abstract, lang_field='lang')
       
    98     periodicals = RelatedFieldSerializer(many=True, value_field='label', predicate=IIEP.periodical, lang_field='lang')
       
    99     authors = RelatedFieldSerializer(many=True, value_field='name', predicate=IIEP.author)
       
   100     subjectPersons = RelatedFieldSerializer(many=True, value_field='name', predicate=IIEP.subjectPerson)
       
   101     
       
   102     imprints = ImprintSerializer(many=True, predicate=IIEP.imprint)
       
   103     volumeIssues = VolumeIssueSerializer(many=True, predicate=IIEP.volumeIssue)
       
   104     meetings = MeetingSerializer(many=True, predicate=IIEP.meeting)
       
   105     subjectMeetings = SubjectMeetingSerializer(many=True, predicate=IIEP.subjectMeeting)
       
   106     series = SerieSerializer(many=True, predicate=IIEP.serie)
       
   107     urls = UrlSerializer(many=True, predicate=IIEP.url)
       
   108     
       
   109     
       
   110     class Meta:
       
   111         type = IIEP.Record
       
   112         uri_fieldname = "uri"
       
   113 
    28 
   114 class Command(BaseCommand):
    29 class Command(BaseCommand):
   115 
    30 
   116     args = "file_path..."
    31     args = "file_path..."
   117 
    32