--- 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))