]> git.parisson.com Git - telemeta.git/commitdiff
vocabulare user/admin change
authornicolas neto <nicolasxv3@gmail.com>
Thu, 6 Jul 2017 11:28:05 +0000 (13:28 +0200)
committernicolas neto <nicolasxv3@gmail.com>
Thu, 6 Jul 2017 11:28:05 +0000 (13:28 +0200)
app/settings.py
telemeta/context_processors.py [new file with mode: 0644]
telemeta/migrations/0035_auto__chg_field_recordingcontext_notes__chg_field_recordingcontext_val.py
telemeta/models/enum.py
telemeta/templates/telemeta/admin_enumerations.html
telemeta/templates/telemeta/base.html
telemeta/templates/telemeta/enumeration.html
telemeta/urls.py
telemeta/views/admin.py
telemeta/views/enum.py
telemeta/views/home.py

index d7f3035566ed8102bd711fd871f406f2a8a0b57d..b174104f1f9f15a461dba729b3eeba47a4b4a580 100644 (file)
@@ -181,6 +181,7 @@ TEMPLATE_CONTEXT_PROCESSORS = (
     "django.core.context_processors.i18n",
     "django.core.context_processors.media",
     'django.core.context_processors.static',
+    'telemeta.context_processors.menu',
     'django.contrib.messages.context_processors.messages',
 )
 
diff --git a/telemeta/context_processors.py b/telemeta/context_processors.py
new file mode 100644 (file)
index 0000000..a9e54cc
--- /dev/null
@@ -0,0 +1,5 @@
+from django.conf import settings
+from telemeta.views.enum import *
+
+def menu(request):
+    return {'menu': EnumView().enu}
\ No newline at end of file
index 6e2486ffcb54a2af0f0c4763e0c378b8e77a3d51..153359e406cb446dcac4c6ee4838d04f38d7bf69 100644 (file)
@@ -339,8 +339,7 @@ class Migration(SchemaMigration):
         # Changing field 'MediaItem.comment'
         db.alter_column('media_items', 'comment', self.gf('telemeta.models.fields.TextField')())
 
-        # Changing field 'MediaItem.code'
-        db.alter_column('media_items', 'code', self.gf('telemeta.models.fields.CharField')(unique=True, max_length=250))
+
 
         # Changing field 'MediaItem.location_comment'
         db.alter_column('media_items', 'location_comment', self.gf('telemeta.models.fields.CharField')(max_length=250))
index 79a2068bfabab244ffcb685497f9bdde7b452e68..55bc50a974785357877b4a0479225bc1358195f8 100644 (file)
@@ -29,6 +29,11 @@ class Enumeration(ModelCore):
     hidden = False
     value = CharField(_('value'), required=True, unique=True)
     notes = TextField(_('notes'))
+    admin = False
+
+    def _set_admin(self):
+        self.admin = not self.admin
+        print self.admin
 
     def __unicode__(self):
         return self.value
@@ -46,6 +51,7 @@ class PhysicalFormat(Enumeration):
         db_table = 'physical_formats'
         verbose_name = _("archive format")
 
+
 class PublishingStatus(Enumeration):
     "Collection publishing status"
 
@@ -53,6 +59,7 @@ class PublishingStatus(Enumeration):
         db_table = 'publishing_status'
         verbose_name = _("secondary edition")
 
+
 class AcquisitionMode(Enumeration):
     "Mode of acquisition of the collection"
 
@@ -60,6 +67,7 @@ class AcquisitionMode(Enumeration):
         db_table = 'acquisition_modes'
         verbose_name = _("mode of acquisition")
 
+
 class MetadataAuthor(Enumeration):
     "Collection metadata author"
 
@@ -67,6 +75,7 @@ class MetadataAuthor(Enumeration):
         db_table = 'metadata_authors'
         verbose_name = _("record author")
 
+
 class MetadataWriter(Enumeration):
     "Collection metadata writer"
 
@@ -74,6 +83,7 @@ class MetadataWriter(Enumeration):
         db_table = 'metadata_writers'
         verbose_name = _("record writer")
 
+
 class LegalRight(Enumeration):
     "Collection legal rights"
 
@@ -81,6 +91,7 @@ class LegalRight(Enumeration):
         db_table = 'legal_rights'
         verbose_name = _("legal rights")
 
+
 class RecordingContext(Enumeration):
     "Collection recording context"
 
index 4d0236a6b3437606f1a22108b8f5952b94524526..a6204b96d4074e6ce592dec2b0e285bf33d88f5c 100644 (file)
@@ -3,25 +3,44 @@
 {% load i18n %}
 
 {% block title %}
-<h1><img src="{{ STATIC_URL }}telemeta/images/admin_red.png" style="vertical-align:middle" /> {% trans "Administration" %} > {% trans "Enumerations" %}</h1>
+    <h1><img src="{{ STATIC_URL }}telemeta/images/admin_red.png" style="vertical-align:middle" /> {% trans "Administration" %} > {% trans "Enumerations" %}</h1>
 {% endblock %}
 
 {% block tabcontents %}
-{% if enumerations %}
-  <table class="listing">
-   <thead>
-    <tr><th>{% trans "Title"%}</th></tr>
-   </thead><tbody>
-    {% for enum in enumerations %}
-    <tr><td>
-      <a href="{% url "telemeta-enumeration-edit" enum.id %}">{% trans enum.name|capfirst %}</a>
-    </td></tr>
-    {% endfor %}
-   </tbody>
-  </table>
-  {% else %}
-    <p class="help">{% trans "No enumerations" %}</p>
- {% endif %}
+    {% if enumerations %}
+        <form id="_updateenum" method="POST" action="{% url "telemeta-admin-enumerations-update"  %}">{% csrf_token %}
+        <table class="listing">
+            <thead>
+            <tr><th class="sel">&nbsp;</th>
+
+                <th>{% trans "Title"%}</th>
+            </thead><tbody>
+        {% for enum in enumerations %}
+            <tr>
+                {% if perms.telemeta.change_keyword %}
+                    <td><input type="checkbox" name="sel" value="{{enum.id}}"{% if enum.admin %} checked {% endif %} /></td>
+                {% else %}
+                    <td></td>
+                {% endif %}
+                <td>
+                    <a href="{% url "telemeta-enumeration-edit" enum.id %}">{% trans enum.name|capfirst %}</a>
+                </td>
+                <td></td>
+            </tr>
+        {% endfor %}
+        </tbody>
+        </table>
+        <div class="buttons">
+            <br />
+            {% if perms.telemeta.change_keyword %}
+                <a href="#" class="component_icon button icon_cancel"
+                   onclick="document.getElementById('_updateenum').submit(); return false;">{% trans "Hide selected items" %}</a>
+            {% endif %}
+        </div>
+        </form>
+    {% else %}
+        <p class="help">{% trans "No enumerations" %}</p>
+    {% endif %}
 {% endblock %}
 
 
index 6a6d81025b951f6cd64e81e7466f2f79ab96a588..d361183fe6a152080dd71527927d054e149bcd97 100644 (file)
 
                             <li><a href="{% url "haystack_advance_search" %}"
                                    class="orange">{% trans "Advanced search" %}</a></li>
-                              <li><a href="#vocabulary#" class="darkblue">{% trans "Vocabulary" %}</a>
-                            {% if user.is_staff %}
+                            <li><a href="#vocabulary#" class="darkblue">{% trans "Vocabulary" %}</a>
+                                {% if user.is_staff %}
 
                                     <ul>
                                         <li>
                                         <li><a href="{% url "telemeta-instrument-edit" %}">{% trans "Instruments" %}</a>
                                         </li>
                                         <li>
-                                            <a href="{% url "telemeta-instrument-alias-edit" %}">{% trans "Instrument aliases" %}</a>
+                                            <a href="{% url "telemeta-instrument-alias-edit" %}">{% trans "Instrument (vernaculare)" %}</a>
                                         </li>
                                     </ul>
-                                </li>
+                                    </li>
 
-                            {% else %}
+                                {% else %}
 
                                     <ul>
                                         <li>
                                             <a href="{% url "telemeta-enumerations" %}">{% trans "Enumerations" %}</a>
                                         </li>
                                         <li><a href="{% url "telemeta-instruments" %}">{% trans "Instruments" %}</a>
-                                        </li>
                                         <li>
-                                            <a href="{% url "telemeta-instrument-alias" %}">{% trans "Instrument aliases" %}</a>
+                                            <a href="{% url "telemeta-instrument-alias-edit" %}">{% trans "Instruments (vernaculare)" %}</a>
+                                        </li>
                                         </li>
+                                        {% for enu in menu %}
+                                            <li>
+                                                <a href="{% url "telemeta-enumeration" enu.id %}">
+
+                                                    {{ enu.name |capfirst }}
+
+
+                                                </a>
+                                            </li>
+                                        {% endfor %}
                                     </ul>
-                                </li>
-                            {% endif %}
+                                    </li>
+                                {% endif %}
 
                             {% if user.is_authenticated %}
                                 {% if user.is_staff or not perms.telemeta.can_not_view_users_and_profiles %}
index 92d69fab99d3526a785f18ef78e2c8a664cb452f..e9aa3a924e8362717c0c0ed9de28ac0cde281b0e 100644 (file)
@@ -4,10 +4,11 @@
 {% block head_title %}{% trans "Enumeration" %} : {{ enumeration_name|capfirst }} - {{ block.super }}{% endblock %}
 
 {% block title %}
-    <h1><img src="{{ STATIC_URL }}telemeta/images/collections_red.png" style="vertical-align:middle" />  <a href="{% url "telemeta-enumerations" %}">{% trans "Enumerations" %}</a></h1>
+    <h1><img src="{{ STATIC_URL }}telemeta/images/collections_red.png" style="vertical-align:middle" />{{ enumeration_name|capfirst }}</h1>
 {% endblock %}
 
 {% block tabcontents %}
+
     {% if enumeration_values %}
         <table class="listing">
             <thead>
index 5b5436ff21badfb0a5d071ac25377489dd1c8ceb..f88adcbb5458184eb689537cd2a1263d319ad000 100644 (file)
@@ -145,6 +145,7 @@ urlpatterns = patterns('',
                        url(r'^admin/$', admin_view.admin_index, name="telemeta-admin"),
                        url(r'^admin/general/$', admin_view.admin_general, name="telemeta-admin-general"),
                        url(r'^admin/enumerations/$', admin_view.admin_enumerations, name="telemeta-admin-enumerations"),
+                       url(r'^admin/enumerations/update/$', admin_view.set_admin_enumeration, name="telemeta-admin-enumerations-update"),
                        url(r'^admin/users/$', admin_view.admin_users, name="telemeta-admin-users"),
 
                        # instruments
index c940931b2e343e841d2bfb1336ae699940057e41..bfefdc6817552a462758f68a37cc5c8820e90fee 100644 (file)
@@ -52,9 +52,10 @@ class AdminView(object):
         enumerations = []
         for model in models:
             if issubclass(model, Enumeration):
-                if not model.hidden:
+                if not model.hidden :
                     enumerations.append({"name": model._meta.verbose_name,
-                                         "id": model._meta.module_name})
+                                         "id": model._meta.module_name,
+                                         "admin": model.admin})
 
         cmp = lambda obj1, obj2: unaccent_icmp(obj1['name'], obj2['name'])
         enumerations.sort(cmp)
@@ -78,7 +79,6 @@ class AdminView(object):
     @method_decorator(permission_required('telemeta.change_keyword'))
     def edit_enumeration(self, request, enumeration_id):
         atr = "";
-        print enumeration_id
         enumeration = self.__get_enumeration(enumeration_id)
         if enumeration == None:
             raise Http404
@@ -161,6 +161,26 @@ class AdminView(object):
 
         return self.edit_enumeration(request, enumeration_id)
 
+    @method_decorator(permission_required('telemeta.change_keyword'))
+    def set_admin_enumeration(self, request):
+
+        if request.method == 'POST':
+            print request.POST.getlist('sel')
+            from django.db.models import get_models
+            models = get_models(telemeta.models)
+
+            for model in models:
+                if issubclass(model, Enumeration):
+                    if model._meta.module_name in request.POST.getlist('sel'):
+                        print model._meta.module_name
+                        model.admin = True
+                    else :
+                        print model._meta.module_name
+                        model.admin = False
+
+
+        return self.admin_enumerations(request)
+
     @method_decorator(permission_required('telemeta.change_keyword'))
     def edit_enumeration_value(self, request, enumeration_id, value_id):
 
@@ -177,8 +197,8 @@ class AdminView(object):
         vars["enumeration_record"] = record
         vars["enumeration_records"] = enumeration.objects.all()
         vars['room'] = get_room(content_type=content_type,
-                                   id=record.id,
-                                   name=record.value)
+                                id=record.id,
+                                name=record.value)
         return render(request, 'telemeta/enumeration_edit_value.html', vars)
 
     @method_decorator(permission_required('telemeta.change_keyword'))
index d6fa1c0c7b236af133b894c8add3fe93bda43f26..aafef050ddbc64e29aa85fc845580b29ea380cc9 100644 (file)
@@ -2,6 +2,10 @@ from telemeta.views.core import *
 import telemeta.models
 
 class EnumView(object):
+    enu = []
+
+    def __init__(self):
+        self.enu = self.__get_enumerations_list()
 
     def __get_admin_context_vars(self):
         return {"enumerations": self.__get_enumerations_list()}
@@ -13,7 +17,7 @@ class EnumView(object):
         atr = "";
         print enumeration_id
         enumeration = self.__get_enumeration(enumeration_id)
-        if enumeration == None:
+        if enumeration == None or enumeration.admin:
             raise Http404
         vars = self.__get_admin_context_vars()
         vars["enumeration_id"] = enumeration._meta.module_name
@@ -38,6 +42,15 @@ class EnumView(object):
 
         return render(request, 'telemeta/enumeration.html', vars)
 
+    @property
+    def get_enumerations_list(self):
+        test = {
+            "ceci",
+            "est",
+            "un",
+            "test"}
+        return test
+
     def __get_enumerations_list(self):
         from django.db.models import get_models
         models = get_models(telemeta.models)
@@ -45,12 +58,19 @@ class EnumView(object):
         enumerations = []
         for model in models:
             if issubclass(model, Enumeration):
-                if not model.hidden:
+
+                if not model.hidden and not model.admin:
                     enumerations.append({"name": model._meta.verbose_name,
-                                         "id": model._meta.module_name})
+                                           "id": model._meta.module_name
+                                         })
+                else:
+                    print model._meta.module_name + "____"
+                    print model.admin
 
         cmp = lambda obj1, obj2: unaccent_icmp(obj1['name'], obj2['name'])
         enumerations.sort(cmp)
+        print enumerations
+        self.enu = enumerations
         return enumerations
 
     def __get_enumeration(self, id):
@@ -95,4 +115,4 @@ class EnumView(object):
             lookup = "%s__exact" % atr
             c.append(MediaItemKeyword.objects.filter(**{lookup: enum.__getattribute__("id")}).count())
         c.reverse()
-        return c
\ No newline at end of file
+        return c
index eee873c523b3a4ebf3e8d6d814bb12509fa13cd7..c1cb27f527650a77e731b2ab4ef95cd9c17ae184 100644 (file)
@@ -23,7 +23,7 @@
 
 from telemeta.views.core import *
 from saved_searches.models import SavedSearch
-
+from telemeta.views.enum import *
 
 class HomeView(object):
     """Provide general web UI methods"""