Merge with upstream
authorhamidouk
Thu, 02 Feb 2012 16:12:46 +0100
changeset 513 d7a40f4dc38b
parent 512 6977273dac24 (current diff)
parent 511 2edec83f1bd8 (diff)
child 514 8fb2523b9c74
child 515 d1be4a4f6639
child 518 5e8b72d30bd8
Merge with upstream
--- 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