src/ldt/ldt/ldt_utils/views.py
changeset 274 80375a7b7e14
parent 273 23a756e0bfee
child 276 ee792e43b36a
equal deleted inserted replaced
273:23a756e0bfee 274:80375a7b7e14
   144     query = Q()
   144     query = Q()
   145 
   145 
   146     if is_owner:
   146     if is_owner:
   147         owner = None
   147         owner = None
   148         try:
   148         try:
   149             owner = request.user #@UndefinedVariable
   149             owner = request.user
   150         except:
   150         except:
   151             return HttpResponseServerError("<h1>User not found</h1>")
   151             return HttpResponseServerError("<h1>User not found</h1>")
   152         query &= Q(owner=owner)
   152         query &= Q(owner=owner)
   153 
   153 
   154     if status > 0:
   154     if status > 0:
   165     if id_group > 0:
   165     if id_group > 0:
   166         grp = Group.objects.get(id=id_group)
   166         grp = Group.objects.get(id=id_group)
   167         project_list = get_objects_for_group(grp, 'ldt_utils.view_project').filter(query)
   167         project_list = get_objects_for_group(grp, 'ldt_utils.view_project').filter(query)
   168         show_username = True
   168         show_username = True
   169     else:
   169     else:
   170         project_list = Project.safe_objects.filter(query) #@UndefinedVariable
   170         project_list = Project.safe_objects.filter(query)
   171     
   171     
   172     project_list = add_change_attr(request.user, project_list)
   172     project_list = add_change_attr(request.user, project_list)
   173     # Template depends on the projects's status
   173     
   174     if status == 2:
   174     if status == 2:
   175         url_templ = "ldt/ldt_utils/partial/publishedprojectslist.html"
   175         url_templ = "ldt/ldt_utils/partial/publishedprojectslist.html"
   176     else:
   176     else:
   177         url_templ = "ldt/ldt_utils/partial/projectslist.html"
   177         url_templ = "ldt/ldt_utils/partial/projectslist.html"
   178         
   178         
   211     if filter:
   211     if filter:
   212         content_list = Content.safe_objects.filter(title__icontains=filter) #@UndefinedVariable
   212         content_list = Content.safe_objects.filter(title__icontains=filter) #@UndefinedVariable
   213     else:
   213     else:
   214         content_list = Content.safe_objects.all() #@UndefinedVariable
   214         content_list = Content.safe_objects.all() #@UndefinedVariable
   215         
   215         
   216     checker = ObjectPermissionChecker(request.user)
   216     content_list = add_change_attr(request.user, content_list)
   217     
       
   218     for c in content_list:
       
   219         if checker.has_perm('ldt_utils.change_content', c):
       
   220             c.change = True
       
   221     
   217     
   222     return render_to_response("ldt/ldt_utils/partial/contentslist.html",
   218     return render_to_response("ldt/ldt_utils/partial/contentslist.html",
   223                               {'contents': content_list},
   219                               {'contents': content_list},
   224                               context_instance=RequestContext(request))
   220                               context_instance=RequestContext(request))
   225 
   221 
  1090                         cleaned_data['videopath'] = settings.STREAM_URL
  1086                         cleaned_data['videopath'] = settings.STREAM_URL
  1091                     mimetype = cleaned_data.get('mimetype_field', None)
  1087                     mimetype = cleaned_data.get('mimetype_field', None)
  1092                     if not mimetype:
  1088                     if not mimetype:
  1093                         mimetype = mimetypes.guess_type(cleaned_data['src'])
  1089                         mimetype = mimetypes.guess_type(cleaned_data['src'])
  1094                     cleaned_data['mimetype_field'] = mimetype
  1090                     cleaned_data['mimetype_field'] = mimetype
  1095                     media, created = Media.objects.get_or_create(src=cleaned_data['src'], defaults=cleaned_data) #@UndefinedVariable
  1091                     media, created = Media.safe_objects.get_or_create(src=cleaned_data['src'], defaults=cleaned_data) #@UndefinedVariable
  1096                     assign('view_media', request.user, media)
  1092                     assign('view_media', request.user, media)
  1097                 else:
  1093                 else:
  1098                     media = None
  1094                     media = None
  1099                     
  1095                     
  1100 
  1096 
  1123                 assign('view_content', request.user, content)
  1119                 assign('view_content', request.user, content)
  1124                 everyone = Group.objects.get(name=settings.PUBLIC_GROUP_NAME)
  1120                 everyone = Group.objects.get(name=settings.PUBLIC_GROUP_NAME)
  1125                         
  1121                         
  1126                 if content_form.cleaned_data['is_public']:
  1122                 if content_form.cleaned_data['is_public']:
  1127                     assign('view_content', everyone, content)
  1123                     assign('view_content', everyone, content)
       
  1124                     if media:
       
  1125                         assign('view_media', everyone, media)
  1128                 else:
  1126                 else:
  1129                     remove_perm('view_content', everyone, content)
  1127                     remove_perm('view_content', everyone, content)
  1130                     assign_perm_to_obj(content, content_form.cleaned_data['read_list'], content_form.cleaned_data['write_list'], request.user)
  1128                     assign_perm_to_obj(content, content_form.cleaned_data['read_list'], content_form.cleaned_data['write_list'], request.user)
       
  1129                     if media:
       
  1130                         assign_perm_to_obj(media, content_form.cleaned_data['read_list'], content_form.cleaned_data['write_list'], request.user)
  1131                 if not created:
  1131                 if not created:
  1132                     for attribute in ('iriurl', 'title', 'description', 'duration', 'content_creation_date', 'tags', 'media_obj'):
  1132                     for attribute in ('iriurl', 'title', 'description', 'duration', 'content_creation_date', 'tags', 'media_obj'):
  1133                         setattr(content, attribute, content_defaults[attribute])
  1133                         setattr(content, attribute, content_defaults[attribute])
  1134                 content.save()
  1134                 content.save()
  1135                 form_status = 'saved'
  1135                 form_status = 'saved'
  1269 
  1269 
  1270 @login_required
  1270 @login_required
  1271 def get_group_projects(request):
  1271 def get_group_projects(request):
  1272 
  1272 
  1273     # Get group, user and project_list
  1273     # Get group, user and project_list
  1274     grp = Group.objects.get(id=request.POST["id_group"])  #@UndefinedVariable
  1274     grp = Group.objects.get(id=request.POST["id_group"])
  1275     everyone = Group.objects.get(name=settings.PUBLIC_GROUP_NAME)
  1275     everyone = Group.objects.get(name=settings.PUBLIC_GROUP_NAME)
  1276     project_list = get_objects_for_group(grp, 'ldt_utils.view_project') | get_objects_for_group(everyone, 'ldt_utils.view_project').filter(owner__in=[grp])
  1276     project_list = get_objects_for_group(grp, 'ldt_utils.view_project') | get_objects_for_group(everyone, 'ldt_utils.view_project').filter(owner__in=[grp])
  1277     project_list = add_change_attr(request.user, project_list)
  1277     project_list = add_change_attr(request.user, project_list)
  1278     
  1278     
  1279     is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1);
  1279     is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1);
  1280     
  1280 
  1281     # render list
       
  1282     return render_to_response("ldt/ldt_utils/partial/projectslist.html",
  1281     return render_to_response("ldt/ldt_utils/partial/projectslist.html",
  1283                               {'projects': project_list, 'show_username':True,
  1282                               {'projects': project_list, 'show_username':True,
  1284                                'is_gecko': is_gecko, 'group_id': grp.id},
  1283                                'is_gecko': is_gecko, 'group_id': grp.id},
  1285                               context_instance=RequestContext(request))
  1284                               context_instance=RequestContext(request))
  1286 
  1285 
  1302             admin_list = form.cleaned_data['write_list']            
  1301             admin_list = form.cleaned_data['write_list']            
  1303             
  1302             
  1304             group = Group.objects.create(name=name)
  1303             group = Group.objects.create(name=name)
  1305             group.save()
  1304             group.save()
  1306             assign('change_group', request.user, group)
  1305             assign('change_group', request.user, group)
  1307             
  1306             request.user.groups.add(group)             
       
  1307 
  1308             for elem in members_list:
  1308             for elem in members_list:
  1309                 if hasattr(elem, 'username'):
  1309                 if hasattr(elem, 'username'):
  1310                     elem.groups.add(group)
  1310                     elem.groups.add(group)
  1311                     if elem in admin_list:
  1311                     if elem in admin_list:
  1312                         assign('change_group', elem, group)
  1312                         assign('change_group', elem, group)
  1313                         
  1313                         
  1314             request.user.groups.add(group)             
       
  1315             form_status = 'saved' 
  1314             form_status = 'saved' 
  1316             
  1315             
  1317     else:
  1316     else:
  1318         form = GroupAddForm()      
  1317         form = GroupAddForm()      
  1319     
  1318