def get_or_create_gadget(templateURL, user, workspaceId, request, fromWGT=False): # Check permissions workspace = WorkSpace.objects.get(id=workspaceId) if workspace.creator != user: raise Http403() ########### Template Parser templateParser = TemplateParser(templateURL, user, fromWGT, request) # Gadget is created only once gadget_uri = templateParser.getGadgetUri() try: gadget = Gadget.objects.get(uri=gadget_uri) except Gadget.DoesNotExist: # Parser creates the gadget. It's made only if the gadget does not exist templateParser.parse() gadget = templateParser.getGadget() # A new user has added the gadget in his showcase # check if the workspace in which the igadget is being added is shared # all the user sharing the workspace should have the gadget in their # showcases if workspace.is_shared(): # add the gadget to the showcase of every user sharing the workspace # there is no problem is the gadget is already in their showcase [gadget.users.add(user_ws.user) for user_ws in UserWorkSpace.objects.filter(workspace=workspace)] else: # add the gadget to the showcase of the user gadget.users.add(user) return {"gadget": gadget, "templateParser": templateParser}
def create(self, request, user_name=None): user = user_authentication(request, user_name) if request.POST.has_key('url'): templateURL = request.POST['url'] else: return HttpResponseServerError('<error>Url not specified</error>', mimetype='application/xml; charset=UTF-8') ########### Template Parser templateParser = None try: # Gadget is created only once templateParser = TemplateParser(templateURL) gadget_uri = templateParser.getGadgetUri() try: gadget = Gadget.objects.get(uri=gadget_uri) except Gadget.DoesNotExist: # Parser creates the gadget. It's made only if the gadget does not exist templateParser.parse() gadget = templateParser.getGadget() # A new user has added the gadget in his showcase gadget.users.add(user) transaction.commit() except TemplateParseException, e: transaction.rollback() msg = _("Error parsing template!") raise TracedServerError(e, {'url': templateURL}, request, msg)
def get_or_add_gadget_from_catalogue(vendor, name, version, user, request): try: gadget = Gadget.objects.get(name=name, vendor=vendor, version=version) except: resource = CatalogueResource.objects.get(vendor=vendor, short_name=name, version=version) templateParser = TemplateParser(resource.template_uri, user, resource.fromWGT, request) templateParser.parse() gadget = templateParser.getGadget() gadget.users.add(user) gadget.save() return gadget
def get_or_create_gadget_from_catalogue(vendor, name, version, user, users, request): try: gadget = Gadget.objects.get(vendor=vendor, name=name, version=version) except Gadget.DoesNotExist: resource = GadgetResource.objects.get(vendor=vendor, short_name=name, version=version) templateParser = TemplateParser(resource.template_uri, user, resource.fromWGT, request) templateParser.parse() gadget = templateParser.getGadget() for user in users: gadget.users.add(user) gadget.save() return gadget
def create(self, request, user_name): user = user_authentication(user_name) if request.POST.has_key('url'): templateURL = request.POST['url'] else: return HttpResponseServerError('<error>Url not specified</error>', mimetype='application/xml; charset=UTF-8') ########### Template Parser templateParser = None try: templateParser = TemplateParser(templateURL, user) templateParser.parse() transaction.commit() except TemplateParseException, e: log(e, 'POST', 'user/id/gadgets', user_name) transaction.rollback() return HttpResponseServerError("<error>%s</error>" % e, mimetype='application/xml; charset=UTF-8')
def create(self, request, user_name): user = user_authentication(user_name) if request.POST.has_key('url'): templateURL = request.POST['url'] else: return HttpResponseServerError('<error>Url not specified</error>', mimetype='application/xml; charset=UTF-8') ########### Template Parser templateParser = None try: templateParser = TemplateParser(templateURL, user) templateParser.parse() transaction.commit() except TemplateParseException, e: log(e, 'POST', 'user/id/gadgets', user_name) transaction.rollback() return HttpResponseServerError(get_xml_error(unicode(e)), mimetype='application/xml; charset=UTF-8')
def create(self, request, user_name=None): user = get_user_authentication(request) if request.POST.has_key('url'): templateURL = request.POST['url'] else: return HttpResponseServerError( '<error>Url not specified</error>', mimetype='application/xml; charset=UTF-8') ########### Template Parser templateParser = None try: # Gadget is created only once templateParser = TemplateParser(templateURL) gadget_uri = templateParser.getGadgetUri() try: gadget = Gadget.objects.get(uri=gadget_uri) except Gadget.DoesNotExist: # Parser creates the gadget. It's made only if the gadget does not exist templateParser.parse() gadget = templateParser.getGadget() # A new user has added the gadget in his showcase gadget.users.add(user) transaction.commit() except TemplateParseException, e: log(e, request) transaction.rollback() return HttpResponseServerError( get_xml_error(unicode(e)), mimetype='application/xml; charset=UTF-8')
def get_or_create_gadget(templateURL, user, workspaceId, request, fromWGT=False): # Check permissions workspace = WorkSpace.objects.get(id=workspaceId) if workspace.creator != user: raise Http403() ########### Template Parser templateParser = TemplateParser(templateURL, user, fromWGT, request) # Gadget is created only once gadget_uri = templateParser.getGadgetUri() try: gadget = Gadget.objects.get(uri=gadget_uri) except Gadget.DoesNotExist: # Parser creates the gadget. It's made only if the gadget does not exist templateParser.parse() gadget = templateParser.getGadget() # A new user has added the gadget in his showcase # check if the workspace in which the igadget is being added is shared # all the user sharing the workspace should have the gadget in their # showcases if workspace.is_shared(): # add the gadget to the showcase of every user sharing the workspace # there is no problem is the gadget is already in their showcase [ gadget.users.add(user_ws.user) for user_ws in UserWorkSpace.objects.filter(workspace=workspace) ] else: # add the gadget to the showcase of the user gadget.users.add(user) return {"gadget": gadget, "templateParser": templateParser}