Creation of a page instead of pop up for the content creation, update and suppression
authorgrandjoncl
Thu, 20 Sep 2012 12:43:02 +0200
changeset 791 12ba862f33fa
parent 790 015f40d64d43
child 792 e4180c2d11eb
child 795 923429f142ea
Creation of a page instead of pop up for the content creation, update and suppression Suppression of the "more option" bloc
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/error_confirm.html
src/ldt/ldt/ldt_utils/views/content.py
src/ldt/ldt/static/ldt/js/projectscontents.js
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html	Thu Sep 20 12:35:15 2012 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html	Thu Sep 20 12:43:02 2012 +0200
@@ -1,16 +1,15 @@
-{% extends "ldt/ldt_raw_base.html" %}
+{% extends "ldt/ldt_utils/workspace_base.html" %}
+{% load i18n %}
 
-{% load i18n %} {# form of creation of content #}
+ {# form of creation of content #}
 {% load adminmedia %}
 
 {% block js_import %}
 	{{ block.super }}
     <script type="text/javascript" src="{{ADMIN_MEDIA_PREFIX}}js/core.js" ></script>
     <script type="text/javascript" src="{{ADMIN_MEDIA_PREFIX}}js/jquery.min.js"></script>
-    <script type="text/javascript" src="{{ADMIN_MEDIA_PREFIX}}js/jquery.init.js"></script>
     <script type="text/javascript" src="{% url ldt.jsi18n packages='ldt' %}" ></script>
     <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/projectscontents.js"></script>
-    <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/jquery.nyroModal.min.js"></script>
     <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/jquery.textchange.min.js"></script>
     <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/jquery-ui.min.js"></script>
     <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/swfupload/swfupload.js"></script>
@@ -18,15 +17,6 @@
 	{{ content_form.media.js }}
 {% endblock %}
 
-{% block css_import %}
-	{{ block.super }}
-	{{ content_form.media.css }} 
-	<link rel="stylesheet" href="{{LDT_MEDIA_PREFIX}}css/ldtform.css" />
-	<link rel="stylesheet" href="{{LDT_MEDIA_PREFIX}}css/workspace.css" />
-	<link rel="stylesheet" href="{{LDT_MEDIA_PREFIX}}css/jq-css/themes/base/jquery-ui.css" />
-    
-{% endblock %}
-
 {% block js_declaration %}
 	<script type="text/javascript">
 	window.__admin_media_prefix__ = "{% filter escapejs %}{% admin_media_prefix %}{% endfilter %}";
@@ -46,27 +36,26 @@
 							"{% url ldt.ldt_utils.views.content.remove_temp_file %}",
 							"{% url ldt.ldt_utils.views.content.get_duration %}");
 		
-		$("#moreoptions").click(function () {
-			var container = $("#moreoptionscontainer");
-			
-			if (container.is(':visible')) {
-				$("#moreoptionscontainer").hide();
-				$("#moreoptions").html("{% trans 'more options' %}");
-				resize_modal_window($("#add_content"));
-			} else {
-				$("#moreoptionscontainer").show();
-				$("#moreoptions").html("{% trans 'hide' %}");
-				resize_modal_window($("#add_content"));
-			}
-		});
-			
 	});
+	function stopRKey(evt) {
+		  var evt = (evt) ? evt : ((event) ? event : null);
+		  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
+		  if ((evt.keyCode == 13) && (node.type=="text"))  {return false;}
+		}
+
+	document.onkeypress = stopRKey;
+
 	
     </script>
 {% endblock %}
 
-{% block body %}
+{% block css_import %}
+	{{ block.super }}
+	{#{ content_form.media.css }#}
+	<link rel="stylesheet" href="{{LDT_MEDIA_PREFIX}}css/ldtform.css" />
+{% endblock %}
 
+{% block content %}
 	{% if media_form.errors %}
 	<div id="media-form-error">
 		<p>{% trans "The operation could not be performed because one or more error(s) occurred.<br />Please resubmit the media form after making the following changes:" %}</p>
@@ -121,9 +110,6 @@
 		</div>
 	</div>	 
 	
-	<div id="moreoptions">{% trans 'More options' %}</div>
-	<div id="moreoptionscontainer" style="display: none;">
-
 		{% if iri_id and user.is_staff %}
 		<div>{% trans 'Actual front project' %} : {{ current_front_project }}
 		{{ content_form.front_project.label_tag }}{{ content_form.front_project }}</div>
@@ -132,8 +118,7 @@
 		{% endif %}
 	{% include "ldt/ldt_utils/partial/picture.html"%}
 	{% include "ldt/ldt_utils/partial/permissions.html" %}
-	</div>
-	
+
 		
 	<div id="submitcontent" class="span-18 last">
 		<div id="submitcontent-loader" class="span-10">
@@ -142,7 +127,7 @@
 			<span>&nbsp;</span>
 		</div>
 		<div id="submitcontent-buttons" class="span-8 last">
-			<button id="close_button"  value="close">{% trans 'close_cancel' %}</button>
+			<button type="submit" value="close" name="submit_button" id="submit_button_close">{% trans 'close_cancel' %}</button>
 			{% if iri_id %}<button type="submit" value="prepare_delete" name="submit_button">{% trans "delete" %}</button>{% endif %}
 			<button type="submit" value="write" name="submit_button" id="submit_button_write">{% trans "write" %}</button>
 		</div>
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/error_confirm.html	Thu Sep 20 12:35:15 2012 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/error_confirm.html	Thu Sep 20 12:43:02 2012 +0200
@@ -1,4 +1,4 @@
-{% extends "ldt/ldt_raw_base.html" %}
+{% extends "ldt/ldt_utils/workspace_base.html" %}
 
 {% load i18n %} {# form of creation of content #}
 
@@ -11,24 +11,11 @@
 {% block css_import %}
 	{{ block.super }}
 	{{ content_form.media.css }}
-	<link rel="stylesheet" href="{{LDT_MEDIA_PREFIX}}css/ldt.css" />
 	<link rel="stylesheet" href="{{LDT_MEDIA_PREFIX}}css/ldtform.css" />
 {% endblock %}
 
 
-{% block js_declaration %}
-	<script type="text/javascript">
-	$(document).ready(function() {
-		resize_modal_window("#error", false);
-
-		$("#close_button").click(function(e) {
-			parent.$.nmTop().close();
-		});
-	});
-	</script>
-{% endblock %}
-
-{% block body %}
+{% block content %}
 	
 <div id="error">
 <div class="projectscontentstitle">{% if errors|length > 0 %}{% trans "error" %}{% else %}{% trans "confirm" %}{% endif %}</div>
@@ -45,15 +32,12 @@
 
 <div id="submitcontent" >
 	<div id="submitcontent-buttons" >
-	{% if errors|length > 0 %}
-		<button id="close_button"  value="close">{% trans 'close_error' %}</button> 
-	{% else %}
 		<form method="post" enctype="application/x-www-form-urlencoded" action="{{ delete_action }}">
 			{% csrf_token %}
-			<button id="close_button"  value="close">{% trans 'close_cancel' %}</button>
-			<button type="submit" value="delete" name="submit_button" id="submit_button">{% trans "do_delete" %}</button>
+			<button type = "submit" value="close" name="submit_button" id="close_button">{% trans 'close_cancel' %}</button>
+			{% if errors|length <= 0 %}<button type="submit" value="delete" name="submit_button" id="submit_button">{% trans "do_delete" %}</button>{% endif %}
 		</form>
-	{% endif %}
+	
 	</div>
 </div>
 
--- a/src/ldt/ldt/ldt_utils/views/content.py	Thu Sep 20 12:35:15 2012 +0200
+++ b/src/ldt/ldt/ldt_utils/views/content.py	Thu Sep 20 12:43:02 2012 +0200
@@ -5,7 +5,7 @@
 from django.forms.models import model_to_dict
 from django.forms.util import ErrorList
 from django.http import HttpResponse
-from django.shortcuts import render_to_response
+from django.shortcuts import render_to_response, redirect
 from django.template import RequestContext
 from django.utils.translation import ugettext as _, ungettext
 from ldt.ldt_utils.forms import ContentForm, MediaForm
@@ -26,8 +26,8 @@
 import math
 import requests
 import django.utils.simplejson as simplejson
-import urlparse
-
+import urlparse   
+    
 def write_content_base(request, iri_id=None): 
     if iri_id:        
         instance_content = Content.safe_objects.get(iri_id=iri_id) #@UndefinedVariable
@@ -59,21 +59,23 @@
             return dict([('%s-%s' % (prefix, key), value) for key,value in _dict.items()])
         
         content_instance_val = add_prefix(content_instance_val, "content")
-        media_instance_val= add_prefix(media_instance_val, "media")     
-   
+        media_instance_val= add_prefix(media_instance_val, "media")    
+        src_video=request.POST.get('media-src')
         for k in request.POST.keys():
             value = request.POST.get(k)
             content_instance_val[k] = value
             media_instance_val[k] = value
+            logging.debug("keys : "+k+"value : "+value+" Louiselogging")
             
         content_instance_val['read_list'] = request.POST.getlist('read_list')
         content_instance_val['write_list'] = request.POST.getlist('write_list')
         content_instance_val['share'] = request.POST.get('share', True)
-
+        
         content_form = ContentForm(content_instance_val, prefix="content", instance=instance_content)
         media_form = MediaForm(media_instance_val, request.FILES, prefix="media", instance=instance_media)
         picture_form = PictureForm(None, request.POST, request.FILES)
         
+        
         if request.user.is_staff:
             content_form.fields['front_project'].queryset = Project.objects.filter(contents__in=[instance_content])
 
@@ -241,7 +243,6 @@
                 content.save()
                 picture_form.model = content
                 picture_form.save()  
-
                 form_status = 'saved'
                 media_form = MediaForm(instance=media, prefix="media")
                 content_form = ContentForm(instance=content, prefix="content")
@@ -269,7 +270,8 @@
     return content_form, media_form, picture_form, form_status, current_front_project
 
 @login_required
-def write_content(request, iri_id=None):    
+def write_content(request, iri_id=None):  
+    case=0  
     submit_action = request.REQUEST.get("submit_button", False) 
     member_list = admin_list = []
     current_front_project = None
@@ -288,28 +290,38 @@
         form_status = "deleted"
         content_form = ContentForm()
         media_form = MediaForm()
-        picture_form = PictureForm()
+        picture_form = PictureForm()   
+    elif submit_action=="close":
+        return redirect("root-view") 
     else:
         content_form, media_form, picture_form, form_status, current_front_project = write_content_base(request, iri_id)
         if iri_id:
+            case=2
             member_list, admin_list = get_userlist_model(Content.objects.get(iri_id=iri_id), request.user)
-        
+            
     if iri_id:
         create_content_action = reverse('ldt.ldt_utils.views.content.write_content', kwargs={'iri_id':iri_id})
         img_container = content_form.instance
+
     else:        
         create_content_action = reverse('ldt.ldt_utils.views.content.write_content')
         img_container = ''
+        case=1
     
     session_key = request.COOKIES[settings.SESSION_COOKIE_NAME]
     cookie_name = settings.SESSION_COOKIE_NAME
     # Media.safe_objects.all() does not return the good list of media, so we get them from the Content.safe_objects
     content_form.fields["media_obj"].queryset = Media.objects.filter(id__in=Content.safe_objects.values_list('media_obj', flat=True))
     
-    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,
+    if form_status=='saved' or form_status=='deleted':
+        return redirect("root-view") 
+    else:
+        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,
                                                                     'elem_list': get_userlist(request.user), 'member_list': member_list, 'admin_list': admin_list,  'iri_id': iri_id, 'session_key':session_key,
                                                                     'cookie_name':cookie_name, 'img_container': img_container, 'profile_picture_form': picture_form,
                                                                     'current_front_project':current_front_project}, context_instance=RequestContext(request))
+    #else :
+    #    
 
 @login_required
 def prepare_delete_content(request, iri_id=None): 
@@ -482,3 +494,22 @@
     else:
         title=data['title']
     return title
+
+def get_image_json(src_video, data):
+    if 'youtube' in src_video:
+        lien=data['data']['thumbnail']['sqDefault']
+        filename=""+data['data']['id']+".jpg"
+        download_path=settings.MEDIA_ROOT+"thumbnails/contents/"
+        file_path = "%s\%s" % (download_path, filename)
+        video_thumbnail = file(file_path, "wb")
+        image_web=urllib2.urlopen(lien)
+        while True:
+            buf = image_web.read(65536)
+            if len(buf) == 0:
+                break
+            video_thumbnail.write(buf)
+        video_thumbnail.close()
+        image_web.close()
+    return file_path
+        
+
--- a/src/ldt/ldt/static/ldt/js/projectscontents.js	Thu Sep 20 12:35:15 2012 +0200
+++ b/src/ldt/ldt/static/ldt/js/projectscontents.js	Thu Sep 20 12:43:02 2012 +0200
@@ -210,73 +210,6 @@
     	searchCallback($("#searchcontentsinput"),"#contentslistcontainer",content_filter_url,0,0);
     });
     
-    $('.content_link_create').each(function(i){
-        $(this).attr("target","_blank");
-    });
-    $('.content_link_create').nyroModal({
-        filters: ['iframe'],
-        sizes: {
-            minW: 740,
-            minH: 490
-        },
-        closeOnClick:false,
-        callbacks: {
-            afterClose: function(nm) {
-                searchCallback($('#searchcontentsinput'), "#contentslistcontainer", content_filter_url, 0);
-                if (project_filter_url != 'undefined') {
-                	// Used when an admin creates a content, the list of project has to be refreshed for the front project
-                	searchCallback($('#searchprojectsinput'), "#projectslistcontainer", project_filter_url, 0);
-                }
-            },
-            afterShowCont: function(nm) {
-                nm.store.iframe.load(function() {
-                    var form_status = $(this).contents().find("#content_form_status").val(); 
-                    if(form_status === 'saved' || form_status === 'deleted' ) {
-                        $.nmTop().close();
-                    }
-                });                
-
-                nm.store.iframe.width(730);
-                nm.store.iframe.height(480);
-            }
-        }
-    });
-    $('.content_link_create',base_node).each(function(i, e) {
-        nm = $(e).data('nmObj');
-        $(e).data('nmObj', $.extend(true, nm, {
-            close: testCreateAndClose(nm, nm.close)
-        }));
-    });  
-    
-    $('.contenttitlelink').each(function(i){
-        $(this).attr("target","_blank");
-    });
-    
-    $('.contenttitlelink').nyroModal({
-        filters: ['iframe'],
-        sizes: {
-            minW: 740,
-            minH: 490
-        },
-        closeOnClick:false,
-        callbacks: {
-            afterClose: function(nm) {
-                searchCallback($("#searchcontentsinput"),"#contentslistcontainer",content_filter_url,0);
-            },
-            afterShowCont: function(nm) {
-                nm.store.iframe.load(function() {                	
-                      var form_status = $(this).contents().find("#content_form_status").val(); 
-                      if(form_status === 'saved' || form_status === 'deleted') {
-                          $.nmTop().close();
-                      }
-                  });
-                
-                nm.store.iframe.width(730);
-                nm.store.iframe.height(480);
-            }
-        }
-    });
-    
 }
 
 function init_modal_window (class_name, windowW, windowH, frameW, frameH, base_node, searchprojectfilterurl) {
@@ -751,10 +684,9 @@
                          $('#id_content-title').val(data.entry.title.$t);
                     }
                     $('#media_field_create').append('<img id="external_thumbnail" src="'+data.entry.media$group.media$thumbnail[0].url+'" alt="Youtube Thumbnail"/>');
-                    $('#media_fields_div').height(150);
+                    $('#media_fields_div').height(150);                   
                 }
             });
-            
         }
     }
     else if(url.match("vimeo")){