Example #1
0
	def __init__(self, parent=None, trigger=None):
		QtGui.QDialog.__init__(self, parent)
		self.parent = parent
		self.trigger = trigger
		self.ui =  Ui_Dialog()
		self.ui.setupUi(self)
		self.ui.le_peso.setValidator(QtGui.QDoubleValidator())
		self.ui.le_rendimiento.setValidator(QtGui.QIntValidator())

		marcas = controlador('obtener marcas', None)
		for marca in marcas:
			self.ui.cb_marca.addItem(marca[1], marca[0])
			print marca[0]
		
		tipos = controlador('obtener tipos', None)
		for tipo in tipos:
			self.ui.cb_tipo.addItem(tipo[1], tipo[0])

		if(trigger == "Nuevo"):
			 self.ui.btn_ok.setEnabled(False)
		if(trigger == "Editar"):
			
			self.ui.le_modelo.setText(parent.vehiculos[1])
			self.ui.le_color.setText(parent.vehiculos[4])
			self.ui.le_motor.setText(str(parent.vehiculos[5]))
			self.ui.le_peso.setText(str(parent.vehiculos[6]))
			self.ui.le_descripcion.setText(parent.vehiculos[7])
			self.ui.le_rendimiento.setText(str(parent.vehiculos[8]))
			

			self.ui.sb_fecha.setValue(self.ui.sb_fecha.valueFromText(str(parent.vehiculos[10])))
			print parent.vehiculos[2]
			print self.ui.cb_marca.findData(parent.vehiculos[2])
			self.ui.cb_marca.setCurrentIndex(self.ui.cb_marca.findData(parent.vehiculos[2]))
			self.ui.cb_tipo.setCurrentIndex(self.ui.cb_tipo.findData(parent.vehiculos[3]))
			
			ruta = os.path.join(parent.dir, parent.vehiculos[9])
			self.ui.le_imagen.setText(ruta)
			scene = QtGui.QGraphicsScene(self)
			map=QtGui.QPixmap(ruta)
			if map.isNull() == False:
				
				width =  170
				height = int(map.rect().width()*width/map.rect().height())
				map=map.scaled(height, width)
				scene.addPixmap(map)
				self.ui.graphicsView.setScene(scene)
			else:
				msgBox = QtGui.QMessageBox()
				msgBox.setWindowTitle('Error al cargar')
				msgBox.setIcon(QtGui.QMessageBox.Information)
				msgBox.setText("No se pudo cargar la imagen.")
				msgBox.exec_()
				self.ui.btn_ok.setEnabled(False)


		self.ui.btn_cancel.clicked.connect(self.cancel)
		self.ui.btn_ok.clicked.connect(self.ok)
		self.ui.btn_marca.clicked.connect(self.nuevo_marca)
		self.ui.btn_tipo.clicked.connect(self.nuevo_tipo)
		self.ui.btn_agregar.clicked.connect(self.nuevo_imagen)
		self.show()
		self.parent.setEnabled(False)
		self.setEnabled(True)
		self.exec_()
Example #2
0
class FormVehiculo(QtGui.QDialog):
	""""""
	result = False
	trigger = None
	vehiculo = []
	archivo = []
	direccion = os.getcwd()
	def __init__(self, parent=None, trigger=None):
		QtGui.QDialog.__init__(self, parent)
		self.parent = parent
		self.trigger = trigger
		self.ui =  Ui_Dialog()
		self.ui.setupUi(self)
		self.ui.le_peso.setValidator(QtGui.QDoubleValidator())
		self.ui.le_rendimiento.setValidator(QtGui.QIntValidator())

		marcas = controlador('obtener marcas', None)
		for marca in marcas:
			self.ui.cb_marca.addItem(marca[1], marca[0])
			print marca[0]
		
		tipos = controlador('obtener tipos', None)
		for tipo in tipos:
			self.ui.cb_tipo.addItem(tipo[1], tipo[0])

		if(trigger == "Nuevo"):
			 self.ui.btn_ok.setEnabled(False)
		if(trigger == "Editar"):
			
			self.ui.le_modelo.setText(parent.vehiculos[1])
			self.ui.le_color.setText(parent.vehiculos[4])
			self.ui.le_motor.setText(str(parent.vehiculos[5]))
			self.ui.le_peso.setText(str(parent.vehiculos[6]))
			self.ui.le_descripcion.setText(parent.vehiculos[7])
			self.ui.le_rendimiento.setText(str(parent.vehiculos[8]))
			

			self.ui.sb_fecha.setValue(self.ui.sb_fecha.valueFromText(str(parent.vehiculos[10])))
			print parent.vehiculos[2]
			print self.ui.cb_marca.findData(parent.vehiculos[2])
			self.ui.cb_marca.setCurrentIndex(self.ui.cb_marca.findData(parent.vehiculos[2]))
			self.ui.cb_tipo.setCurrentIndex(self.ui.cb_tipo.findData(parent.vehiculos[3]))
			
			ruta = os.path.join(parent.dir, parent.vehiculos[9])
			self.ui.le_imagen.setText(ruta)
			scene = QtGui.QGraphicsScene(self)
			map=QtGui.QPixmap(ruta)
			if map.isNull() == False:
				
				width =  170
				height = int(map.rect().width()*width/map.rect().height())
				map=map.scaled(height, width)
				scene.addPixmap(map)
				self.ui.graphicsView.setScene(scene)
			else:
				msgBox = QtGui.QMessageBox()
				msgBox.setWindowTitle('Error al cargar')
				msgBox.setIcon(QtGui.QMessageBox.Information)
				msgBox.setText("No se pudo cargar la imagen.")
				msgBox.exec_()
				self.ui.btn_ok.setEnabled(False)


		self.ui.btn_cancel.clicked.connect(self.cancel)
		self.ui.btn_ok.clicked.connect(self.ok)
		self.ui.btn_marca.clicked.connect(self.nuevo_marca)
		self.ui.btn_tipo.clicked.connect(self.nuevo_tipo)
		self.ui.btn_agregar.clicked.connect(self.nuevo_imagen)
		self.show()
		self.parent.setEnabled(False)
		self.setEnabled(True)
		self.exec_()

	def nuevo_imagen(self):
		"""Abre una ventana en la cual el usuario buscara y seleccionara un archivo con la extension
		   .png, .xpm o .jpg """
		dialog = QtGui.QFileDialog(self)
		dialog.setNameFilter(self.tr("Images (*.png *.xpm *.jpg)"))
		dialog.setFileMode(QtGui.QFileDialog.ExistingFile)
		if dialog.exec_():
			fileNames = dialog.selectedFiles()
			fileName = fileNames[0]
			self.ui.le_imagen.setText(fileName)
			scene = QtGui.QGraphicsScene(self)
			map=QtGui.QPixmap(fileName)
			width =  170
			height = int(map.rect().width()*width/map.rect().height())
			map=map.scaled(height, width)
			scene.addPixmap(map)
			self.ui.graphicsView.setScene(scene)
			self.ui.btn_ok.setEnabled(True)
	
	def nuevo_tipo(self):
		"""Verifica si el tipo ingresado por el usuario ya existia o no, en el caso
		   que no exista """
		dialog_tipo = FormTipo(self, "Nuevo")
		if dialog_tipo.result:
			controlador('añadir tipo', dialog_tipo.tipo)
		self.ui.cb_tipo.clear()
		tipos = controlador('obtener tipos', None)
		for tipo in tipos:
			self.ui.cb_tipo.addItem(tipo[1], tipo[0])

	def nuevo_marca(self):
		"""Verifica si la marca ya existe en la base de datos, si resulta no existir
		   en la base de datos, esta es agregada """
		dialog_marca = FormMarca(self, "Nuevo")
		
		if dialog_marca.result:
			controlador('añadir marca', dialog_marca.marca)

		self.ui.cb_marca.clear()
		marcas = controlador('obtener marcas', None)
		for marca in marcas:
			self.ui.cb_marca.addItem(marca[1], marca[0])

	def cancel(self):
		"""Se termina el dialogo y se cierra la ventana al clickear el boton Cancelar"""
		self.reject()
		self.parent.setEnabled(True)
	
	def ok(self):
		"""Almacena los datos ingresados por el usuario en una lista, para luego ingresarlos
		   en la base de datos, con la condicion de que los datos no sean nulos """
		nombre_archivo = os.path.basename(self.ui.le_imagen.text())
		fecha = self.ui.sb_fecha.textFromValue(self.ui.sb_fecha.value())
		id_marca = self.ui.cb_marca.itemData(self.ui.cb_marca.currentIndex())
		id_tipo = self.ui.cb_tipo.itemData(self.ui.cb_tipo.currentIndex())
		
		self.vehiculo = [self.ui.le_modelo.text(),
						id_marca,
						id_tipo,
						self.ui.le_color.text(),
						self.ui.le_motor.text(),
						self.ui.le_peso.text(),
						self.ui.le_descripcion.text(),
						self.ui.le_rendimiento.text(),
						nombre_archivo,
						fecha
						]
		if (id_marca!=None and id_tipo!=None and self.ui.le_color.text()!="" 
			and self.ui.le_motor.text()!="" and self.ui.le_peso.text()!="" 
			and self.ui.le_rendimiento.text()!=""):
			#if self.trigger == "Nuevo":
			try:
				shutil.copy2(self.ui.le_imagen.text(), self.parent.dir)
			except Exception as e:
				print e.args[0]
			self.result = True
			self.parent.setEnabled(True)
			self.accept()
	
	def closeEvent(self, event):
		self.parent.setEnabled(True)
		self.reject()