Advertisement
Sax

CommonRocket v1.0

Sax
Oct 9th, 2013
363
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 11.20 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.            
  91.         self.index_best_apt = self.aptitudes.index(max(self.aptitudes))
  92.         self.best_apt = self.aptitudes[self.index_best_apt]
  93.         self.aptitudes[self.index_best_apt] = 0
  94.  
  95.         self.index_better_apt =  self.aptitudes.index(max(self.aptitudes)) #El segundo mayor, que es el mayor de los que quedaron
  96.         self.better_apt = self.aptitudes[self.index_better_apt]
  97.        
  98.         self.best_user = empleados[self.index_best_apt][0]
  99.         self.trabajos_best_user = empleados[self.index_best_apt][5]
  100.        
  101.         self.better_user = empleados[self.index_better_apt][0]
  102.         self.trabajos_better_user = empleados[self.index_better_apt][5]
  103.  
  104.         self.textarea.setText(
  105.             "<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 +
  106.             "</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 +
  107.             "</i> y una carga de <b>" + self.trabajos_better_user + "</b> trabajos.<br /><br /> ")
  108.  
  109.         if empleados[self.index_best_apt][1] == '0':
  110.             self.textarea.append(self.best_user + " parece estar ocupado.")
  111.         else:
  112.             self.textarea.append(self.best_user + " parece estar disponible.")
  113.  
  114.         if empleados[self.index_better_apt][1] == '0':
  115.             self.textarea.append(self.better_user + " parece estar ocupado.")
  116.         else:
  117.             self.textarea.append(self.better_user + " parece estar disponible.")          
  118.  
  119.         self.best_apply = QtGui.QMessageBox.question(self, "Asignar a la tarea?", "Deseas agregar a " + self.best_user + " a la tarea seleccionada?",
  120.                                                 QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes)
  121.         if self.best_apply == QtGui.QMessageBox.Yes:
  122.             empleados[self.index_best_apt][1] = 0
  123.             empleados[self.index_best_apt][5] = str(int(empleados[self.index_best_apt][5]) + 1)
  124.            
  125.         else:
  126.             self.better_apply = QtGui.QMessageBox.question(self, "Asignar a la tarea?", "Deseas agregar a " + self.better_user + " a la tarea seleccionada?",
  127.                                                 QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes)
  128.             if self.better_apply == QtGui.QMessageBox.Yes:
  129.                 empleados[self.index_better_apt][1] = 0
  130.                 empleados[self.index_better_apt][5] = str(int(empleados[self.index_better_apt][5]) + 1)
  131.            
  132.  
  133.     def foto(self):
  134.         """ Muestra los dos mejores en foto disponibles """
  135.         self.aptitudes = [] #0 Empleado, 1 Disponibilidad, 2 Diseño, 3 Foto, 4 Social, 5 Num. Proyectos
  136.  
  137.         for wn in empleados:
  138.             self.aptitudes.append(wn[3])
  139.            
  140.         self.index_best_apt = self.aptitudes.index(max(self.aptitudes))
  141.         self.best_apt = self.aptitudes[self.index_best_apt]
  142.         self.aptitudes[self.index_best_apt] = 0
  143.  
  144.         self.index_better_apt =  self.aptitudes.index(max(self.aptitudes)) #El segundo mayor, que es el mayor de los que quedaron
  145.         self.better_apt = self.aptitudes[self.index_better_apt]
  146.        
  147.         self.best_user = empleados[self.index_best_apt][0]
  148.         self.trabajos_best_user = empleados[self.index_best_apt][5]
  149.        
  150.         self.better_user = empleados[self.index_better_apt][0]
  151.         self.trabajos_better_user = empleados[self.index_better_apt][5]
  152.  
  153.         self.textarea.setText(
  154.             "<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 +
  155.             "</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 +
  156.             "</i> y una carga de <b>" + self.trabajos_better_user + "</b> trabajos.<br /><br /> ")
  157.  
  158.         if empleados[self.index_best_apt][1] == '0':
  159.             self.textarea.append(self.best_user + " parece estar ocupado.")
  160.         else:
  161.             self.textarea.append(self.best_user + " parece estar disponible.")
  162.  
  163.         if empleados[self.index_better_apt][1] == '0':
  164.             self.textarea.append(self.better_user + " parece estar ocupado.")
  165.         else:
  166.             self.textarea.append(self.better_user + " parece estar disponible.")          
  167.  
  168.         self.best_apply = QtGui.QMessageBox.question(self, "Asignar a la tarea?", "Deseas agregar a " + self.best_user + " a la tarea seleccionada?",
  169.                                                 QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes)
  170.         if self.best_apply == QtGui.QMessageBox.Yes:
  171.             empleados[self.index_best_apt][1] = 0
  172.             empleados[self.index_best_apt][5] = str(int(empleados[self.index_best_apt][5]) + 1)
  173.            
  174.         else:
  175.             self.better_apply = QtGui.QMessageBox.question(self, "Asignar a la tarea?", "Deseas agregar a " + self.better_user + " a la tarea seleccionada?",
  176.                                                 QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes)
  177.             if self.better_apply == QtGui.QMessageBox.Yes:
  178.                 empleados[self.index_better_apt][1] = 0
  179.                 empleados[self.index_better_apt][5] = str(int(empleados[self.index_better_apt][5]) + 1)
  180.  
  181.     def social(self):
  182.         """ Muestra los dos mejoes en social media disponibles """
  183.         self.aptitudes = [] #0 Empleado, 1 Disponibilidad, 2 Diseño, 3 Foto, 4 Social, 5 Num. Proyectos
  184.  
  185.         for wn in empleados:
  186.             self.aptitudes.append(wn[4])
  187.            
  188.         self.index_best_apt = self.aptitudes.index(max(self.aptitudes))
  189.         self.best_apt = self.aptitudes[self.index_best_apt]
  190.         self.aptitudes[self.index_best_apt] = 0
  191.  
  192.         self.index_better_apt =  self.aptitudes.index(max(self.aptitudes)) #El segundo mayor, que es el mayor de los que quedaron
  193.         self.better_apt = self.aptitudes[self.index_better_apt]
  194.        
  195.         self.best_user = empleados[self.index_best_apt][0]
  196.         self.trabajos_best_user = empleados[self.index_best_apt][5]
  197.        
  198.         self.better_user = empleados[self.index_better_apt][0]
  199.         self.trabajos_better_user = empleados[self.index_better_apt][5]
  200.  
  201.         self.textarea.setText(
  202.             "<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 +
  203.             "</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 +
  204.             "</i> y una carga de <b>" + self.trabajos_better_user + "</b> trabajos.<br /><br /> ")
  205.  
  206.         if empleados[self.index_best_apt][1] == '0':
  207.             self.textarea.append(self.best_user + " parece estar ocupado.")
  208.         else:
  209.             self.textarea.append(self.best_user + " parece estar disponible.")
  210.  
  211.         if empleados[self.index_better_apt][1] == '0':
  212.             self.textarea.append(self.better_user + " parece estar ocupado.")
  213.         else:
  214.             self.textarea.append(self.better_user + " parece estar disponible.")          
  215.  
  216.         self.best_apply = QtGui.QMessageBox.question(self, "Asignar a la tarea?", "Deseas agregar a " + self.best_user + " a la tarea seleccionada?",
  217.                                                 QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes)
  218.         if self.best_apply == QtGui.QMessageBox.Yes:
  219.             empleados[self.index_best_apt][5] = str(int(empleados[self.index_best_apt][5]) + 1)
  220.            
  221.         else:
  222.             self.better_apply = QtGui.QMessageBox.question(self, "Asignar a la tarea?", "Deseas agregar a " + self.better_user + " a la tarea seleccionada?",
  223.                                                 QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes)
  224.             if self.better_apply == QtGui.QMessageBox.Yes:
  225.                 empleados[self.index_better_apt][5] = str(int(empleados[self.index_better_apt][5]) + 1)
  226.        
  227. def main():
  228.     application = QtGui.QApplication(sys.argv)
  229.     ex = App()
  230.  
  231.     global archivo, reader, empleados, ram
  232.  
  233.     archivo = open('dblol.csv', 'r+')
  234.     reader = csv.reader(archivo, delimiter=',')
  235.  
  236.     empleados = []
  237.  
  238.     for row in reader:
  239.         empleados.append(row)
  240.        
  241.     sys.exit(application.exec_())
  242.  
  243. if __name__ == '__main__':
  244.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement