# HG changeset patch # User ymh # Date 1431645819 -7200 # Node ID c9ed2ae1a902c2ec93173ca14c4e724d2e5f94f6 # Parent b82668d5bc1cf5760b8a5276fced94f66c3f05eb correct problem with ompulsory tags for content and tags indexation diff -r b82668d5bc1c -r c9ed2ae1a902 .settings/org.eclipse.core.resources.prefs --- 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 diff -r b82668d5bc1c -r c9ed2ae1a902 src/ldt/ldt/__init__.py --- 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(): diff -r b82668d5bc1c -r c9ed2ae1a902 src/ldt/ldt/indexation/search_indexes.py --- 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) diff -r b82668d5bc1c -r c9ed2ae1a902 src/ldt/ldt/ldt_utils/migrations/0001_initial.py --- 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'), ), ] diff -r b82668d5bc1c -r c9ed2ae1a902 src/ldt/ldt/ldt_utils/models.py --- 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) diff -r b82668d5bc1c -r c9ed2ae1a902 src/ldt/ldt/text/models.py --- 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): diff -r b82668d5bc1c -r c9ed2ae1a902 src/ldt/ldt/user/admin.py --- 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