def procesar(self): if self.oferta['idoferta'].get()==None : self.oferta['idoferta'].set(0) for key in self.widgofer: # se pasan los campos escribibles if self.widgofer[key][3]!=None : self.oferta[key].set(self.widgofer[key][3].get()) dictsit.makeoferta(dictsit.elem_sitio(self.sitio),self.oferta,'w') # escribir los campos en la web dictsit.makeoferta(dictsit.elem_sitio(self.sitio),self.oferta,"R") # leer los campos asociados a la escitura if messagebox.askquestion(' Adverterncia', 'Esta seguro de enviar la oferta'): dictsit.makeoferta(dictsit.elem_sitio(self.sitio),self.oferta,'P') # escribir los campos en la web
def filtrarXlista(self): idiosel=self.lbidio.curselection() habsel=self.lbtema.curselection() #print('idio ',idiosel) #print('hab ',habsel) xdict=dictsit.elem_sitio(self.sitio) url=xdict['url'] if idiosel!=(): strini=xdict['filtroidio'][0] if xdict['filtroidio'][2]=='ISO': # se usa la ISO 659 para hacer a query de idiomas idiomtrad=[] for idio in idiosel: idiomtrad.append(self.lbidio.get(idio)) if len(idiomtrad)==1 : idiomtrad.append('') # para tratar las tuplas de 1 element que dan una coma adicional idioISO=queryidiomasISO(enumeradores.Idiomas, idiomtrad) #retorna una[(lista de tupla)] for idio in idioISO[0]: strini=strini+idio+xdict['filtroidio'][1] else: # no hay que traducri al ISO 639 for idio in idiosel: strini+=self.lbidio.get(idio)+xdict['filtroidio'][1] url=url+strini[:-len(xdict['filtroidio'][1])]+xdict['filtrounion'][0] if habsel!=(): strini=xdict['filtroskills'][0] for skill in habsel: strini+=self.lbtema.get(skill)+xdict['filtroskills'][1] url=url+strini[:-len(xdict['filtroskills'][1])]+xdict['filtrounion'][0] url=url[:-len(xdict['filtrounion'][0])] # se le quita la utima union dictsit.gotourl(url)
def ofertar(self): #TODO se necesita creAR EL ECANISMO EN BASE DE DATOS DE TIPO DE LOGIN dictsit.switchtab(2,self.proyecto['.ofertar'].get()) if not self.login: if dictsit.login(dictsit.elem_sitio(self.sitio),'Google',self.nombusq,self.clavebusq)!=None: self.login=True else: messagebox.showerror('Error en el logeo', 'No puede ofertar, Favor revisar la llave de la base de datos') return #dictsit.switchtab(2,self.proyecto['.ofertar'].get()) if not dictsit.assertoferta(dictsit.elem_sitio(self.sitio)): #TODO esta mal parece qur yirnr que ponerse este o no logeado messagebox.showerror('Error en la web', 'No puede encontrar la web de oferta, Favor revisar la llave del diccionario') return errors = dictsit.makeoferta(dictsit.elem_sitio(self.sitio),self.oferta,'r') if errors!=[] : messagebox.showwarning('Advertencia', 'no se puderon encontrar '+','.join(errors)) self.froferta.pack(side=LEFT) self.muestra_ofer(dictsit.elem_sitio(self.sitio),True,False,4,16) """"click
def filtrarXlistaRedu(self): # este es un uso aterno sin que usen los xdict u todo el problema de los filtros y la ISO idiosel=self.lbidio.curselection() idiomtrad=[] for idio in idiosel: idiomtrad.append(self.lbidio.get(idio)) habsel=self.lbtema.curselection() habtrab=[] for skill in habsel: strskill=self.lbtema.get(skill) habtrab.append(strskill) edifilter= ' '.join(idiomtrad) +' ' +' '.join(habtrab) print('Filtado x Lista ',edifilter) listaproyectos=dictsit.findelements(dictsit.elem_sitio(self.sitio),edifilter,'gen') self.edit_url.set(dictsit.driver.current_url) self.llenagrid(self.colspro,listaproyectos)
def verproyecto(self): self.urllist=dictsit.driver.current_url #dictsit.driver.get(self.proyecto['referencia'].get()) dictsit.switchtab(1,self.proyecto['referencia'].get()) if dictsit.findextraproy(dictsit.elem_sitio('Workana'),self.proyecto)==False: messagebox.showinfo('','No se pudo abrir la web') self.edit_url.set(self.proyecto['referencia'].get()) self.frlist.pack_forget() print('propagateprel',self.frgridprel.pack_propagate()) self.frgridprel.pack_forget() print('propagatelistinside', self.frlistinside.pack_propagate()) self.widgproy['descripcion']=[Text,20,50] print('muestraproy') #self.butverproyecto.configure(text='Ver Listado') #self.butverproyecto.configure(command=self.verlistado) self.butsalvar.configure(state='normal') self.butofertar.configure(state='normal') self.muestra_proy(False,6,16)
def menos(self): self.click-=1 listaproyectos=dictsit.findelements(dictsit.elem_sitio(self.sitio),self.click) self.edit_url.set(dictsit.driver.current_url) self.llenagrid(self.colspro,listaproyectos)
def filtrar(self): listaproyectos=dictsit.findelements(dictsit.elem_sitio(self.sitio),self.var_filtro.get(),'gen') self.edit_url.set(dictsit.driver.current_url) self.llenagrid(self.colspro,listaproyectos)
def forward(self): self.edit_url.set(dictsit.driver.forward) listaproyectos=dictsit.findelements(dictsit.elem_sitio(self.sitio)) #self.butshow=tk.Checkbutton(frameshow,text='Ocultar', variable=self.ocultar,command=self.ocultarlistprel).grid(row=3,column=5) self.llenagrid(self.colspro, listaproyectos)
def muestraforma(self): self.lbidio = Listbox(self.frlistinside,exportselection=False,selectmode=MULTIPLE,width=8, height=30) self.lbidio.pack(side=LEFT,expand=0,fill=Y) for idio in self.lenguaje: self.lbidio.insert(END,idio) # despues se analiza si se coge de bd #self.lbidio.insert(END,Idiomas(i).name[0:3].upper()) #if self.lenguaje!=None: #self.lbidio.selection_set(self.lbidio.get(0,END).index(self.lenguaje)) self.var_hab=StringVar() self.listahab=enumeradores.verenum(Habilidades) print('listahab', self.listahab) #self.var_tema.set(listahab) self.lbtema = Listbox(self.frlistinside,exportselection=False,selectmode=MULTIPLE,listvariable=self.var_hab,width=8, height=30) for item in self.listahab: self.lbtema.insert(END,item[1]) self.lbtema.pack(side=LEFT,expand=0,fill=Y) #self.var_tema.set(['salu','pres', 'expe', 'cert', 'refe', 'extras', 'desp','todo']) #if self.habi!=None: #self.lbtema.selection_set(self.lbtema.get(0,END).index(self.habi)) self.textlab1=Label(self.frencedit,text='URL Proyecto: ') self.textlab1.pack(side=LEFT) self.edit_url=StringVar() self.text_edit = Entry(self.frencedit,textvariable=self.edit_url,width=60,bg='white',fg='black') #self.text_edit.bind('<Alt-KeyPress>',self.copyfromcomposer) self.text_edit.pack(side=LEFT) if self.urlproy!=None: self.edit_url.set(self.urlproy) self.butrefreshurl=Button(self.frencedit, text= 'Refescar',command=self.refresh) self.butrefreshurl.pack(side=LEFT, padx=4) self.butback= Button(self.frencedit, text= ' < ',command=self.backward) self.butback.pack(side=LEFT, padx=10) self.butforward= Button(self.frencedit, text= ' > ',command=self.forward) self.butforward.pack(side=LEFT, padx=10) self.colspro, colsize, colview =dictsit.findkeynamesize(dictsit.elem_sitio(self.sitio)) #colspro = ['Titulo','Fecha','Elemento','Fechas','Bids','Clientes','Paises','Rating','Presupuesto','Textos','url','Skills'] self.listprel =ttk.Treeview(self.frgridprel, columns=self.colspro, displaycolumns=colview,height=12, padding=1, show="headings") self.listprel.pack(side=TOP) for col in self.colspro: self.listprel.column(col,width=colsize[self.colspro.index(col)],anchor=W) self.listprel.heading(col, text=col) self.lab_filtro =Label(self.frbusqedit,text='Filtrar por:') self.lab_filtro.pack(side=LEFT) self.var_filtro = StringVar() self.var_filtro.set(self.filtro) self.edit_filtro = Entry(self.frbusqedit,textvariable=self.var_filtro,width=60,bg='white',fg='black') self.edit_filtro.pack(side=LEFT,fill=Y) self.butfiltrar= Button(self.frbusqedit, text= 'Filtrar',command=self.filtrar) self.butfiltrar.pack(side=LEFT, padx=5) self.butsitio= Button(self.frmenubut, text= 'Sitio',command=self.gositio) self.butsitio.pack(side=LEFT, padx=5) self.butmenos1= Button(self.frmenubut, text= ' <1 ',command=self.menos) self.butmenos1.pack(side=LEFT, padx=5) self.butmas1= Button(self.frmenubut, text= ' 1> ',command=self.mas) self.butmas1.pack(side=LEFT, padx=5) self.butcomponer= Button(self.frmenubut, text= 'Ver Listado',command=self.verlistado) self.butcomponer.pack(side=LEFT, padx=5) self.butverproyecto= Button(self.frmenubut, text= 'Ver Proyecto',command=self.verproyecto) self.butverproyecto.pack(side=LEFT, padx=5) self.butmarcarproyecto= Button(self.frmenubut, text= 'Marcar Proyecto',command=self.marcarproyecto) self.butmarcarproyecto.pack(side=LEFT, padx=5) self.butverproyecto.bind('<<Alt-Control-KeyPress>>', lambda event:self.controlkey(event)) self.butofertar= Button(self.frmenubut, text= 'Ofertar',command=self.ofertar) self.butofertar.pack(side=LEFT, padx=5) self.butsalvar= Button(self.frmenubut, text= 'Salvar',command=self.salvar) self.butsalvar.pack(side=LEFT, padx=5) self.butcomponer= Button(self.frmenubut, text= 'Cover Letter',command=self.defcover) self.butcomponer.pack(side=LEFT, padx=5) self.butsalvarofer= Button(self.frmenubut, text= 'Procesar Oferta',command=self.procesar) self.butsalvarofer.pack(side=LEFT, padx=5) self.butlistfilter= Button(self.frlistbut, text= 'Filtrar x Lista',command=self.filtrarXlistaRedu) self.butlistfilter.pack(side=BOTTOM, padx=10) listaproyectos=dictsit.findelements(dictsit.elem_sitio(self.sitio)) #self.butshow=tk.Checkbutton(frameshow,text='Ocultar', variable=self.ocultar,command=self.ocultarlistprel).grid(row=3,column=5) self.listprel.bind('<<TreeviewSelect>>', lambda event: self.selectItem(event)) self.listprel.tag_configure('mark', foreground='red') self.llenagrid(self.colspro, listaproyectos)
def analizar(self): #def __init__(self,sitio,url,dictini,xdictedit,tipstruct,marked=[]): definicion actual de analizar ds = Dictofindsel(self.nomsitio, self.sitio['urlproy'].get(), elem_sitio('Workana'), elem_sitio(self.sitio['nomsitio']), self.tipositio)
self.strout[key].set('') else: self.strout[key].set(str(self.dictini[key])) self.dictout[key] = li.LabelInput(self.fredit, key + '= ' + str(self.dictini[key]), width=30, input_var=self.strout[key]) for col in range(len(cols)): if cols[col] < heightmax: self.dictout[key].grid(row=cols[col], column=col) self.dictout[key].bind("<Button-1>", self.focus) print('posic wid', key, cols[col], col) cols[col] += 1 break else: continue self.fredit.bind_all("<Button-1>", self.focus) return (cols[col], col) if __name__ == '__main__': import Freelancer20 as frl #po=Busqproywin(1,2,'Workana',['English','Español','Português'],['Delphi','C++'],'https://www.workana.com/jobs?ref=home_top_bar','Google','*****@*****.**','Karpov75%','freebd.db') ds = dictofindsel('Freelancer', 'https://www.freelancer.com/jobs/1/', di.elem_sitio('Workana'), frl.xdict, tipstruct.dictgen) ds.muestra_proy(True, 2, 16) #ds.clean() #print (elem_sitio('Workana'))