#content {\r
position: relative;\r
}\r
+\r
#content ul, #content ul ul, #content ol {\r
list-style: square;\r
padding: .7em;\r
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-02-15 22:08+0100\n"
+"POT-Creation-Date: 2010-02-15 23:57+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Olivier Guilyardi <olivier samalyse com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Enter a valid duration in HH:MM[:ss] format."
msgstr "Entrez une durée valide au format HH:MM[:ss]"
-#: models/enum.py:41 models/enum.py:124
+#: models/enum.py:41 models/enum.py:139
msgid "value"
msgstr "valeur"
-#: models/enum.py:123
+#: models/enum.py:57 models/media.py:79
+msgid "archive format"
+msgstr "format d'archivage"
+
+#: models/enum.py:64 models/media.py:86
+msgid "secondary edition"
+msgstr "réédition"
+
+#: models/enum.py:71 models/media.py:101
+msgid "mode of acquisition"
+msgstr "mode d'acquisition"
+
+#: models/enum.py:78 models/media.py:104
+msgid "record author"
+msgstr "rédacteur fiche"
+
+#: models/enum.py:85 models/media.py:106
+msgid "record writer"
+msgstr "saisie fiche"
+
+#: models/enum.py:92 models/media.py:108
+msgid "legal rights"
+msgstr "droit d'utilisation"
+
+#: models/enum.py:99 models/media.py:113
+msgid "recording context"
+msgstr "contexte d'enregistrement"
+
+#: models/enum.py:106 models/media.py:122
+msgid "A/D conversion"
+msgstr "numérisation"
+
+#: models/enum.py:113 models/media.py:230
+msgid "vernacular style"
+msgstr "style vernaculaire"
+
+#: models/enum.py:120 models/media.py:239
+msgid "generic style"
+msgstr "style générique"
+
+#: models/enum.py:127 models/media.py:310
+msgid "keyword"
+msgstr "mot-clé"
+
+#: models/enum.py:134 models/media.py:93
+msgid "publisher / status"
+msgstr "éditeur / statut"
+
+#: models/enum.py:138
msgid "publisher"
msgstr "éditeur"
-#: models/enum.py:134 models/enum.py:146 models/instrument.py:41
-#: models/instrument.py:51 models/location.py:50 models/location.py:142
-#: models/media.py:347
-msgid "name"
-msgstr "nom"
-
-#: models/enum.py:138 models/enum.py:145 models/media.py:225
+#: models/enum.py:152 models/enum.py:156 models/media.py:225
msgid "population / social group"
msgstr "population / groupe social"
+#: models/enum.py:157 models/instrument.py:41 models/instrument.py:51
+#: models/location.py:50 models/location.py:142 models/media.py:347
+msgid "name"
+msgstr "nom"
+
#: models/instrument.py:62 models/instrument.py:75
msgid "instrument"
msgstr "instrument"
msgid "reference"
msgstr "référence"
-#: models/media.py:79
-msgid "archive format"
-msgstr "format d'archivage"
-
#: models/media.py:80 models/media.py:217
msgid "old code"
msgstr "ancienne cote"
msgid "number of components (medium / piece)"
msgstr "nb de composants (support / pièce)"
-#: models/media.py:86
-msgid "secondary edition"
-msgstr "réédition"
-
#: models/media.py:87
msgid "depositor / contributor"
msgstr "déposant / contributeur"
msgid "recordist identical to depositor"
msgstr "collecteur identique au déposant"
-#: models/media.py:93
-msgid "publisher / status"
-msgstr "éditeur / statut"
-
#: models/media.py:94
msgid "published"
msgstr "édité"
msgid "bibliographic references"
msgstr "références bibliographiques"
-#: models/media.py:101
-msgid "mode of acquisition"
-msgstr "mode d'acquisition"
-
#: models/media.py:102 models/media.py:242
msgid "comment"
msgstr "commentaire"
-#: models/media.py:104
-msgid "record author"
-msgstr "rédacteur fiche"
-
-#: models/media.py:106
-msgid "record writer"
-msgstr "saisie fiche"
-
-#: models/media.py:108
-msgid "legal rights"
-msgstr "droit d'utilisation"
-
#: models/media.py:109
msgid "copies"
msgstr "autres exemplaires"
msgid "recording year (until)"
msgstr "année d'enregistrement (jusqu'à)"
-#: models/media.py:113
-msgid "recording context"
-msgstr "context d'enregistrement"
-
#: models/media.py:114 models/media.py:219
msgid "approximative duration"
msgstr "durée approximative"
msgid "a_informer_07_03"
msgstr "a_informer_07_03"
-#: models/media.py:122
-msgid "A/D conversion"
-msgstr "numérisation"
-
#: models/media.py:160
msgid "states / nations"
msgstr "états / nations"
msgid "author"
msgstr "auteur"
-#: models/media.py:230
-msgid "vernacular name"
-msgstr "nom vernaculaire"
-
#: models/media.py:231
msgid "comments"
msgstr "commentaires"
msgid "cultural area"
msgstr "aire culturelle"
-#: models/media.py:239
-msgid "generic name"
-msgstr "nom générique"
-
#: models/media.py:240
msgid "recordist selection"
msgstr "sélection collecteur"
msgid "item"
msgstr "item"
-#: models/media.py:310
-msgid "keyword"
-msgstr "mot-clé"
-
#: models/media.py:321
msgid "scientific instrument"
msgstr "instrument scientifique"
msgid "Populations / Social groups"
msgstr "Populations / Groupes sociaux"
+#: templates/telemeta_default/enumeration_edit.html:4
+#: templates/telemeta_default/enumeration_edit.html:7
+#: templates/telemeta_default/enumeration_edit_value.html:4
+#: templates/telemeta_default/enumeration_edit_value.html:7
+msgid "Enumeration"
+msgstr "Enumération"
+
+#: templates/telemeta_default/enumeration_edit.html:12
+msgid "Add entry"
+msgstr "Ajouter une entrée"
+
+#: templates/telemeta_default/enumeration_edit.html:14
+#: templates/telemeta_default/enumeration_edit.html:26
+#: templates/telemeta_default/enumeration_edit_value.html:14
+msgid "Value"
+msgstr "Valeur"
+
+#: templates/telemeta_default/enumeration_edit.html:18
+msgid "Add"
+msgstr "Ajouter"
+
+#: templates/telemeta_default/enumeration_edit.html:40
+msgid "Remove selected items"
+msgstr "Supprimer les éléments sélectionnés"
+
+#: templates/telemeta_default/enumeration_edit.html:44
+msgid "This enumeration is empty"
+msgstr "Cette énumération est vide"
+
+#: templates/telemeta_default/enumeration_edit_value.html:12
+msgid "Modify an entry"
+msgstr "Modification d'une entrée"
+
+#: templates/telemeta_default/enumeration_edit_value.html:18
+msgid "Save"
+msgstr "Enregistrer"
+
+#: templates/telemeta_default/enumeration_edit_value.html:19
+msgid "Cancel"
+msgstr "Annuler"
+
#: templates/telemeta_default/geo_continents.html:5
#: templates/telemeta_default/geo_continents.html:26
#: templates/telemeta_default/geo_countries.html:5
class Meta(MetaCore):
abstract = True
+class MetaEnumeration(MetaCore):
+ ordering = ['value']
+
class PhysicalFormat(Enumeration):
"Collection physical format"
- class Meta(MetaCore):
+ class Meta(MetaEnumeration):
db_table = 'physical_formats'
+ verbose_name = _("archive format")
class PublishingStatus(Enumeration):
"Collection publishing status"
- class Meta(MetaCore):
+ class Meta(MetaEnumeration):
db_table = 'publishing_status'
+ verbose_name = _("secondary edition")
class AcquisitionMode(Enumeration):
"Mode of acquisition of the collection"
- class Meta(MetaCore):
+ class Meta(MetaEnumeration):
db_table = 'acquisition_modes'
+ verbose_name = _("mode of acquisition")
class MetadataAuthor(Enumeration):
"Collection metadata author"
- class Meta(MetaCore):
+ class Meta(MetaEnumeration):
db_table = 'metadata_authors'
+ verbose_name = _("record author")
class MetadataWriter(Enumeration):
"Collection metadata writer"
- class Meta(MetaCore):
+ class Meta(MetaEnumeration):
db_table = 'metadata_writers'
+ verbose_name = _("record writer")
class LegalRight(Enumeration):
"Collection legal rights"
- class Meta(MetaCore):
+ class Meta(MetaEnumeration):
db_table = 'legal_rights'
+ verbose_name = _("legal rights")
class RecordingContext(Enumeration):
"Collection recording context"
- class Meta(MetaCore):
+ class Meta(MetaEnumeration):
db_table = 'recording_contexts'
+ verbose_name = _("recording context")
class AdConversion(Enumeration):
"Collection digital to analog conversion status"
- class Meta(MetaCore):
+ class Meta(MetaEnumeration):
db_table = 'ad_conversions'
+ verbose_name = _("A/D conversion")
class VernacularStyle(Enumeration):
"Item vernacular style"
- class Meta(MetaCore):
+ class Meta(MetaEnumeration):
db_table = 'vernacular_styles'
+ verbose_name = _("vernacular style")
class GenericStyle(Enumeration):
"Item generic style"
- class Meta(MetaCore):
+ class Meta(MetaEnumeration):
db_table = 'generic_styles'
+ verbose_name = _("generic style")
class ContextKeyword(Enumeration):
"Keyword"
- class Meta(MetaCore):
+ class Meta(MetaEnumeration):
db_table = 'context_keywords'
+ verbose_name = _("keyword")
class Publisher(Enumeration):
"Collection publisher"
- class Meta(MetaCore):
+ class Meta(MetaEnumeration):
db_table = 'publishers'
+ verbose_name = _("publisher / status")
class PublisherCollection(ModelCore):
"Collection which belongs to publisher"
class Meta(MetaCore):
db_table = 'publisher_collections'
-class EthnicGroup(ModelCore):
+class EthnicGroup(Enumeration):
"Item ethnic group"
- name = CharField(_('name'), required=True)
- class Meta(MetaCore):
+ class Meta(MetaEnumeration):
db_table = 'ethnic_groups'
verbose_name = _('population / social group')
- def __unicode__(self):
- return self.name
-
class EthnicGroupAlias(ModelCore):
"Item ethnic group other name"
ethnic_group = ForeignKey('EthnicGroup', related_name="aliases", verbose_name=_('population / social group'))
- name = CharField(_('name'), required=True)
+ value = CharField(_('name'), required=True)
class Meta(MetaCore):
db_table = 'ethnic_group_aliases'
+ unique_together = (('ethnic_group', 'value'),)
alt_title = CharField(_('original title / translation'))
author = CharField(_('author'))
vernacular_style = WeakForeignKey('VernacularStyle', related_name="items",
- verbose_name=_('vernacular name'))
+ verbose_name=_('vernacular style'))
context_comment = TextField(_('comments'))
external_references = TextField(_('published reference'))
moda_execut = CharField(_('moda_execut'))
collector_from_collection = BooleanField(_('recordist as in collection'))
cultural_area = CharField(_('cultural area'))
generic_style = WeakForeignKey('GenericStyle', related_name="items",
- verbose_name=_('generic name'))
+ verbose_name=_('generic style'))
collector_selection = CharField(_('recordist selection'))
creator_reference = CharField(_('reference'))
comment = TextField(_('comment'))
def ethnic_groups(self):
ids = self.filter(ethnic_group__isnull=False).values('ethnic_group');
- return EthnicGroup.objects.filter(pk__in=ids).order_by('name')
+ return EthnicGroup.objects.filter(pk__in=ids)
@staticmethod
def by_fuzzy_collector_q(pattern):
{% extends "telemeta/admin.html" %}
+{% load i18n %}
-{% block tabcontents %}
- <h4>Manage {{ enumeration_name_plural|capfirst }}</h4>
-
+{% block head_title %}{% trans "Enumeration" %}: {{ enumeration_name|capfirst }} - {{ block.super }}{% endblock %}
+{% block tabcontents %}
+ <h4>{% trans "Enumeration" %}: {{ enumeration_name|capfirst }}</h4>
<form class="addnew" id="addenum" method="post"
action="{% url telemeta-enumeration-add enumeration_id %}">
<fieldset>
- <legend>Add {{ enumeration_name|capfirst }}</legend>
+ <legend>{% trans "Add entry" %}</legend>
<div class="field">
- <label>Value: <input type="text" name="value"></label>
+ <label>{% trans "Value" %}: <input type="text" name="value"></label>
</div>
<div class="buttons">
- <input type="submit" name="add" value="Add">
+ <input type="submit" name="add" value="{% trans 'Add' %}">
</div>
</fieldset>
</form>
<form method="POST" action="{% url telemeta-enumeration-update enumeration_id %}">
<table class="listing">
<thead>
- <tr><th class="sel"> </th><th>Value</th>
+ <tr><th class="sel"> </th><th>{% trans "Value"%}</th>
</tr>
</thead><tbody>
</tbody>
</table>
<div class="buttons">
- <input type="submit" name="remove" value="Remove selected items" />
+ <input type="submit" name="remove" value="{% trans 'Remove selected items' %}" />
</div>
</form>
{% else %}
- <p class="help">This enumeration is empty.</p>
+ <p class="help">{% trans "This enumeration is empty" %}</p>
{% endif %}
<br style="clear: right"/>
{% extends "telemeta/admin.html" %}
+{% load i18n %}
+
+{% block head_title %}{% trans "Enumeration" %}: {{ enumeration_name|capfirst }} - {{ block.super }}{% endblock %}
{% block tabcontents %}
- <h4>Manage {{ enumeration_name_plural|capfirst }}</h4>
+ <h4>{% trans "Enumeration" %}: {{ enumeration_name|capfirst }}</h4>
<form class="mod" id="addenum" method="post"
action="{% url telemeta-enumeration-record-update enumeration_id,enumeration_record.id %}">
<fieldset>
- <legend>Modify {{ enumeration_name|capfirst }}</legend>
+ <legend>{% trans "Modify an entry" %}</legend>
<div class="field">
- <label>Value: <input type="text" name="value" value="{{enumeration_record.value}}" /></label>
+ <label>{% trans "Value" %}: <input type="text" name="value" value="{{enumeration_record.value}}" /></label>
</div>
<div class="buttons">
- <input type="submit" name="save" value="Save">
- <input type="submit" name="cancel" value="Cancel">
+ <input type="submit" name="save" value="{% trans 'Save' %}">
+ <input type="submit" name="cancel" value="{% trans 'Cancel' %}">
</div>
</fieldset>
</form>
self.france.add_child(self.paris)
self.europe.add_child(self.belgique)
- self.a = EthnicGroup.objects.create(name="a")
- self.b = EthnicGroup.objects.create(name="b")
- self.c = EthnicGroup.objects.create(name="c")
- self.d = EthnicGroup.objects.create(name="d")
+ self.a = EthnicGroup.objects.create(value="a")
+ self.b = EthnicGroup.objects.create(value="b")
+ self.c = EthnicGroup.objects.create(value="c")
+ self.d = EthnicGroup.objects.create(value="d")
self.persepolis = MediaCollection(id=1, code="CNRSMH_E_1970_001_002", reference="A1", title="persepolis",
creator="Abraham LINCOLN", collector="Friedrich HEINZ", year_published=2009, is_published=True,
import telemeta
from telemeta.models import MediaItem, Location, MediaCollection, EthnicGroup
-from telemeta.models import dublincore
+from telemeta.models import dublincore, Enumeration
from telemeta.core import Component, ExtensionPoint
from telemeta.export import *
from telemeta.visualization import *
from telemeta.util.unaccent import unaccent
from telemeta.web import pages
import datetime
+from telemeta.util.unaccent import unaccent_icmp
class WebView(Component):
"""Provide web UI methods"""
enumerations = []
for model in models:
- if getattr(model, "is_enumeration", False):
- enumerations.append({"name": model._meta.verbose_name_plural,
+ if issubclass(model, Enumeration):
+ enumerations.append({"name": model._meta.verbose_name,
"id": model._meta.module_name})
+
+ cmp = lambda obj1, obj2: unaccent_icmp(obj1['name'], obj2['name'])
+ enumerations.sort(cmp)
return enumerations
def __get_admin_context_vars(self):
vars = self.__get_admin_context_vars()
vars["enumeration_id"] = enumeration._meta.module_name
vars["enumeration_name"] = enumeration._meta.verbose_name
- vars["enumeration_name_plural"] = enumeration._meta.verbose_name_plural
vars["enumeration_values"] = enumeration.objects.all()
return render_to_response('telemeta/enumeration_edit.html', vars)
vars = self.__get_admin_context_vars()
vars["enumeration_id"] = enumeration._meta.module_name
vars["enumeration_name"] = enumeration._meta.verbose_name
- vars["enumeration_name_plural"] = enumeration._meta.verbose_name_plural
vars["enumeration_record"] = enumeration.objects.get(id__exact=value_id)
return render_to_response('telemeta/enumeration_edit_value.html', vars)