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
Example #2
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!"
                  ))
Example #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 == '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!"
                  ))
Example #4
0
#     You should have received a copy of the GNU Affero General Public License
#     along with Morfeo EzWeb Platform.  If not, see <http://www.gnu.org/licenses/>.
#
#     Info about members and contributors of the MORFEO project
#     is available at
#
#     http://morfeo-project.org
#
#...............................licence...........................................#

from catalogue.models import UserTag, Tag, GadgetResource
from django.contrib.auth.models import User

mapping_file = open('mapping.txt', 'r')

mapping_text = mapping_file.read()

mapping_file.close()

tag_mapping = eval(mapping_text)

for (tag_text, user_id, resource_id) in tag_mapping:
    tag, created = Tag.objects.get_or_create(name=tag_text)

    user = User.objects.get(id=user_id)
    resource = GadgetResource.objects.get(id=resource_id)

    user_tag = UserTag(tag=tag, idUser=user, idResource=resource)

    user_tag.save()
Example #5
0
for gadget in gadgets:
    gadgetVersions = get_all_gadget_versions(gadget['vendor'], gadget['short_name'])

    gadgetVersions.sort()
    previousVersion = GadgetResource.objects.get(vendor=gadget['vendor'], short_name=gadget['short_name'], version=gadgetVersions[0])
    for i in range(1, len(gadgetVersions)):
        currentVersion = GadgetResource.objects.get(vendor=gadget['vendor'], short_name=gadget['short_name'], version=gadgetVersions[i])

        # Update UserTags
        previousUserTags = UserTag.objects.filter(idResource=previousVersion)

        for previousUserTag in previousUserTags:
            try:
                UserTag.objects.get(tag=previousUserTag.tag, idUser=previousUserTag.idUser, idResource=currentVersion)
            except:
                newUserTag = UserTag(tag=previousUserTag.tag, idUser=previousUserTag.idUser, idResource=currentVersion)
                newUserTag.save()

        # Update UserVotes
        previousUserVotes = UserVote.objects.filter(idResource=previousVersion)

        for previousUserVote in previousUserVotes:
            try:
                UserVote.objects.get(idUser=previousUserVote.idUser, idResource=currentVersion)
            except:
                newUserVote = UserVote(idUser=previousUserVote.idUser, vote=previousUserVote.vote, idResource=currentVersion)
                newUserVote.save()

        # Update popularity
        update_gadget_popularity(currentVersion)
Example #6
0
#
#     Info about members and contributors of the MORFEO project
#     is available at
#
#     http://morfeo-project.org
#
#...............................licence...........................................#

from catalogue.models import UserTag, Tag, GadgetResource
from django.contrib.auth.models import User

mapping_file = open('mapping.txt', 'r')

mapping_text = mapping_file.read()

mapping_file.close()

tag_mapping = eval(mapping_text)

for (tag_text, user_id, resource_id) in tag_mapping:
     
     tag, created = Tag.objects.get_or_create(name=tag_text)
     
     user = User.objects.get(id=user_id)
     resource = GadgetResource.objects.get(id=resource_id)

     user_tag = UserTag(tag=tag, idUser=user, idResource=resource)
     
     user_tag.save()