3 from django.contrib.auth.models import Group |
3 from django.contrib.auth.models import Group |
4 from django.core.urlresolvers import reverse |
4 from django.core.urlresolvers import reverse |
5 from django.forms.models import model_to_dict |
5 from django.forms.models import model_to_dict |
6 from django.forms.util import ErrorList |
6 from django.forms.util import ErrorList |
7 from django.http import HttpResponse |
7 from django.http import HttpResponse |
8 from django.shortcuts import render_to_response |
8 from django.shortcuts import render_to_response, redirect |
9 from django.template import RequestContext |
9 from django.template import RequestContext |
10 from django.utils.translation import ugettext as _, ungettext |
10 from django.utils.translation import ugettext as _, ungettext |
11 from ldt.ldt_utils.forms import ContentForm, MediaForm |
11 from ldt.ldt_utils.forms import ContentForm, MediaForm |
12 from guardian.shortcuts import remove_perm |
12 from guardian.shortcuts import remove_perm |
13 from ldt.ldt_utils.models import Content, Media, Project |
13 from ldt.ldt_utils.models import Content, Media, Project |
57 |
57 |
58 def add_prefix(_dict, prefix): |
58 def add_prefix(_dict, prefix): |
59 return dict([('%s-%s' % (prefix, key), value) for key,value in _dict.items()]) |
59 return dict([('%s-%s' % (prefix, key), value) for key,value in _dict.items()]) |
60 |
60 |
61 content_instance_val = add_prefix(content_instance_val, "content") |
61 content_instance_val = add_prefix(content_instance_val, "content") |
62 media_instance_val= add_prefix(media_instance_val, "media") |
62 media_instance_val= add_prefix(media_instance_val, "media") |
63 |
63 src_video=request.POST.get('media-src') |
64 for k in request.POST.keys(): |
64 for k in request.POST.keys(): |
65 value = request.POST.get(k) |
65 value = request.POST.get(k) |
66 content_instance_val[k] = value |
66 content_instance_val[k] = value |
67 media_instance_val[k] = value |
67 media_instance_val[k] = value |
|
68 logging.debug("keys : "+k+"value : "+value+" Louiselogging") |
68 |
69 |
69 content_instance_val['read_list'] = request.POST.getlist('read_list') |
70 content_instance_val['read_list'] = request.POST.getlist('read_list') |
70 content_instance_val['write_list'] = request.POST.getlist('write_list') |
71 content_instance_val['write_list'] = request.POST.getlist('write_list') |
71 content_instance_val['share'] = request.POST.get('share', True) |
72 content_instance_val['share'] = request.POST.get('share', True) |
72 |
73 |
73 content_form = ContentForm(content_instance_val, prefix="content", instance=instance_content) |
74 content_form = ContentForm(content_instance_val, prefix="content", instance=instance_content) |
74 media_form = MediaForm(media_instance_val, request.FILES, prefix="media", instance=instance_media) |
75 media_form = MediaForm(media_instance_val, request.FILES, prefix="media", instance=instance_media) |
75 picture_form = PictureForm(None, request.POST, request.FILES) |
76 picture_form = PictureForm(None, request.POST, request.FILES) |
|
77 |
76 |
78 |
77 if request.user.is_staff: |
79 if request.user.is_staff: |
78 content_form.fields['front_project'].queryset = Project.objects.filter(contents__in=[instance_content]) |
80 content_form.fields['front_project'].queryset = Project.objects.filter(contents__in=[instance_content]) |
79 |
81 |
80 |
82 |
267 content_form.fields['front_project'].queryset = Project.objects.filter(contents__in=[instance_content]) |
268 content_form.fields['front_project'].queryset = Project.objects.filter(contents__in=[instance_content]) |
268 |
269 |
269 return content_form, media_form, picture_form, form_status, current_front_project |
270 return content_form, media_form, picture_form, form_status, current_front_project |
270 |
271 |
271 @login_required |
272 @login_required |
272 def write_content(request, iri_id=None): |
273 def write_content(request, iri_id=None): |
|
274 case=0 |
273 submit_action = request.REQUEST.get("submit_button", False) |
275 submit_action = request.REQUEST.get("submit_button", False) |
274 member_list = admin_list = [] |
276 member_list = admin_list = [] |
275 current_front_project = None |
277 current_front_project = None |
276 |
278 |
277 if submit_action == "prepare_delete": |
279 if submit_action == "prepare_delete": |
286 elif submit_action == "delete": |
288 elif submit_action == "delete": |
287 delete_content(request, iri_id) |
289 delete_content(request, iri_id) |
288 form_status = "deleted" |
290 form_status = "deleted" |
289 content_form = ContentForm() |
291 content_form = ContentForm() |
290 media_form = MediaForm() |
292 media_form = MediaForm() |
291 picture_form = PictureForm() |
293 picture_form = PictureForm() |
|
294 elif submit_action=="close": |
|
295 return redirect("root-view") |
292 else: |
296 else: |
293 content_form, media_form, picture_form, form_status, current_front_project = write_content_base(request, iri_id) |
297 content_form, media_form, picture_form, form_status, current_front_project = write_content_base(request, iri_id) |
294 if iri_id: |
298 if iri_id: |
|
299 case=2 |
295 member_list, admin_list = get_userlist_model(Content.objects.get(iri_id=iri_id), request.user) |
300 member_list, admin_list = get_userlist_model(Content.objects.get(iri_id=iri_id), request.user) |
296 |
301 |
297 if iri_id: |
302 if iri_id: |
298 create_content_action = reverse('ldt.ldt_utils.views.content.write_content', kwargs={'iri_id':iri_id}) |
303 create_content_action = reverse('ldt.ldt_utils.views.content.write_content', kwargs={'iri_id':iri_id}) |
299 img_container = content_form.instance |
304 img_container = content_form.instance |
|
305 |
300 else: |
306 else: |
301 create_content_action = reverse('ldt.ldt_utils.views.content.write_content') |
307 create_content_action = reverse('ldt.ldt_utils.views.content.write_content') |
302 img_container = '' |
308 img_container = '' |
|
309 case=1 |
303 |
310 |
304 session_key = request.COOKIES[settings.SESSION_COOKIE_NAME] |
311 session_key = request.COOKIES[settings.SESSION_COOKIE_NAME] |
305 cookie_name = settings.SESSION_COOKIE_NAME |
312 cookie_name = settings.SESSION_COOKIE_NAME |
306 # Media.safe_objects.all() does not return the good list of media, so we get them from the Content.safe_objects |
313 # Media.safe_objects.all() does not return the good list of media, so we get them from the Content.safe_objects |
307 content_form.fields["media_obj"].queryset = Media.objects.filter(id__in=Content.safe_objects.values_list('media_obj', flat=True)) |
314 content_form.fields["media_obj"].queryset = Media.objects.filter(id__in=Content.safe_objects.values_list('media_obj', flat=True)) |
308 |
315 |
309 return render_to_response('ldt/ldt_utils/create_content.html', {'content_form': content_form, 'media_form': media_form, 'form_status': form_status, 'create_content_action': create_content_action, |
316 if form_status=='saved' or form_status=='deleted': |
|
317 return redirect("root-view") |
|
318 else: |
|
319 return render_to_response('ldt/ldt_utils/create_content.html', {'content_form': content_form, 'media_form': media_form, 'form_status': form_status, 'create_content_': create_content_action, |
310 'elem_list': get_userlist(request.user), 'member_list': member_list, 'admin_list': admin_list, 'iri_id': iri_id, 'session_key':session_key, |
320 'elem_list': get_userlist(request.user), 'member_list': member_list, 'admin_list': admin_list, 'iri_id': iri_id, 'session_key':session_key, |
311 'cookie_name':cookie_name, 'img_container': img_container, 'profile_picture_form': picture_form, |
321 'cookie_name':cookie_name, 'img_container': img_container, 'profile_picture_form': picture_form, |
312 'current_front_project':current_front_project}, context_instance=RequestContext(request)) |
322 'current_front_project':current_front_project}, context_instance=RequestContext(request)) |
|
323 #else : |
|
324 # |
313 |
325 |
314 @login_required |
326 @login_required |
315 def prepare_delete_content(request, iri_id=None): |
327 def prepare_delete_content(request, iri_id=None): |
316 errors = [] |
328 errors = [] |
317 titles = [] |
329 titles = [] |
480 elif 'vimeo' in src_video: |
492 elif 'vimeo' in src_video: |
481 title=data[0]['title'] |
493 title=data[0]['title'] |
482 else: |
494 else: |
483 title=data['title'] |
495 title=data['title'] |
484 return title |
496 return title |
|
497 |
|
498 def get_image_json(src_video, data): |
|
499 if 'youtube' in src_video: |
|
500 lien=data['data']['thumbnail']['sqDefault'] |
|
501 filename=""+data['data']['id']+".jpg" |
|
502 download_path=settings.MEDIA_ROOT+"thumbnails/contents/" |
|
503 file_path = "%s\%s" % (download_path, filename) |
|
504 video_thumbnail = file(file_path, "wb") |
|
505 image_web=urllib2.urlopen(lien) |
|
506 while True: |
|
507 buf = image_web.read(65536) |
|
508 if len(buf) == 0: |
|
509 break |
|
510 video_thumbnail.write(buf) |
|
511 video_thumbnail.close() |
|
512 image_web.close() |
|
513 return file_path |
|
514 |
|
515 |