Example #1
0
    def merge(self, event): 
        
        if self.frame.tmpltXML is not None:
            self.frame.statusbar.SetStatusText("Loading......")
            itemID = self.frame.currentItem
            self.frame.tree_ctrl.SelectItem(itemID, select=True)
            pydata = self.frame.tree_ctrl.GetPyData(itemID)
            # new stuff for _0_3
            ## refactor - move to util so util checks datatype
            datatype, idx1, idx2 = GO.util.getFileType(str(pydata[2]))
            #print datatype
            if datatype:
                record = datatype(str(pydata[2]))
                isoMDRecord = record.x19139Meta()
                isoMDRecord['{http://www.isotc211.org/2005/gmd}contact'] = self.userinfo
                #print isoMDRecord
                mdrecord = record.xMeta()
                md = MDR.metadataRecord()
                root = "."
                
                self.merged = md.mergeInfo(isoMDRecord, self.frame.tmpltXML, root)
                
                self.frame.postMessage(self.merged)
            out = 1
        else:
            self.frame.postMessage("Please login and select template metadata record.")
            out = 0

        self.frame.statusbar.SetStatusText("Statusbar")
        
        return out
Example #2
0
 def tmpltChoice(self, event):
     if self.cb.GetSelection():
         selString = self.cb.GetString(self.cb.GetSelection())
         selId = self.controller.tmpltList[selString]        
         self.tmpltXML, self.schema = MDR.metadataRecord().getTemplateMDRecord(self.controller.user, self.controller.pword, selId)  
         print "hi", self.schema      
         self.postMessage(self.tmpltXML)
Example #3
0
    def loginAction(self, username, password):
        

        self.user = username
        self.pword = password
                
        MDR.GNConnection.setUser(self.user)
        MDR.GNConnection.setPass(self.pword)
        md = MDR.metadataRecord()
        self.tmpltList = md.GetTemplateList(self.user, self.pword)
        self.userinfo = md.GetUserInfo(self.user, self.pword)      
        keys = self.tmpltList.keys()
        keys.sort()
        
        self.frame.popTmpltList(keys)
Example #4
0
    def xtrct(self, event): # wxGlade: MyFrame.<event_handler>
        output = []
        ## status bar is not clearing - done 14-3-9 BC
        self.frame.statusbar.SetStatusText("Loading......")
        itemID = self.frame.currentItem
        self.frame.tree_ctrl.SelectItem(itemID, select=True)
        pydata = self.frame.tree_ctrl.GetPyData(itemID)
        
        #check for existing metadata xml or html or htm file
        fname,ext = os.path.splitext(str(pydata[1]))
        mdl = 0
        mdf = []
        mdf.append(fname + '.htm')
        mdf.append(fname + '.html')
        mdf.append(fname + '.xml')
        print mdf

        for name in mdf :
            if os.path.exists(name):
                with open(name, 'r') as fo:
                    output += ("Metadata link exists!", fo.read())
            
        # new stuff for _0_3
        ## refactor - move to util so util checks datatype
        datatype, idx1, idx2 = GO.util.getFileType(str(pydata[2]))
        print datatype, idx1, idx2
        
        if datatype:
            record = datatype(str(pydata[2]))
            print 'record', record
            mdrecord = record.xMeta()
            print 'mdrecord', mdrecord
            md = MDR.metadataRecord()
            print 'md'
            ## Can I find a way to avoid passing self?
            ##display = md.displayMDRecord(mdrecord)
            output.append(mdrecord)
            del mdrecord
            self.frame.postMessage(output)
            
        # end new stuff

        else :
            self.frame.postMessage("Non-gis Data")
        self.frame.statusbar.SetStatusText("Statusbar")
Example #5
0
    def submitGN(self, event):
        
        if self.merge(event):
        
            self.frame.statusbar.SetStatusText("Loading......")
            md = MDR.metadataRecord()
            uuid, id, cookie = md.submitMDRecord(self.merged, self.user, self.pword)
            GNServer = MDR.GNConnection.GNServer
            
            edlink = 'http://' + GNServer + '/geonetwork/srv/en/metadata.edit?id='+ id
            link = 'http://' + GNServer + '/geonetwork/srv/en/metadata.show?uuid='+ uuid

            #self.frame.postMessage(link)
            
            self.frame.statusbar.SetStatusText(link)
            
            htxt = """<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN">
                    <html>
                    <head>
                    <meta http-equiv="REFRESH" content="0;""" + link + """">
                    </head>
                    <BODY></BODY>
                    </HTML>"""
                    
            itemID = self.frame.currentItem
            pydata = self.frame.tree_ctrl.GetPyData(itemID)
            fname = os.path.splitext(str(pydata[1]))
            htfn = fname[0] + ".htm"
            hfile = open(htfn, 'w')
            hfile.write(htxt)
            self.frame.postMessage(uuid)
            self.frame.postHTML(edlink)

    ##        self._hyper1 = hl.HyperLinkCtrl(self, wx.ID_ANY, "GeoNetwork Edit Page",
    ##                                        URL=link)
    ##        contents.Add(self._hyper1, 0, wx.ALL, 10)
    ##        

        else:
            self.frame.postMessage("Please login and select template metadata record.")
            
        self.frame.statusbar.SetStatusText("Statusbar")