web/ldt/ldt_utils/views.py
changeset 99 0fb4b009c6eb
parent 98 c9460033138f
parent 95 9bae869b2146
child 100 c5514a2bfdcd
--- a/web/ldt/ldt_utils/views.py	Tue Oct 19 15:14:42 2010 +0200
+++ b/web/ldt/ldt_utils/views.py	Tue Oct 19 15:21:07 2010 +0200
@@ -1,17 +1,18 @@
-from Ft.Xml import MarkupWriter
 from contentindexer import *
 from django.conf import settings
 from django.contrib.auth.decorators import login_required
 from django.core import serializers
 from django.core.urlresolvers import reverse
+from django.db.models import Q
 from django.forms.forms import get_declared_fields
-from django.forms.models import model_to_dict 
+from django.forms.models import model_to_dict
 from django.forms.util import ErrorList
 from django.http import HttpResponse, HttpResponseRedirect, \
-    HttpResponseForbidden
+    HttpResponseForbidden, HttpResponseServerError
 from django.shortcuts import render_to_response, get_object_or_404, \
     get_list_or_404
 from django.template import RequestContext
+from django.template.loader import render_to_string
 from django.utils import simplejson
 from django.utils.html import escape
 from django.utils.translation import ugettext as _, ungettext
@@ -19,7 +20,11 @@
 from forms import LdtImportForm, LdtAddForm, SearchForm, AddProjectForm, \
     CopyProjectForm, ContentForm, MediaForm
 from ldt.core.models import Owner
+from ldt.ldt_utils.models import Content, Project, Owner
+from ldt.ldt_utils.projectserializer import ProjectSerializer
+from ldt.ldt_utils.utils import boolean_convert
 from lxml import etree
+from lxml.html import fromstring, fragment_fromstring
 from models import *
 from projectserializer import *
 from string import Template
@@ -33,13 +38,104 @@
 import ldt.utils.path as ldt_utils_path
 import logging
 import lucene
+import lxml.etree
 import tempfile
 import urllib2
 import uuid
-    
+
+
+@login_required
+def workspace(request):
+
+    # list of contents
+    content_list = Content.objects.all()
+
+    # get list of projects
+    project_list = Project.objects.all()
+
+    # render list
+    return render_to_response("ldt/ldt_utils/workspace.html",
+                              {'contents': content_list, 'projects': project_list},
+                              context_instance=RequestContext(request))
+
+
+def popup_embed(request):
+
+    json_url = request.GET.get("json_url")
+    player_id = request.GET.get("player_id")
+    ldt_id = request.GET.get("ldt_id")
+
+
+    project = Project.objects.get(ldt_id=ldt_id);
+
+    if not ldt_auth.checkAccess(request.user, project):
+        return HttpResponseForbidden(_("You can not access this project"))
+
+    ps = ProjectSerializer(project, from_contents=False, from_display=True)
+    annotations = ps.getAnnotations(first_cutting=True)
+
+    embed_rendered = dict((typestr,
+                           (lambda s:escape(lxml.etree.tostring(fragment_fromstring(render_to_string("ldt/ldt_utils/partial/embed_%s.html"%(s), {'json_url':json_url,'player_id':player_id, 'annotations':annotations, 'ldt_id': ldt_id}, context_instance=RequestContext(request))),pretty_print=True)))(typestr))
+                           for typestr in ('player','seo_body', 'seo_meta', 'links')  )
+
+    return render_to_response("ldt/ldt_utils/embed_popup.html",
+                              {'json_url':json_url,'player_id':player_id, 'embed_rendered':embed_rendered, 'annotations':annotations},
+                              context_instance=RequestContext(request))
+
+
+
+@login_required
+def projectsfilter(request, filter, is_owner=False, status=0):
+
+    project_list = None
+    is_owner = boolean_convert(is_owner)
+    status = int(status)
+    query = Q()
+
+    if is_owner:
+        owner = None
+        try:
+            owner = Owner.objects.get(user=request.user)
+        except:
+            return HttpResponseServerError("<h1>User not found</h1>")
+        query &= Q(owner=owner)
+
+    if status > 0:
+        query &= Q(state=status)
+
+    if filter:
+        if len(filter) > 0 and filter[0] == '_':
+            filter = filter[1:]
+        query &= Q(title__icontains=filter)
+
+    project_list =  Project.objects.filter(query)
+
+    return render_to_response("ldt/ldt_utils/partial/projectslist.html",
+                              {'projects': project_list},
+                              context_instance=RequestContext(request))
+
+
+
+
+
+@login_required
+def contentsfilter(request, filter):
+    if filter and len(filter) > 0 and filter[0] == '_':
+        filter = filter[1:]
+
+    if filter:
+        content_list = Content.objects.filter(title__icontains=filter)
+    else:
+        content_list = Content.objects.all()
+
+    return render_to_response("ldt/ldt_utils/partial/contentslist.html",
+                              {'contents': content_list},
+                              context_instance=RequestContext(request))
+
+
 def searchForm(request):
     form = SearchForm()
-    return render_to_response('ldt/ldt_utils_utils/search_form.html',{'form': form} , context_instance=RequestContext(request))    
+    return render_to_response('ldt/ldt_utils/search_form.html',{'form': form} , context_instance=RequestContext(request))    
 
 def searchIndex(request):
     
@@ -53,7 +149,7 @@
         language_code = request.LANGUAGE_CODE[:2]
     
         url = settings.WEB_URL + django.core.urlresolvers.reverse("ldt.ldt_utils.views.searchInit", args=[field, queryStr])
-        return render_to_response('ldt/ldt_utils/init_ldt.html', {'MEDIA_URL': settings.MEDIA_URL, 'colorurl': settings.MEDIA_URL+'swf/ldt/pkg/color.xml', 'i18nurl': settings.MEDIA_URL+'swf/ldt/pkg/i18n', 'language': language_code, 'baseurl': settings.MEDIA_URL+'swf/ldt/', 'url': url}, context_instance=RequestContext(request))
+        return render_to_response('ldt/ldt_utils/init_ldt.html', {'LDT_MEDIA_PREFIX': settings.LDT_MEDIA_PREFIX, 'colorurl': settings.LDT_MEDIA_PREFIX+'swf/ldt/pkg/color.xml', 'i18nurl': settings.LDT_MEDIA_PREFIX+'swf/ldt/pkg/i18n', 'language': language_code, 'baseurl': settings.LDT_MEDIA_PREFIX+'swf/ldt/', 'url': url}, context_instance=RequestContext(request))
     else:
         resp = HttpResponse()
         resp.write("<html><head></head><body>Error : No result</body></html>");
@@ -62,7 +158,7 @@
 
     language_code = request.LANGUAGE_CODE[:2]
     url = settings.WEB_URL + django.core.urlresolvers.reverse("ldt.ldt_utils.views.searchInit", args=[field, query])
-    return render_to_response('irisuser/ldt/init_ldt.html', {'MEDIA_URL': settings.MEDIA_URL, 'colorurl': settings.MEDIA_URL+'swf/ldt/pkg/color.xml', 'i18nurl': settings.MEDIA_URL+'swf/ldt/pkg/i18n', 'language': language_code, 'baseurl': settings.MEDIA_URL+'swf/ldt/', 'url': url}, context_instance=RequestContext(request))
+    return render_to_response('ldt/ldt_utils/init_ldt.html', {'LDT_MEDIA_PREFIX': settings.LDT_MEDIA_PREFIX, 'colorurl': settings.LDT_MEDIA_PREFIX+'swf/ldt/pkg/color.xml', 'i18nurl': settings.LDT_MEDIA_PREFIX+'swf/ldt/pkg/i18n', 'language': language_code, 'baseurl': settings.LDT_MEDIA_PREFIX+'swf/ldt/', 'url': url}, context_instance=RequestContext(request))
 
 def searchInit(request, field, query):
     
@@ -177,7 +273,7 @@
     return render_to_response('ldt/ldt_utils/create_ldt.html', {'contents': contents, 'form': form, 'form_status':form_status,'create_project_action':reverse(create_ldt_view)}, context_instance=RequestContext(request))
      
 def created_ldt(request):
-    return render_to_response('ldt/ldt_utils/done.html', context_instance=RequestContext(request))
+    return render_to_response('ldt/ldt_utils/save_done.html', context_instance=RequestContext(request))
     
 def indexProject(request, id):
 
@@ -191,7 +287,7 @@
     else:
         readonly = 'false'
     
-    return render_to_response('ldt/ldt_utils/init_ldt.html', {'MEDIA_URL': settings.MEDIA_URL, 'colorurl': settings.MEDIA_URL+'swf/ldt/pkg/color.xml', 'i18nurl': settings.MEDIA_URL+'swf/ldt/pkg/i18n', 'language': language_code, 'baseurl': settings.MEDIA_URL+'swf/ldt/', 'url': urlStr, 'posturl': posturl, 'id': id, 'readonly': readonly}, context_instance=RequestContext(request))
+    return render_to_response('ldt/ldt_utils/init_ldt.html', {'LDT_MEDIA_PREFIX': settings.LDT_MEDIA_PREFIX, 'colorurl': settings.LDT_MEDIA_PREFIX+'swf/ldt/pkg/color.xml', 'i18nurl': settings.LDT_MEDIA_PREFIX+'swf/ldt/pkg/i18n', 'language': language_code, 'baseurl': settings.LDT_MEDIA_PREFIX+'swf/ldt/', 'url': urlStr, 'posturl': posturl, 'id': id, 'readonly': readonly}, context_instance=RequestContext(request))
     
 def init(request, method, url):
     ldtgen = LdtUtils()
@@ -201,7 +297,7 @@
     resp = HttpResponse(mimetype="text/xml")
     resp['Cache-Control']='no-cache, must-revalidate'
     resp['Pragma']='no-cache'
-    
+
     resp.write( etree.tostring(doc, pretty_print=True, xml_declaration=True, encoding="utf-8")) 
     return resp
        
@@ -392,11 +488,10 @@
     urlStr = settings.WEB_URL + reverse("ldt_init", args=['ldt',url])
     language_code = request.LANGUAGE_CODE[:2]
     
-    return render_to_response('ldt/ldt_utils/init_ldt.html', {'MEDIA_URL': settings.MEDIA_URL, 'colorurl': settings.MEDIA_URL+'swf/ldt/pkg/color.xml', 'i18nurl': settings.MEDIA_URL+'swf/ldt/pkg/i18n', 'language': language_code, 'baseurl': settings.MEDIA_URL+'swf/ldt/', 'url': urlStr, 'weburl':settings.WEB_URL+settings.BASE_URL}, context_instance=RequestContext(request))
+    return render_to_response('ldt/ldt_utils/init_ldt.html', {'LDT_MEDIA_PREFIX': settings.LDT_MEDIA_PREFIX, 'colorurl': settings.LDT_MEDIA_PREFIX+'swf/ldt/pkg/color.xml', 'i18nurl': settings.LDT_MEDIA_PREFIX+'swf/ldt/pkg/i18n', 'language': language_code, 'baseurl': settings.LDT_MEDIA_PREFIX+'swf/ldt/', 'url': urlStr, 'weburl':settings.WEB_URL+settings.BASE_URL}, context_instance=RequestContext(request))
 
 
 def ldt(request, url, startSegment = None):
-
     
     resp = HttpResponse(mimetype="text/xml; charset=utf-8")
     resp['Cache-Control'] = 'no-cache'
@@ -480,7 +575,6 @@
 
 def write_content_base(request, iri_id=None):
 
-    logging.debug(repr(request))
     if iri_id:        
         instance_content = Content.objects.get(iri_id=iri_id)
         instance_media = instance_content.media_obj
@@ -674,10 +768,9 @@
         content_form, media_form, form_status = write_content_base(request, iri_id)
 
     if iri_id:
-        create_content_action =  reverse(write_content, kwargs={'iri_id':iri_id})
+        create_content_action =  reverse('ldt.ldt_utils.views.write_content', kwargs={'iri_id':iri_id})
     else:
-        create_content_action =  reverse(write_content)
-
+        create_content_action =  reverse('ldt.ldt_utils.views.write_content')
     
     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, 'iri_id': iri_id}, context_instance=RequestContext(request))