[opencoffee-devel] Parche agregar workstations |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/opencoffee-devel Archives
]
- To: opencoffee-devel@xxxxxxxxxxxxxxxxxxx
- Subject: [opencoffee-devel] Parche agregar workstations
- From: "Jose Arcangel Salazar Delgado" <arcangel.salazar@xxxxxxxxxxxxxxxxxxxxxx>
- Date: Wed, 24 Oct 2007 13:14:20 -0500
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:sender:to:subject:mime-version:content-type:x-google-sender-auth; bh=XHtfvISSLZQzKjN04DaxdCEcAh2jZLG6DdwKCUPYPBQ=; b=stBJBA8q9HMwWCYjUVDwUmCeHa2E9vwGFO17jvL/xnqECHCMq/ISENryd82xRLN8KrP1HYCq9UCxQO7A8RF0OTLeDqoS0dUPk42XvDfkkTnnRG5T+MrfccYFHYghlLs5QHI3IFACd+pwcz/DLv3Y3Q9icjMBhx7KkDTVETuGw+I=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:sender:to:subject:mime-version:content-type:x-google-sender-auth; b=oQG+VgzpYNBh+oRaZw0mZMo6mZl1snw4savd6SPcBBY615VH/4bCi5rOzVrGzR3iexyLRYfYyeG3T6S4qqXEwtXpZ/9TTJf+4kBikGAivgWyZDfAeR3KFrDoP0bFY1Op0Zqkd2iBimkC8SUXOJDgBiVic+2H/Ht6Z1C4FyLTmlY=
Hola Compañeros.
Primero que nada les pido una disculpa por no haberme reportado antes.
Tuve algunos problemas personales. Pasando a otra cosa, les envío este
parche preeliminar que habilita el soporte para agregar workstations
desde el formulario. Falta que se guarden las configuraciones en
memoria secundaria, ya sea en el archivo XML o en la DB (creo que iba
a ser en el archivo XML pero no recuerdo bien).
Durante la programación encontré 2 detalles:
* Los nombre de 2 lineEdits en el formulario de las workstations
estaban con repetidos, seguidos por un _2. No se si estos eran los
nombres correctos, así que los usé tal como estaban.
* Los tabuladores en el formulario de las workstations funcionan de
manera extraña. Tampoco modifique este comportamiento.
Como siempre, el parche se agrega con:
patch -p4 <patch.diff
Copiandolo en el trunk del servidor.
Espero sus comentarios.
Index: /home/arcangel/workspace/opencoffee-server/core/workstations/workstationsTab.py
===================================================================
--- /home/arcangel/workspace/opencoffee-server/core/workstations/workstationsTab.py (revision 353)
+++ /home/arcangel/workspace/opencoffee-server/core/workstations/workstationsTab.py (working copy)
@@ -46,8 +46,7 @@
self.workstations=[]
## Función que agrega las workstations al tab.
- # TODO: asignar los nombres e ids a las workstations.
- def addWorkstation(self):
+ def addWorkstation(self,workstation=None):
if self.xAxis > 2:
self.xAxis =0
self.yAxis +=1
@@ -52,7 +51,12 @@
self.xAxis =0
self.yAxis +=1
- self.workstations.append(WorkstationTemplate())
+ #Si no se nos proporciona una objeto workstations, se agrega al tab uno vacio.
+ #De lo contrario, se utiliza el objeto proporcionado.
+ if(workstation==None):
+ self.workstations.append(WorkstationTemplate())
+ else:
+ self.workstations.append(workstation)
self.gbox.addWidget(self.workstations[-1], self.yAxis, self.xAxis)
self.xAxis += 1
@@ -59,10 +63,17 @@
## Se define la clase de ui_workstations.py
class WorkstationTemplate (QWidget, Ui_WorkstationTemplate):
- def __init__(self, parent = None):
+ def __init__(self, id= None, descripcion= None,ip= None,mac= None, conf= None, parent = None):
QWidget.__init__(self, parent)
self.setupUi(self)
+ #Se agregan los atributos que necesita el formulario
+ self.id=id
+ self.descripcion=descripcion
+ self.ip=ip
+ self.mac=mac
+ self.conf=conf
+
# Estilizamos el widget para los puestos
self.setStyleSheet ("QFrame {background-image: url(:/Styles/styles/workstationBg.png); \
background-repeat: no repeat; \
Index: /home/arcangel/workspace/opencoffee-server/MainApp.py
===================================================================
--- /home/arcangel/workspace/opencoffee-server/MainApp.py (revision 353)
+++ /home/arcangel/workspace/opencoffee-server/MainApp.py (working copy)
@@ -52,6 +52,7 @@
from core.tools.console import toolsConsole # Utilidad de la consola
from core.tools.calc import toolsCalc # Utilidad de la calculadora
from core.workstations.workstationsTab import WorkstationsTab
+from core.workstations.workstationsTab import WorkstationTemplate
from core.db.dbMain import LoginAdmin # iniciación de la DB para el login
@@ -307,7 +308,9 @@
## Configurar las conexiones de Signals & Slots deinidas en los GUIs ##
# Botónes de Minimizar, maximizar y cerrar ventana
self.connect(self.minimizeButton, SIGNAL("clicked()"),self.showMinimized)
- self.connect(self.closeButton, SIGNAL("clicked()"),self.hide)
+ self.connect(self.closeButton, SIGNAL("clicked()"),self.hide)
+
+ self.connect(self.applyButton, SIGNAL("clicked()"), self.onApplyButtonClicked)
# Activamos la página correspondiente del stackWidget cuando elegimos un item de listWidget
self.connect(self.listWidget, SIGNAL("itemClicked (QListWidgetItem *)"), self.serverModules)
@@ -434,6 +437,12 @@
# Mostramos el QLabel de login error
self.loginWindow.loginError.show()
+ #Método que se dispara cuando se presiona el applyButton.
+ def onApplyButtonClicked(self):
+ #Si el usuario se encuentra en la pestaña de las workstations, se dispara el agregado
+ #de la workstations.
+ if(self.stackedWidget.currentIndex()==2):
+ self.stackedWidget.currentWidget().addWorkstation()
## Clases a Utilizar en OpenCoffee, generalmente para presentar o activar una clase/UI ##
# Se define la clase de ui_login.py
@@ -611,6 +620,27 @@
# Se establece un tamaño minimo. Con esto el scrollArea ocupa todo el tab.
self.scrollArea.setMinimumSize(610, 410)
+ #Función que agrega workstations al workstationTab.
+ #TODO: Guardar la configuración de la workstation en memoria secundaria.
+ #TODO: Validar los datos del formulario
+ def addWorkstation(self):
+ #Se crea la workstation con los parámetros obtenidos de los lineEdit
+ #TODO: Cambiar el nombre de los lineEdit en el template.
+ workstation=WorkstationTemplate(self.idLineEdit.text(),
+ self.idLineEdit_2.text(),
+ self.ipLineEdit.text(),
+ self.ipLineEdit_2.text(),
+ self.checkBox.checkState ())
+
+ #Se limpian los lineEdit despues de su uso.
+ self.idLineEdit.clear()
+ self.idLineEdit_2.clear()
+ self.ipLineEdit.clear()
+ self.ipLineEdit_2.clear()
+
+ #Se agrega la workstation al worstationTab
+ self.workstationsTab.addWorkstation(workstation)
+
# Se define la clase de ui_clients.py
class ClientsWidget (QWidget, Ui_clientsWidget):