--- a/src/ldt/ldt/ldt_utils/forms.py Thu Feb 02 16:12:17 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/forms.py Thu Feb 02 16:12:46 2012 +0100
@@ -51,7 +51,8 @@
media_input_type = forms.ChoiceField(required=False, label=_("content.media_input_type"), choices=(("upload", _("file_upload")), ("url", _("url")), ("link", _("existing_media")), ("create", _("create_media")), ("none", _("none_media"))))
groups = forms.ModelMultipleChoiceField(Group.objects.all(), required=False)
is_public = forms.BooleanField(required=False)
- front_project = forms.ModelChoiceField(queryset=Project.objects.none(), required=False, label=_("content.front_project"))
+ front_project = forms.ModelChoiceField(queryset=Project.objects.none(), required=False, label=_("content.front_project"))
+ duration = forms.IntegerField(required=True)
def clean_iri_id(self):
data = self.cleaned_data.get('iri_id')
--- a/src/ldt/ldt/ldt_utils/views/front.py Thu Feb 02 16:12:17 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/views/front.py Thu Feb 02 16:12:46 2012 +0100
@@ -120,12 +120,10 @@
context_instance=RequestContext(request))
-@login_required
def search_index(request):
return ws_search_index(request, front_template=True)
-@login_required
def search_listing(request):
return ws_search_listing(request, front_template=True)
--- a/src/ldt/ldt/ldt_utils/views/workspace.py Thu Feb 02 16:12:17 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/views/workspace.py Thu Feb 02 16:12:46 2012 +0100
@@ -151,7 +151,6 @@
return render_to_response('ldt/ldt_utils/search_form.html', {'form': form} , context_instance=RequestContext(request))
-@login_required
def search_index(request, front_template=False):
sform = SearchForm(request.POST)
@@ -167,10 +166,11 @@
else:
results = get_results_with_context(field, search)
- Segment.safe_objects.check_perm = False # no permission policy for segments
- all_segments = Segment.safe_objects.filter(element_id__in=[e['element_id'] for e in results])
- all_projects = Project.safe_objects.filter(ldt_id__in=[e['project_id'] for e in results], state=2)
- all_contents = Content.safe_objects.filter(iri_id__in=[e['iri_id'] for e in results])
+ # Search results come from published project
+ # We do not apply permissions here since it has to be reached from unlogged users.
+ all_segments = Segment.objects.filter(element_id__in=[e['element_id'] for e in results])
+ all_projects = Project.objects.filter(ldt_id__in=[e['project_id'] for e in results], state=2)
+ all_contents = Content.objects.filter(iri_id__in=[e['iri_id'] for e in results])
viewable_projects_id = [p.ldt_id for p in all_projects]
complete_results = []
--- a/src/ldt/ldt/management/commands/statannotation.py Thu Feb 02 16:12:17 2012 +0100
+++ b/src/ldt/ldt/management/commands/statannotation.py Thu Feb 02 16:12:46 2012 +0100
@@ -1,6 +1,7 @@
from django.core.management.base import BaseCommand
from ldt.ldt_utils.models import Content
from ldt.ldt_utils.stat import update_stat_content, get_empty_stat_vector, get_empty_stat_field
+from ldt.management.utils import show_progress
class Command(BaseCommand):
help = 'Computes annotation for all contents'
@@ -10,14 +11,19 @@
empty_stat_vector = get_empty_stat_vector()
size_stat = len(empty_stat_vector)
+
+ writer = None
+ total = Content.objects.count()
+ i = 1
for c in Content.objects.all():
+ show_progress(i, total, "computing annotation stats for contents", 40, writer)
if not c.stat_annotation or len( c.stat_annotation.split(',')) != size_stat:
c.stat_annotation = get_empty_stat_field()
c.save()
update_stat_content(c)
+ i += 1
- print "Done"
return None
\ No newline at end of file
--- a/src/ldt/ldt/security/command.py Thu Feb 02 16:12:17 2012 +0100
+++ b/src/ldt/ldt/security/command.py Thu Feb 02 16:12:46 2012 +0100
@@ -2,8 +2,11 @@
from django.contrib.auth.models import Group, User
from ldt.ldt_utils.models import Project, Content
from guardian.shortcuts import assign
+from ldt.management.utils import show_progress
def set_default_permissions(verbose=False, is_migration=False, orm=None):
+ writer = None
+
if is_migration:
list_model = {'User': orm['auth.user'],
@@ -21,20 +24,29 @@
everyone, created = Group.objects.get_or_create(name=settings.PUBLIC_GROUP_NAME)
if verbose:
- print "Set project permissions..."
+ i = 1
+ total = list_model['Project'].objects.count()
for proj in list_model['Project'].objects.all():
assign('ldt_utils.change_project', proj.owner, proj)
assign('ldt_utils.view_project', proj.owner, proj)
+ if verbose:
+ show_progress(i, total, "Assign permissions to projects", 40, writer)
+ i += 1
for published_proj in list_model['Project'].objects.filter(state=2):
assign('ldt_utils.view_project', everyone, published_proj)
if verbose:
- print "Set group permissions...[This may take a while]"
+ i = 1
+ writer = None
+ total = list_model['User'].objects.count()
for user in list_model['User'].objects.all():
everyone.user_set.add(user)
+ if verbose:
+ show_progress(i, total, "Assign permissions to groups", 40, writer)
+ i += 1
for group in user.groups.exclude(name=settings.PUBLIC_GROUP_NAME):
for proj in list_model['Project'].objects.filter(owner=user):
--- a/src/ldt/ldt/user/forms.py Thu Feb 02 16:12:17 2012 +0100
+++ b/src/ldt/ldt/user/forms.py Thu Feb 02 16:12:46 2012 +0100
@@ -141,7 +141,7 @@
class_name = self.model.__class__.__name__
if class_name == 'User' or class_name == 'Group':
- instance_name = self.model.id
+ instance_name = "%s" % self.model.id
img_container = self.model.get_profile()
elif class_name == 'Content':
instance_name = self.model.iri_id