diff --git a/api.py b/api.py index 73882dc..f9f4a6b 100644 --- a/api.py +++ b/api.py @@ -258,6 +258,11 @@ class getGrpCook(object): # Get Groups of a Cook else: response.media = {'TEXT': 'Error, no Cook selected','RESULT':'ERROR'} +## +# getStatusCook: Get groups from a Cook +# /get/statuscook? +# @param CookName -> Cook to show detailed status +## class getStatusCook(object): # Get Status of a Cook (If Brief=1 is sent too, brief status (Completed:X, updated:X..)) def on_get(self,request,response): logit(request) @@ -273,6 +278,11 @@ class getStatusCook(object): # Get Status of a Cook (If Brief=1 is sent too, bri else: response.media = {'TEXT': 'Error, no Cook selected','RESULT':'ERROR'} +## +# getLastRevisionCook: Get last revision from a Cook +# /get/lastrevisioncook? +# @param CookName -> Cook to show detailed status +## class getLastRevisionCook(object): # Get Number Revision (Revision=X) def on_get(self,request,response): logit(request) diff --git a/client/control.pyw b/client/control.pyw index 51306d1..4958e22 100644 --- a/client/control.pyw +++ b/client/control.pyw @@ -1,5 +1,5 @@ #!/usr/bin/python3 -# Version 0.5 +# Version 0.6 import easygui import configparser import json @@ -53,6 +53,14 @@ def sendsettoapi(suburl,goodtext): # Send a add/del/modify to API. Doesn't retur easygui.msgbox("Error inesperado","Error","Ok") return 1 +def returnvalueapi(apiurl,field="Name"): + try: + jsonobj = json.loads(requests.get(apiurl).text) + return jsonobj[field] + except: + easygui.msgbox(msg='Error en la aplicación al consultar', title="Error", ok_button='OK') + return None + config = configparser.ConfigParser() config.read('configpcm.ini') @@ -102,8 +110,7 @@ def mgroups(): sendsettoapi("/add/group?GroupName="+newgroup,"Grupo añadido a la base de datos") elif menu == '2': group = showchoicesapi("Lista de grupos. Selecciona uno para borrarlo","Borrar grupo",c_server+"/get/groups",'Name') - if group is not None: - if easygui.ynbox("Borrar grupo '"+group+"'. ¿Seguro?","Borrar grupo"): + if group is not None and easygui.ynbox("Borrar grupo '"+group+"'. ¿Seguro?","Borrar grupo"): sendsettoapi("/del/group?GroupName="+group,"Grupo borrado") elif menu == '3': m_addcomputergroup() @@ -127,6 +134,21 @@ def mcooks(): cook = showchoicesapi("Lista de recetas implementadas en algún grupo. Selecciona una para ver sus datos","Detalles de una receta",c_server+"/get/cookall",'CookName') if cook is not None: showchoicesapi("Lista de grupos de la receta "+cook,"Listado de grupos de una receta",c_server+"/get/grpcook?CookName="+cook) + jsonobj = json.loads(requests.get(c_server+'/get/statuscook?CookName='+cook).text) + list = [] + s_err = 0 + s_com = 0 + s_lastrev = returnvalueapi(c_server+'/get/lastrevisioncook?CookName='+cook,"Revision") + for ite in jsonobj: + s_com = s_com + 1 + if ite['Error'] == 0: + err = " implementado correctamente" + else: + err = " con errores" + s_err = s_err + 1 + list.append(ite['Name']+" -> Revision "+str(ite['Revision'])+err) + + easygui.choicebox("Detalles de equipos de la receta "+cook+"\nEquipos: "+str(s_com)+" Con errores: "+str(s_err)+'\nUltima revision: '+str(s_lastrev),"Detalles de una receta",list) elif menu == '2': cook = showchoicesapi("Lista de recetas implementadas en algún grupo. Selecciona una para renombrarla. Si la receta no está en ningún grupo, se puede renombrar desde fuera.","Renombrar receta",c_server+"/get/cookall",'CookName') if cook is not None: