示例#1
0
 def update(self, request, user_name, vendor, name, version):
     user = user_authentication(request, user_name)
     
     # Get the gadget data from the request
     preferred = PUT_parameter(request, 'preferred')
     
     if preferred != None:
         # Set all version of this gadget as no preferred 
         old_preferred_versions = UserRelatedToGadgetResource.objects.filter( 
             gadget__vendor=vendor, gadget__short_name=name, user=user, preferred_by=True)
         for old_version in old_preferred_versions:
             old_version.preferred_by = False
             old_version.save()
         
         new_preferred_versions = UserRelatedToGadgetResource.objects.filter(gadget__vendor=vendor, gadget__short_name=name, gadget__version=version, user=user)
         
         userRelated = None
         if len(new_preferred_versions) == 0:
             resource = get_object_or_404(GadgetResource, short_name=name,vendor=vendor,version=version)
             userRelated = UserRelatedToGadgetResource ()
             userRelated.gadget = resource;
             userRelated.user = user
             userRelated.added_by = False
         else:
             userRelated = new_preferred_versions[0]
         
         userRelated.preferred_by = True
         userRelated.save()
         
         xml_ok = '<ResponseOK>OK</ResponseOK>'
         return HttpResponse(xml_ok,mimetype='text/xml; charset=UTF-8')
示例#2
0
    def update(self, request, user_name, vendor, name, version):
        user = user_authentication(request, user_name)

        # Get the gadget data from the request
        preferred = PUT_parameter(request, 'preferred')

        if preferred != None:
            # Set all version of this gadget as no preferred
            old_preferred_versions = UserRelatedToGadgetResource.objects.filter(
                gadget__vendor=vendor, gadget__short_name=name, user=user, preferred_by=True)
            for old_version in old_preferred_versions:
                old_version.preferred_by = False
                old_version.save()

            new_preferred_versions = UserRelatedToGadgetResource.objects.filter(
                gadget__vendor=vendor, gadget__short_name=name, gadget__version=version, user=user)

            userRelated = None
            if len(new_preferred_versions) == 0:
                resource = get_object_or_404(GadgetResource, short_name=name,
                                             vendor=vendor, version=version)
                userRelated = UserRelatedToGadgetResource()
                userRelated.gadget = resource
                userRelated.user = user
                userRelated.added_by = False
            else:
                userRelated = new_preferred_versions[0]

            userRelated.preferred_by = True
            userRelated.save()

            resource = get_object_or_404(GadgetResource, short_name=name,
                                         vendor=vendor, version=version)

            return get_resource_response([resource], 'json', 1, user)
示例#3
0
    def endElement(self, name):
        if (name == 'Name'):
            self._name = self._accumulator[0]
            return
        if (name == 'Vendor'):
            self._vendor = self._accumulator[0]
            return
        if (name == 'Version'):
            self._version = self._accumulator[0]
            return
        if (name == 'Author'):
            self._author = self._accumulator[0]
            return
        if (name == 'Description'):
            self._description = self._accumulator[0]
            return
        if (name == 'Mail'):
            self._mail = self._accumulator[0]
            return
        if (name == 'ImageURI'):
            if (self._accumulator == []):
                self._imageURI = 'no_url'
            else:
                self._imageURI = self._accumulator[0]
            return
        if (name == 'WikiURI'):
            self._wikiURI = self._accumulator[0]
            return

        if (self._name != '' and self._vendor != '' and self._version != '' and self._author != '' and self._description != '' and self._mail != '' and self._imageURI != '' and self._wikiURI != '' and not self._gadget_added):

            gadget=GadgetResource()
            gadget.short_name=self._name
            gadget.vendor=self._vendor
            gadget.version=self._version
            gadget.author=self._author
            gadget.description=self._description
            gadget.mail=self._mail
            gadget.image_uri=self._imageURI
            gadget.wiki_page_uri=self._wikiURI
            gadget.template_uri=self._uri
            gadget.creation_date=datetime.today()
            gadget.popularity = 0.0

            gadget.save()
            
            userRelated = UserRelatedToGadgetResource ()
            userRelated.gadget = gadget;
            userRelated.user = self._user
            userRelated.added_by = True
            
            userRelated.save()
            
            self._gadget_added = True
        elif (self._gadget_added):
            return
        else:
            raise TemplateParseException(_("ERROR: missing Resource description field at Resource element! Check schema!"))
示例#4
0
    def update(self, request, user_name, vendor, name, version):
        user = user_authentication(request, user_name)

        # Get the gadget data from the request
        preferred = PUT_parameter(request, 'preferred')

        if preferred != None:
            # Set all version of this gadget as no preferred
            old_preferred_versions = UserRelatedToGadgetResource.objects.filter(
                gadget__vendor=vendor,
                gadget__short_name=name,
                user=user,
                preferred_by=True)
            for old_version in old_preferred_versions:
                old_version.preferred_by = False
                old_version.save()

            new_preferred_versions = UserRelatedToGadgetResource.objects.filter(
                gadget__vendor=vendor,
                gadget__short_name=name,
                gadget__version=version,
                user=user)

            userRelated = None
            if len(new_preferred_versions) == 0:
                resource = get_object_or_404(GadgetResource,
                                             short_name=name,
                                             vendor=vendor,
                                             version=version)
                userRelated = UserRelatedToGadgetResource()
                userRelated.gadget = resource
                userRelated.user = user
                userRelated.added_by = False
            else:
                userRelated = new_preferred_versions[0]

            userRelated.preferred_by = True
            userRelated.save()

            resource = get_object_or_404(GadgetResource,
                                         short_name=name,
                                         vendor=vendor,
                                         version=version)

            return get_resource_response([resource], 'json', 1, user)
示例#5
0
    def endElement(self, name):
        if (name == 'Name'):
            self._name = self._accumulator[0]
            return
        if (name == 'Vendor'):
            self._vendor = self._accumulator[0]
            return
        if (name == 'Version'):
            self._version = self._accumulator[0]
            return
        if (name == 'Author'):
            self._author = self._accumulator[0]
            return
        if (name == 'Description'):
            self._description = self._accumulator[0]
            return
        if (name == 'Mail'):
            self._mail = self._accumulator[0]
            return
        if (name == 'ImageURI'):
            if (self._accumulator == []):
                self._imageURI = 'no_url'
            else:
                self._imageURI = self._accumulator[0]
            return
        if (name == 'iPhoneImageURI'):
            self._iPhoneImageURI = self._accumulator[0]
            return
        if (name == 'WikiURI'):
            self._wikiURI = self._accumulator[0]
            return

        if (self._name != '' and self._vendor != '' and self._version != ''
                and self._author != '' and self._description != ''
                and self._mail != '' and self._imageURI != ''
                and self._wikiURI != '' and not self._gadget_added):

            gadget = GadgetResource()
            gadget.short_name = self._name
            gadget.vendor = self._vendor
            gadget.version = self._version
            gadget.author = self._author
            gadget.description = self._description
            gadget.mail = self._mail
            gadget.image_uri = self._imageURI
            gadget.iphone_image_uri = self._iPhoneImageURI
            gadget.wiki_page_uri = self._wikiURI
            gadget.template_uri = self._uri
            gadget.creation_date = datetime.today()
            gadget.popularity = '0.0'

            gadget.save()

            userRelated = UserRelatedToGadgetResource()
            userRelated.gadget = gadget
            userRelated.user = self._user
            userRelated.added_by = True

            userRelated.save()

            self._gadget_added = True
        elif (self._gadget_added):
            return
        else:
            raise TemplateParseException(
                _("ERROR: missing Resource description field at Resource element! Check schema!"
                  ))
示例#6
0
    def endElement(self, name):
        if (name == 'Name'):
            self._name = self._accumulator[0]
            return
        if (name == 'Vendor'):
            self._vendor = self._accumulator[0]
            return
        if (name == 'Version'):
            self._version = self._accumulator[0]
            return
        if (name == 'Author'):
            self._author = self._accumulator[0]
            return
        if (name == 'Description'):
            self._description = string.join(self._accumulator,"")
            return
        if (name == 'Mail'):
            self._mail = self._accumulator[0]
            return
        if (name == 'ImageURI'):
            if (self._accumulator == []):
                self._imageURI = 'no_url'
            else:
                self._imageURI = self._accumulator[0]
            return
        if (name == 'iPhoneImageURI'):
            self._iPhoneImageURI = self._accumulator[0]
            return
        if (name == 'WikiURI'):
            self._wikiURI = self._accumulator[0]
            return
        if (name == 'IncludedResources'):
            return            
        if (name == 'Resource'):
            return            

        if (self._name != '' and self._vendor != '' and self._version != '' and self._author != '' and self._description != '' and self._mail != '' and self._imageURI != '' and self._wikiURI != '' and name == 'Catalog.ResourceDescription' and not self._gadget_added):

            gadget=GadgetResource()
            gadget.short_name=self._name
            gadget.vendor=self._vendor
            gadget.version=self._version
            gadget.author=self._author
            gadget.description=self._description
            gadget.mail=self._mail
            gadget.image_uri=self._imageURI
            gadget.iphone_image_uri=self._iPhoneImageURI
            gadget.wiki_page_uri=self._wikiURI
            gadget.template_uri=self._uri
            gadget.mashup_id = self._mashupId
            gadget.creation_date=datetime.today()
            gadget.popularity = '0.0'
            
            try:
                gadget.save()
            except Exception, e:
                raise TemplateParseException(e)
            
            self._gadget = gadget
            
            userRelated = UserRelatedToGadgetResource ()
            userRelated.gadget = gadget;
            userRelated.user = self._user
            userRelated.added_by = True
            
            userRelated.save()
            

            #TODO: process the resources
            #workaround to add default tags
            if self._mashupId!=None:
                userTag = UserTag()
                userTag.tag = "mashup"
                userTag.idUser = self._user
                userTag.idResource = gadget
                userTag.save()
             

            if self._contratable:
                tag = UserTag (tag='contratable', idUser=self._user, idResource=gadget)
                tag.save()
            

            self._gadget_added = True
示例#7
0
    def endElement(self, name):
        if not self._gadget_added:
            #add index to the translation list
            value = self.addIndex(self._accumulator)

        if (name == 'Name'):
            if value:
                raise TemplateParseException(
                    _("ERROR: The element Name cannot be translated"))
            self._name = self._accumulator[0]
            return
        if (name == 'DisplayName'):
            self._displayName = self._accumulator[0]
            return
        if (name == 'Organization'):
            self.processOrganization(self._accumulator)
            return
        if (name == 'Vendor'):
            if value:
                raise TemplateParseException(
                    _("ERROR: The element Vendor cannot be translated"))
            self._vendor = self._accumulator[0]
            return
        if (name == 'Version'):
            if value:
                raise TemplateParseException(
                    _("ERROR: The element Version cannot be translated"))
            self._version = self._accumulator[0]
            return
        if (name == 'Author'):
            self._author = self._accumulator[0]
            return
        if (name == 'Description'):
            self._description = string.join(self._accumulator, "")
            return
        if (name == 'Mail'):
            self._mail = self._accumulator[0]
            return
        if (name == 'ImageURI'):
            if (self._accumulator == []):
                self._imageURI = 'no_url'
            else:
                self._imageURI = self._accumulator[0]
            return
        if (name == 'iPhoneImageURI'):
            self._iPhoneImageURI = self._accumulator[0]
            return
        if (name == 'WikiURI'):
            self._wikiURI = self._accumulator[0]
            return
        if (name == 'IncludedResources'):
            return
        if (name == 'Resource'):
            return

        if (self._name != '' and self._vendor != '' and self._version != '' and self._author != '' and self._description != '' and \
            self._mail != '' and self._imageURI != '' and self._wikiURI != '' and name == 'Catalog.ResourceDescription' \
            and not self._gadget_added):

            gadget = GadgetResource()
            gadget.short_name = self._name
            gadget.display_name = self._displayName
            gadget.vendor = self._vendor
            gadget.version = self._version
            gadget.author = self._author
            gadget.description = self._description
            gadget.mail = self._mail
            gadget.image_uri = self._imageURI
            gadget.iphone_image_uri = self._iPhoneImageURI
            gadget.wiki_page_uri = self._wikiURI
            gadget.template_uri = self._uri
            gadget.mashup_id = self._mashupId
            gadget.creation_date = datetime.today()
            gadget.popularity = '0.0'

            # A gadget belongs to many organizations
            for organization in self._organization_list:
                gadget.organization.add(organization)

            #Checking certification status
            gadget.certification = get_certification_status(self._user)

            gadget.creator = self._user

            self._gadget = gadget

            if (self.save):
                gadget.save()

            if (self.save):
                userRelated = UserRelatedToGadgetResource()
                userRelated.gadget = gadget
                userRelated.user = self._user
                userRelated.added_by = True

                userRelated.save()

                #TODO: process the resources
                #workaround to add default tags
                if self._mashupId != None:
                    tag, created = Tag.objects.get_or_create(name="mashup")
                    userTag = UserTag(tag=tag,
                                      idUser=self._user,
                                      idResource=gadget)
                    userTag.save()

                if self._contratable:
                    tag, created = Tag.objects.get_or_create(
                        name="contratable")
                    userTag = UserTag(tag=tag,
                                      idUser=self._user,
                                      idResource=gadget)
                    userTag.save()

            self._gadget_added = True
        elif (self._gadget_added and name == "msg"):
            if not self.current_text in self.translatable_list:
                #message not used in the catalogue
                return
            if self.current_lang == self.default_lang:
                self.translated_list.append(self.current_text)

            table_ = self._gadget.__class__.__module__ + "." + self._gadget.__class__.__name__
            trans = Translation(
                text_id=self.current_text,
                element_id=self._gadget.id,
                table=table_,
                language=self.current_lang,
                value=self._accumulator[0],
                default=(self.current_lang == self.default_lang))
            trans.save()
        elif (self._gadget_added and name == "Translation"):
            if self.current_lang == self.default_lang:
                for ind in self.translatable_list:
                    self.translated_list.remove(ind)
                if len(self.translated_list) > 0:
                    raise TemplateParseException(
                        _("ERROR: the following translation indexes need a default value: "
                          + str(self.translated_list)))
        elif (self._gadget_added and name == "Translations"):
            if len(self.lang_list
                   ) > 0 and not self.default_lang in self.lang_list:
                raise TemplateParseException(
                    _("ERROR: There isn't a Translation element with the default language ("
                      + self.default_lang + ") translations"))
        elif (self._gadget_added):
            return
        else:
            raise TemplateParseException(
                _("ERROR: missing Resource description field at Resource element! Check schema!"
                  ))
示例#8
0
    def endElement(self, name):
        if (name == 'Name'):
            self._name = self._accumulator[0]
            return
        if (name == 'Vendor'):
            self._vendor = self._accumulator[0]
            return
        if (name == 'Version'):
            self._version = self._accumulator[0]
            return
        if (name == 'Author'):
            self._author = self._accumulator[0]
            return
        if (name == 'Description'):
            self._description = self._accumulator[0]
            return
        if (name == 'Mail'):
            self._mail = self._accumulator[0]
            return
        if (name == 'ImageURI'):
            if (self._accumulator == []):
                self._imageURI = 'no_url'
            else:
                self._imageURI = self._accumulator[0]
            return
        if (name == 'iPhoneImageURI'):
            self._iPhoneImageURI = self._accumulator[0]
            return
        if (name == 'WikiURI'):
            self._wikiURI = self._accumulator[0]
            return
        if (name == 'IncludedResources'):
            return
        if (name == 'Resource'):
            return

        if (self._name != '' and self._vendor != '' and self._version != ''
                and self._author != '' and self._description != ''
                and self._mail != '' and self._imageURI != ''
                and self._wikiURI != ''
                and name == 'Catalog.ResourceDescription'
                and not self._gadget_added):

            gadget = GadgetResource()
            gadget.short_name = self._name
            gadget.vendor = self._vendor
            gadget.version = self._version
            gadget.author = self._author
            gadget.description = self._description
            gadget.mail = self._mail
            gadget.image_uri = self._imageURI
            gadget.iphone_image_uri = self._iPhoneImageURI
            gadget.wiki_page_uri = self._wikiURI
            gadget.template_uri = self._uri
            gadget.mashup_id = self._mashupId
            gadget.creation_date = datetime.today()
            gadget.popularity = '0.0'

            gadget.save()

            userRelated = UserRelatedToGadgetResource()
            userRelated.gadget = gadget
            userRelated.user = self._user
            userRelated.added_by = True

            userRelated.save()

            #TODO: process the resources
            #workaround to add default tags
            if self._mashupId != None:
                userTag = UserTag()
                userTag.tag = "mashup"
                userTag.idUser = self._user
                userTag.idResource = gadget
                userTag.save()

            self._gadget_added = True
        elif (self._gadget_added):
            return
        else:
            raise TemplateParseException(
                _("ERROR: missing Resource description field at Resource element! Check schema!"
                  ))