# Change links XHTML Tag and Image tag in template gadget template_file = path.join(final_gadget_dir, info.ID.encode("utf8")) xmlDoc = info.get_new_template(template_file) f = codecs.open(template_file, 'wb', 'utf-8') template = xmlDoc.toxml() f.write(template) f.close() # Add the gadget to the catalogue try: templateParser, resource = add_resource_from_template(info.URLTEMPLATE.encode("utf8"), template.encode('utf-8'), user, fromWGT=True) except IntegrityError, e: raise DeploymentException(_('Gadget already exists!')) data = get_added_resource_info(resource, user) response = HttpResponse(simplejson.dumps(data), mimetype='application/json; charset=UTF-8') if not user_action: # Work around browsers trying to open json data into an editor response._headers['content-type'] = ('Content-Type', 'text/plain; charset=UTF-8') except TemplateParseException, e: msg = _("Error parsing the template: %(msg)s" % {"msg": e.msg}) e = TracedServerError(e, {}, request, msg) log_request(request, None, 'access') log_detailed_exception(request, e) return HttpResponseRedirect('error?msg=%(errorMsg)s#error' % {'errorMsg': urlquote_plus(msg)}) except TracedServerError, e:
} return HttpResponseBadRequest(simplejson.dumps(json_response), mimetype='application/json; charset=UTF-8') except TemplateParseException, e: transaction.rollback() msg = _("Problem parsing template xml: %(errorMsg)s") % {'errorMsg': e.msg} raise TracedServerError(e, {'template_uri': template_uri}, request, msg) except Exception, e: # Internal error transaction.rollback() msg = _("Problem parsing template xml: %(errorMsg)s") % {'errorMsg': str(e)} raise TracedServerError(e, {'template_uri': template_uri}, request, msg) json_response = get_added_resource_info(resource, user) # get_added_resource_info can make changes in the db transaction.commit() return HttpResponse(simplejson.dumps(json_response), mimetype='application/json; charset=UTF-8') @no_cache def read(self, request, user_name, pag=0, offset=0): user = user_authentication(request, user_name) format = request.GET.get('format', 'default') orderby = request.GET.get('orderby', '-creation_date') scope = request.GET.get('scope', 'all')