示例#1
0
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}
示例#2
0
    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)
示例#3
0
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
示例#4
0
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
示例#5
0
    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')
示例#6
0
    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')
示例#7
0
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
示例#8
0
    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')
示例#9
0
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}