# HG changeset patch # User hamidouk # Date 1328195566 -3600 # Node ID d7a40f4dc38b0dd4c1c2c9cbfd1abb46d49b8e5a # Parent 6977273dac24f5a7dc93abd53144935278ebea81# Parent 2edec83f1bd845363b9544a8bb331f5e2e13f4d0 Merge with upstream diff -r 6977273dac24 -r d7a40f4dc38b src/ldt/ldt/ldt_utils/forms.py --- 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') diff -r 6977273dac24 -r d7a40f4dc38b src/ldt/ldt/ldt_utils/views/front.py --- 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) diff -r 6977273dac24 -r d7a40f4dc38b src/ldt/ldt/ldt_utils/views/workspace.py --- 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 = [] diff -r 6977273dac24 -r d7a40f4dc38b src/ldt/ldt/management/commands/statannotation.py --- 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 diff -r 6977273dac24 -r d7a40f4dc38b src/ldt/ldt/security/command.py --- 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): diff -r 6977273dac24 -r d7a40f4dc38b src/ldt/ldt/user/forms.py --- 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