--- 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