Advertisement
Sax

Optiv2.py

Sax
Nov 28th, 2012
355
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 11.52 KB | None | 0 0
  1. #optiv2.py
  2. # -*- coding: utf-8 -*-
  3.  
  4. import sys
  5. from PySide import QtGui, QtCore
  6. import csv
  7.  
  8. class App (QtGui.QMainWindow):
  9.  
  10.     def __init__(self, parent=None):
  11.         super(App, self).__init__(parent)
  12.  
  13.         self.GUI()
  14.  
  15.     def GUI(self):
  16.         """ Graphical User Interface """
  17.  
  18.         self.central_widget = MainWidget(self)
  19.         self.setCentralWidget(self.central_widget)
  20.  
  21.         self.statusBar().showMessage(str('Listo.'))
  22.         self.setGeometry(300, 300, 500, 250)
  23.         self.setWindowTitle('Asignador de tareas - Common Rocket')
  24.         self.setWindowIcon(QtGui.QIcon('logo.png'))
  25.         self.show()
  26.  
  27.     def closeEvent(self, event):
  28.         reply = QtGui.QMessageBox.question(self, 'Aviso',"Seguro que quieres salir?",
  29.                                            QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No)
  30.         if reply == QtGui.QMessageBox.Yes:
  31.             archivo.seek(0)
  32.             writer = csv.writer(archivo)
  33.             for row in empleados:
  34.                 writer.writerow(row)
  35.             archivo.close()
  36.             event.accept()
  37.  
  38.         else:
  39.             event.ignore()
  40.  
  41. class MainWidget(QtGui.QWidget):
  42.  
  43.     def __init__(self, parent=None):
  44.         super(MainWidget, self).__init__(parent)
  45.  
  46.         self.GUI()
  47.  
  48.     def GUI(self):
  49.         """ GUI del Widget """
  50.  
  51.         self.grid = QtGui.QGridLayout(self)
  52.         self.grid.setSpacing(10)
  53.  
  54.         self.typo = QtGui.QPixmap('typo.png')
  55.         self.label = QtGui.QLabel(self)
  56.         self.label.setPixmap(self.typo)
  57.  
  58.         self.disbtn = QtGui.QPushButton('Design')
  59.         self.disbtn.setStatusTip("Encuentra a los mejores empleados para Graphic Design.")
  60.         self.disbtn.clicked.connect(self.dis)
  61.        
  62.         self.fotobtn = QtGui.QPushButton('Photo')
  63.         self.fotobtn.setStatusTip("Encuentra a los mejores empleados para Photo Sessions.")
  64.         self.fotobtn.clicked.connect(self.foto)
  65.        
  66.         self.socialbtn = QtGui.QPushButton('Social')
  67.         self.socialbtn.setStatusTip("Encuentra a los mejores empleados para Social Media.")
  68.         self.socialbtn.clicked.connect(self.social)
  69.  
  70.         self.textarea = QtGui.QTextEdit()
  71.         self.textarea.setReadOnly(True)
  72.  
  73.         self.grid.addWidget(self.label, 0, 0, 1, 1)
  74.  
  75.         self.grid.addWidget(self.disbtn, 1, 0)
  76.         self.grid.addWidget(self.fotobtn, 2, 0)
  77.         self.grid.addWidget(self.socialbtn, 3, 0)
  78.  
  79.         self.grid.addWidget(self.textarea, 0, 1, 4, 1)
  80.  
  81.         self.setLayout(self.grid)
  82.         self.show()
  83.  
  84.     def dis(self):
  85.         """ Muestra los dos mejores en diseño disponibles """
  86.         self.aptitudes = [] #0 Empleado, 1 Disponibilidad, 2 Diseño, 3 Foto, 4 Social, 5 Num. Proyectos
  87.  
  88.         for wn in empleados:
  89.             self.aptitudes.append(wn[2])
  90.         print self.aptitudes #debug
  91.            
  92.         self.index_best_apt = self.aptitudes.index(max(self.aptitudes))
  93.         self.best_apt = self.aptitudes[self.index_best_apt]
  94.         self.aptitudes[self.index_best_apt] = 0
  95.         print self.aptitudes #debug
  96.  
  97.         self.index_better_apt =  self.aptitudes.index(max(self.aptitudes)) #El segundo mayor, que es el mayor de los que quedaron
  98.         self.better_apt = self.aptitudes[self.index_better_apt]
  99.        
  100.         self.best_user = empleados[self.index_best_apt][0]
  101.         self.trabajos_best_user = empleados[self.index_best_apt][5]
  102.        
  103.         self.better_user = empleados[self.index_better_apt][0]
  104.         self.trabajos_better_user = empleados[self.index_better_apt][5]
  105.  
  106.         self.textarea.setText(
  107.             "<h3>Graphic Design</h3> <br />El mejor empleado que tienes para Graphic Design es <b>" + self.best_user + "</b> con una aptitud de <i>" + self.best_apt +
  108.             "</i>, y tene una carga de <b>" + self.trabajos_best_user + "</b> trabajos actualmente.<br /><br />El empleado que le sigue es <b>" + self.better_user + "</b>, con una aptitud de <i>" + self.better_apt +
  109.             "</i> y una carga de <b>" + self.trabajos_better_user + "</b> trabajos.<br /><br /> ")
  110.  
  111.         if empleados[self.index_best_apt][1] == '0':
  112.             self.textarea.append(self.best_user + " parece estar ocupado.")
  113.         else:
  114.             self.textarea.append(self.best_user + " parece estar disponible.")
  115.  
  116.         if empleados[self.index_better_apt][1] == '0':
  117.             self.textarea.append(self.better_user + " parece estar ocupado.")
  118.         else:
  119.             self.textarea.append(self.better_user + " parece estar disponible.")          
  120.  
  121.         self.best_apply = QtGui.QMessageBox.question(self, "Asignar a la tarea?", "Deseas agregar a " + self.best_user + " a la tarea seleccionada?",
  122.                                                 QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes)
  123.         if self.best_apply == QtGui.QMessageBox.Yes:
  124.             empleados[self.index_best_apt][1] = 0
  125.             empleados[self.index_best_apt][5] = str(int(empleados[self.index_best_apt][5]) + 1)
  126.            
  127.         else:
  128.             self.better_apply = QtGui.QMessageBox.question(self, "Asignar a la tarea?", "Deseas agregar a " + self.better_user + " a la tarea seleccionada?",
  129.                                                 QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes)
  130.             if self.better_apply == QtGui.QMessageBox.Yes:
  131.                 empleados[self.index_better_apt][1] = 0
  132.                 empleados[self.index_better_apt][5] = str(int(empleados[self.index_better_apt][5]) + 1)
  133.         print empleados #debug
  134.            
  135.  
  136.     def foto(self):
  137.         """ Muestra los dos mejores en foto disponibles """
  138.         self.aptitudes = [] #0 Empleado, 1 Disponibilidad, 2 Diseño, 3 Foto, 4 Social, 5 Num. Proyectos
  139.  
  140.         for wn in empleados:
  141.             self.aptitudes.append(wn[3])
  142.         print self.aptitudes #debug
  143.            
  144.         self.index_best_apt = self.aptitudes.index(max(self.aptitudes))
  145.         self.best_apt = self.aptitudes[self.index_best_apt]
  146.         self.aptitudes[self.index_best_apt] = 0
  147.         print self.aptitudes #debug
  148.  
  149.         self.index_better_apt =  self.aptitudes.index(max(self.aptitudes)) #El segundo mayor, que es el mayor de los que quedaron
  150.         self.better_apt = self.aptitudes[self.index_better_apt]
  151.        
  152.         self.best_user = empleados[self.index_best_apt][0]
  153.         self.trabajos_best_user = empleados[self.index_best_apt][5]
  154.        
  155.         self.better_user = empleados[self.index_better_apt][0]
  156.         self.trabajos_better_user = empleados[self.index_better_apt][5]
  157.  
  158.         self.textarea.setText(
  159.             "<h3>Photo Sessions</h3> <br />El mejor empleado que tienes para Photo Sessions es <b>" + self.best_user + "</b> con una aptitud de <i>" + self.best_apt +
  160.             "</i>, y tene una carga de <b>" + self.trabajos_best_user + "</b> trabajos actualmente.<br /><br />El empleado que le sigue es <b>" + self.better_user + "</b>, con una aptitud de <i>" + self.better_apt +
  161.             "</i> y una carga de <b>" + self.trabajos_better_user + "</b> trabajos.<br /><br /> ")
  162.  
  163.         if empleados[self.index_best_apt][1] == '0':
  164.             self.textarea.append(self.best_user + " parece estar ocupado.")
  165.         else:
  166.             self.textarea.append(self.best_user + " parece estar disponible.")
  167.  
  168.         if empleados[self.index_better_apt][1] == '0':
  169.             self.textarea.append(self.better_user + " parece estar ocupado.")
  170.         else:
  171.             self.textarea.append(self.better_user + " parece estar disponible.")          
  172.  
  173.         self.best_apply = QtGui.QMessageBox.question(self, "Asignar a la tarea?", "Deseas agregar a " + self.best_user + " a la tarea seleccionada?",
  174.                                                 QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes)
  175.         if self.best_apply == QtGui.QMessageBox.Yes:
  176.             empleados[self.index_best_apt][1] = 0
  177.             empleados[self.index_best_apt][5] = str(int(empleados[self.index_best_apt][5]) + 1)
  178.            
  179.         else:
  180.             self.better_apply = QtGui.QMessageBox.question(self, "Asignar a la tarea?", "Deseas agregar a " + self.better_user + " a la tarea seleccionada?",
  181.                                                 QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes)
  182.             if self.better_apply == QtGui.QMessageBox.Yes:
  183.                 empleados[self.index_better_apt][1] = 0
  184.                 empleados[self.index_better_apt][5] = str(int(empleados[self.index_better_apt][5]) + 1)
  185.         print empleados #debug
  186.  
  187.     def social(self):
  188.         """ Muestra los dos mejoes en social media disponibles """
  189.         self.aptitudes = [] #0 Empleado, 1 Disponibilidad, 2 Diseño, 3 Foto, 4 Social, 5 Num. Proyectos
  190.  
  191.         for wn in empleados:
  192.             self.aptitudes.append(wn[4])
  193.         print self.aptitudes #debug
  194.            
  195.         self.index_best_apt = self.aptitudes.index(max(self.aptitudes))
  196.         self.best_apt = self.aptitudes[self.index_best_apt]
  197.         self.aptitudes[self.index_best_apt] = 0
  198.         print self.aptitudes #debug
  199.  
  200.         self.index_better_apt =  self.aptitudes.index(max(self.aptitudes)) #El segundo mayor, que es el mayor de los que quedaron
  201.         self.better_apt = self.aptitudes[self.index_better_apt]
  202.        
  203.         self.best_user = empleados[self.index_best_apt][0]
  204.         self.trabajos_best_user = empleados[self.index_best_apt][5]
  205.        
  206.         self.better_user = empleados[self.index_better_apt][0]
  207.         self.trabajos_better_user = empleados[self.index_better_apt][5]
  208.  
  209.         self.textarea.setText(
  210.             "<h3>Social Media</h3> <br />El mejor empleado que tienes para Social Media es <b>" + self.best_user + "</b> con una aptitud de <i>" + self.best_apt +
  211.             "</i>, y tene una carga de <b>" + self.trabajos_best_user + "</b> trabajos actualmente.<br /><br />El empleado que le sigue es <b>" + self.better_user + "</b>, con una aptitud de <i>" + self.better_apt +
  212.             "</i> y una carga de <b>" + self.trabajos_better_user + "</b> trabajos.<br /><br /> ")
  213.  
  214.         if empleados[self.index_best_apt][1] == '0':
  215.             self.textarea.append(self.best_user + " parece estar ocupado.")
  216.         else:
  217.             self.textarea.append(self.best_user + " parece estar disponible.")
  218.  
  219.         if empleados[self.index_better_apt][1] == '0':
  220.             self.textarea.append(self.better_user + " parece estar ocupado.")
  221.         else:
  222.             self.textarea.append(self.better_user + " parece estar disponible.")          
  223.  
  224.         self.best_apply = QtGui.QMessageBox.question(self, "Asignar a la tarea?", "Deseas agregar a " + self.best_user + " a la tarea seleccionada?",
  225.                                                 QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes)
  226.         if self.best_apply == QtGui.QMessageBox.Yes:
  227.             empleados[self.index_best_apt][5] = str(int(empleados[self.index_best_apt][5]) + 1)
  228.            
  229.         else:
  230.             self.better_apply = QtGui.QMessageBox.question(self, "Asignar a la tarea?", "Deseas agregar a " + self.better_user + " a la tarea seleccionada?",
  231.                                                 QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes)
  232.             if self.better_apply == QtGui.QMessageBox.Yes:
  233.                 empleados[self.index_better_apt][5] = str(int(empleados[self.index_better_apt][5]) + 1)
  234.         print empleados #debug
  235.        
  236. def main():
  237.     application = QtGui.QApplication(sys.argv)
  238.     ex = App()
  239.  
  240.     global archivo, reader, empleados, ram
  241.  
  242.     archivo = open('dblol.csv', 'r+')
  243.     reader = csv.reader(archivo, delimiter=',')
  244.  
  245.     empleados = []
  246.  
  247.     for row in reader:
  248.         empleados.append(row)
  249.         print row #debug
  250.        
  251.     sys.exit(application.exec_())
  252.  
  253. if __name__ == '__main__':
  254.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement