correct problem with ompulsory tags for content and tags indexation V01.56.01
authorymh <ymh.work@gmail.com>
Fri, 15 May 2015 01:23:39 +0200
changeset 1373 c9ed2ae1a902
parent 1372 b82668d5bc1c
child 1374 d5472c8f2a06
correct problem with ompulsory tags for content and tags indexation
.settings/org.eclipse.core.resources.prefs
src/ldt/ldt/__init__.py
src/ldt/ldt/indexation/search_indexes.py
src/ldt/ldt/ldt_utils/migrations/0001_initial.py
src/ldt/ldt/ldt_utils/models.py
src/ldt/ldt/text/models.py
src/ldt/ldt/user/admin.py
--- a/.settings/org.eclipse.core.resources.prefs	Wed May 13 02:08:15 2015 +0200
+++ b/.settings/org.eclipse.core.resources.prefs	Fri May 15 01:23:39 2015 +0200
@@ -7,6 +7,7 @@
 encoding//src/ldt/ldt/indexation/signals.py=utf-8
 encoding//src/ldt/ldt/indexation/tests.py=utf-8
 encoding//src/ldt/ldt/ldt_utils/events.py=utf-8
+encoding//src/ldt/ldt/ldt_utils/migrations/0001_initial.py=utf-8
 encoding//src/ldt/ldt/ldt_utils/views/ldt_json.py=utf-8
 encoding//src/ldt/ldt/management/commands/createmediacontent.py=utf-8
 encoding//src/ldt/ldt/management/commands/synciri.py=utf-8
--- a/src/ldt/ldt/__init__.py	Wed May 13 02:08:15 2015 +0200
+++ b/src/ldt/ldt/__init__.py	Fri May 15 01:23:39 2015 +0200
@@ -1,6 +1,6 @@
 __all__ = ["VERSION", "get_version", "__version__"]
 
-VERSION = (1, 56, 00, "final", 0)
+VERSION = (1, 56, 01, "final", 0)
 
 
 def get_version():
--- a/src/ldt/ldt/indexation/search_indexes.py	Wed May 13 02:08:15 2015 +0200
+++ b/src/ldt/ldt/indexation/search_indexes.py	Fri May 15 01:23:39 2015 +0200
@@ -18,7 +18,7 @@
     ensemble_id = indexes.CharField(model_attr='ensemble_id', indexed=False, stored=True)
     cutting_id = indexes.CharField(model_attr='cutting_id', indexed=False, stored=True)
     element_id = indexes.CharField(model_attr='element_id', indexed=False, stored=True)
-    tags = indexes.CharField(model_attr='tags', stored=True)
+    tags = indexes.CharField(model_attr='get_tags', stored=True)
     title = indexes.CharField(model_attr='title', stored=True)
     abstract = indexes.CharField(model_attr='abstract', stored=True)
     duration = indexes.IntegerField(model_attr='duration', indexed=False, stored=True)
@@ -62,7 +62,7 @@
 
 class ContentIndex(indexes.SearchIndex, indexes.Indexable):
     text = indexes.CharField(document=True, use_template=True)
-    tags = indexes.CharField(model_attr='tags', indexed=True, stored=False, null=True)
+    tags = indexes.CharField(model_attr='get_tags', indexed=True, stored=False, null=True)
     title = indexes.CharField(model_attr='title', indexed=True, stored=True)
     abstract = indexes.CharField(model_attr='description', indexed=True, stored=False, null=True)
     
--- a/src/ldt/ldt/ldt_utils/migrations/0001_initial.py	Wed May 13 02:08:15 2015 +0200
+++ b/src/ldt/ldt/ldt_utils/migrations/0001_initial.py	Fri May 15 01:23:39 2015 +0200
@@ -129,7 +129,7 @@
                 ('audio_href', models.CharField(max_length=512, null=True, blank=True)),
                 ('content', models.ForeignKey(to='ldt_utils.Content')),
                 ('project_obj', models.ForeignKey(to='ldt_utils.Project', null=True)),
-                ('tags', taggit.managers.TaggableManager(to='taggit.Tag', through='taggit.TaggedItem', help_text='A comma-separated list of tags.', verbose_name='Tags')),
+                ('tags', taggit.managers.TaggableManager(to='taggit.Tag', through='taggit.TaggedItem', blank=True, help_text='A comma-separated list of tags.', verbose_name='Tags')),
             ],
             options={
                 'permissions': (('view_segment', 'Can view segment'),),
@@ -148,6 +148,6 @@
         migrations.AddField(
             model_name='content',
             name='tags',
-            field=taggit.managers.TaggableManager(to='taggit.Tag', through='taggit.TaggedItem', help_text='A comma-separated list of tags.', verbose_name='Tags'),
+            field=taggit.managers.TaggableManager(to='taggit.Tag', through='taggit.TaggedItem', blank=True, help_text='A comma-separated list of tags.', verbose_name='Tags'),
         ),
     ]
--- a/src/ldt/ldt/ldt_utils/models.py	Wed May 13 02:08:15 2015 +0200
+++ b/src/ldt/ldt/ldt_utils/models.py	Fri May 15 01:23:39 2015 +0200
@@ -1,6 +1,12 @@
 import datetime
+from ldt.core.models import Document
+from ldt.security import get_current_user_or_admin, set_current_user, \
+    get_current_user
+from ldt.security.manager import SafeManager
+from ldt.security.models import SafeModel
+from ldt.utils import generate_hash, url as url_utils
+from ldt.utils.web_url_management import get_web_url
 import logging
-import lxml.etree  # @UnresolvedImport
 import mimetypes
 import os.path
 import re
@@ -14,21 +20,16 @@
 from django.db import models
 from django.utils.translation import ugettext_lazy as _
 from guardian.shortcuts import assign_perm, remove_perm, get_perms
+import lxml.etree  # @UnresolvedImport
 from sorl.thumbnail import ImageField
 from taggit.managers import TaggableManager
 
-from ldt.core.models import Document
-from ldt.security import get_current_user_or_admin, set_current_user, \
-    get_current_user
-from ldt.security.manager import SafeManager
-from ldt.security.models import SafeModel
-from ldt.utils import generate_hash, url as url_utils
-from ldt.utils.web_url_management import get_web_url
 from utils import create_ldt, copy_ldt, create_empty_iri, update_iri, \
     generate_uuid
 
 from .events import post_project_save
 
+
 logger = logging.getLogger(__name__);
 
 class Author(SafeModel):
@@ -180,7 +181,7 @@
     authors = models.ManyToManyField("Author", blank=True, verbose_name=_('content.authors'))
     duration = models.IntegerField(null=True, blank=True, verbose_name=_('content.duration'))
     content_creation_date = models.DateTimeField(null=True, blank=True, verbose_name=_('content.content_creation_date'))
-    tags = TaggableManager()
+    tags = TaggableManager(blank=True)
     media_obj = models.ForeignKey("Media", blank=True, null=True)
     image = ImageField(upload_to="thumbnails/contents/", default=get_content_image_default, max_length=200)
     front_project = models.ForeignKey("Project", null=True, blank=True)
@@ -532,22 +533,25 @@
         return locals()
     
     nb_annotations = property(**nb_annotations())
+    
+    def get_tags(self):
+        return ",".join([t.name for t in self.tags.all()])
 
 POL_INDICES = {
     'pol_positive' : 0,
     'pol_negative' : 1,
     'pol_reference' : 2,
-    'pol_question' : 3,               
+    'pol_question' : 3,
 }    
 
 
 class ContentStat(models.Model):
     
-    def __init__(self, *args, **kwargs):                
+    def __init__(self, *args, **kwargs):
         super(ContentStat, self).__init__(*args, **kwargs)
         if self.annotation_volume_str is None and self.polemics_volume_str is None:
             self.__init_empty_stat()
-    
+
     content = models.OneToOneField("Content", blank=False, null=False, related_name='stat_annotation', verbose_name=_("content_stat.content"), unique=True, db_index=True)
     annotation_volume_str = models.CommaSeparatedIntegerField(max_length=1024, null=True, blank=True, verbose_name=_("content_stat.annotations_volume"))
     polemics_volume_str = models.CommaSeparatedIntegerField(max_length=1024, null=True, blank=True, verbose_name=_("content_stat.polemics_volume"))
@@ -808,7 +812,7 @@
     ensemble_id = models.CharField(max_length=512, unique=False, db_index=True)
     cutting_id = models.CharField(max_length=512, unique=False, db_index=True)    
     element_id = models.CharField(max_length=512, unique=False, db_index=True)
-    tags = TaggableManager()
+    tags = TaggableManager(blank=True)
     title = models.CharField(max_length=2048, unique=False, null=True, blank=True)
     duration = models.IntegerField(null=True)
     start_ts = models.IntegerField(null=True)
--- a/src/ldt/ldt/text/models.py	Wed May 13 02:08:15 2015 +0200
+++ b/src/ldt/ldt/text/models.py	Fri May 15 01:23:39 2015 +0200
@@ -49,13 +49,13 @@
     def tag_list(): #@NoSelf
         def fget(self):
             #return [t.name for t in Tag.objects.get_for_object(self)]
-            return self.tags.names()
+            return self.tags_field.names()
         
         return locals()
         
     
     def get_tag_list(self): 
-        return self.tags.names()
+        return self.tags_field.names()
 
 
     def __unicode__(self):
--- a/src/ldt/ldt/user/admin.py	Wed May 13 02:08:15 2015 +0200
+++ b/src/ldt/ldt/user/admin.py	Fri May 15 01:23:39 2015 +0200
@@ -1,18 +1,26 @@
+from ldt.user.forms import AdminUserCreationForm, AdminUserChangeForm
+from ldt.user.models import GroupProfile, LdtUser
+
 from django.contrib import admin
 from django.contrib.auth.admin import UserAdmin
 from django.contrib.auth.models import Group
 from django.utils.translation import gettext_lazy as _
 from guardian.admin import GuardedModelAdmin
-from ldt.user.forms import AdminUserCreationForm, AdminUserChangeForm
-from ldt.user.models import GroupProfile, LdtUser
-
 
 
 class GroupProfileInline(admin.StackedInline):
     model = GroupProfile
 
+
 class GroupAdmin(GuardedModelAdmin):
-    inlines = [GroupProfileInline, ]
+    def add_view(self, *args, **kwargs):
+        self.inlines = []
+        return super(GroupAdmin, self).add_view(*args, **kwargs)
+
+    def change_view(self, *args, **kwargs):
+        self.inlines = [GroupProfileInline]
+        return super(GroupAdmin, self).change_view(*args, **kwargs)
+
 
 class LdtUserAdmin(UserAdmin):
     form = AdminUserChangeForm