def update(self, request, vendor, name, version, user_name=None): user = user_authentication(request, user_name) gadget = get_object_or_404(Gadget, users=user, vendor=vendor, name=name, version=version) xhtml = gadget.xhtml try: url = xhtml.url if (url.startswith('http')): #Absolute URL xhtml.code = download_http_content(url, user=user) else: #Relative URL if (url.startswith('/deployment/gadgets')): #GWT gadget package xhtml.code = get_xhtml_content(url) else: #Gadget with relative url and it's not a GWT package url = gadget.get_resource_url(url, request) xhtml.code = download_http_content(url, user=user) xhtml.save() except Exception, e: msg = _("XHTML code is not accessible") raise TracedServerError(e, {'vendor': vendor, 'name': name, 'version': version}, request, msg)
def read(self, request, vendor, name, version, user_name=None): #user = user_authentication(request, user_name) gadget = get_object_or_404(Gadget, vendor=vendor, name=name, version=version) xhtml = get_object_or_404(gadget.xhtml, id=gadget.xhtml.id) content_type = gadget.xhtml.content_type if not content_type: content_type = 'text/html' if not xhtml.cacheable: try: if xhtml.url.startswith('/deployment/gadgets/'): xhtml.code = get_xhtml_content(xhtml.url) else: xhtml.code = download_http_content(gadget.get_resource_url(xhtml.url, request), user=request.user) xhtml.save() except Exception, e: # FIXME: Send the error or use the cached original code? msg = _("XHTML code is not accessible")
def read(self, request, vendor, name, version, user_name=None): user = user_authentication(request, user_name) gadget = get_object_or_404(Gadget, vendor=vendor, name=name, version=version, users__id=user.id) xhtml = gadget.xhtml content_type = xhtml.content_type if not content_type: content_type = 'text/html' code = xhtml.code if not xhtml.cacheable or code == '': try: if xhtml.url.startswith('/deployment/gadgets/'): code = get_xhtml_content(xhtml.url) code = includeTagBase(code, xhtml.url, request) else: code = download_http_content(gadget.get_resource_url(xhtml.url, request), user=request.user) code = fix_ezweb_scripts(code, request) except Exception, e: # FIXME: Send the error or use the cached original code? msg = _("XHTML code is not accessible: %(errorMsg)s") % {'errorMsg': e.message} return HttpResponse(get_xml_error(msg), mimetype='application/xml; charset=UTF-8')
def update_gadget_script(request, fromWGT=False, user_action=True): """ Page for adding gadgets to catalogue without loading EzWeb """ if (request.user.is_authenticated() and not request.user.username.startswith('anonymous')): if ('gadget_vendor' in request.REQUEST and 'gadget_name' in request.REQUEST and 'gadget_version' in request.REQUEST): vendor = request.REQUEST['gadget_vendor'] name = request.REQUEST['gadget_name'] version = request.REQUEST['gadget_version'] else: #Send pingback ERROR send_pingback(request, {'result_code': -3, 'result_message': _('Invalid params for gadget update! (gadget_vendor, gadget_name, gadget_version)')}) #template_uri not specified! t = loader.get_template('catalogue_adder.html') c = Context({'msg': _('Invalid params for gadget update! (gadget_vendor, gadget_name, gadget_version)')}) return HttpResponseBadRequest(t.render(c), mimetype="application/xhtml+xml") gadget_info = {'vendor': vendor, 'gadgetName': name, 'version': version} # For ping_back #Cancel by the user if 'pingback_cancel' in request.REQUEST and (request.REQUEST['pingback_cancel'] == 'true'): if 'pingback' in request.REQUEST: #Send pingback CANCEL gadget_info['result_code'] = 1 gadget_info['result_message'] = _('Cancel by the user') send_pingback(request, gadget_info) #Redirect return HttpResponseRedirect('/') try: resource = GadgetResource.objects.get(short_name=name, vendor=vendor, version=version) gadget_info['gadgetId'] = resource.id except Exception: #Send pingback ERROR gadget_info['result_code'] = -3 gadget_info['result_message'] = _('Invalid gadget info! Please, specify a valid one!') send_pingback(request, gadget_info) #Error parsing the template t = loader.get_template('catalogue_adder.html') c = Context({'msg': _('Invalid gadget info! Please, specify a valid one!')}) return HttpResponseBadRequest(t.render(c), mimetype="application/xhtml+xml") gadget = None try: gadget = Gadget.objects.get(name=name, vendor=vendor, version=version) except Exception: pass try: if gadget != None: xhtml = XHTML.objects.get(id=gadget.xhtml.id) content_type = gadget.xhtml.content_type if not content_type: content_type = 'text/html' #if not xhtml.cacheable: if (not xhtml.url.startswith('http') and not xhtml.url.startswith('https')): xhtml.code = get_xhtml_content(xhtml.url) else: xhtml.code = download_http_content(xhtml.url, user=request.user) xhtml.save() except Exception: #Send pingback ERROR gadget_info['result_code'] = -3 gadget_info['result_message'] = _('XHTML code is not accessible!') send_pingback(request, gadget_info) #Error parsing the template t = loader.get_template('catalogue_adder.html') c = Context({'msg': _('XHTML code is not accessible!')}) return HttpResponseBadRequest(t.render(c), mimetype="application/xhtml+xml") #Send pingback OK gadget_info['result_code'] = 0 gadget_info['result_message'] = _('Success') send_pingback(request, gadget_info) # Gadget updated! t = loader.get_template('catalogue_adder.html') c = Context({'msg': _('Gadget updated correctly!')}) return HttpResponse(t.render(c), mimetype="application/xhtml+xml") else: #Not authenticated or anonymous user => redirecting to login! params = {'next': request.META['QUERY_STRING']} if 'pingback' in request.REQUEST: params['pingback'] = request.REQUEST['pingback'] return render_to_response('catalogue_adder_login.html', params, context_instance=RequestContext(request))