def delCameData(form): #удаление id=int(form.getfirst("id", "")) name = form.getfirst("name", "") prot=bck.getProtocolFromDatabase(id)[0] # Возвращает объект испытания try: del prot.dictOfReportFormParameters[name] except KeyError: pass return bck.writeProtocolToDatabase(prot, id)
def saveCameData(form): id=int(form.getfirst("id", "")) name = form.getfirst("name", "") prot=bck.getProtocolFromDatabase(id)[0] # Возвращает объект испытания rfp = ReportFormParameters() rfp.dictOfProceduresParameters=dict() if prot==None: return 1 if name.strip()=='': return 2 for key in form.keys(): if "chn" in key or "com" in key: ls=key.split('_') number = int(ls[0]) var = key[key.rfind('_')+1::] if number in rfp.dictOfProceduresParameters: #если есть такой ключ процедуры, что может получиться в том случае, если для такой процедуры параметры мы уже находили #тогда просто добавляем в нужный список название пеерменной if "chn" in key: rfp.dictOfProceduresParameters[number].listOfHiddenPerchannelParameters.append(var) if "com" in key: rfp.dictOfProceduresParameters[number].listOfHiddenCommonParameters.append(var) else: #иначе придётся сперва создать объект параметров процедуры procparam=ProcedureReportFormParameters() procparam.listOfHiddenPerchannelParameters=list() procparam.listOfHiddenCommonParameters=list() if "chn" in key: procparam.listOfHiddenPerchannelParameters.append(var) if "com" in key: procparam.listOfHiddenCommonParameters.append(var) rfp.dictOfProceduresParameters[number]=procparam #добавляем параметры процедуры if not prot.dictOfReportFormParameters: #на кой этот сиране костыль, но Питоний не понимает, что поле является словарём, пока ему не скажешь об этом prot.dictOfReportFormParameters=dict() prot.dictOfReportFormParameters[name]=rfp #либо создаёт, либо перезаписывает параметры процедуры под таким названием return bck.writeProtocolToDatabase(prot, id)
def outFilledForm (procid, name): """ Запускает ядерную функцию, предварительно вынув протокол из базы """ out = str() proc=bck.getProtocolFromDatabase(procid) # Возвращает объект испытания if proc[0]==None: out+=htmg.throwError("FR_ReportParametersEdit", proc[1]) return out else: return "<form method = 'POST' action = 'FR_ReportParametersEdit.py?id={0}&save=1 ' >".format (str(procid))+\ outFilledFormCore(proc[0], name, procid) + \ "<input type='submit' value='Сохранить'> "+"</form>"
def outNormalForm (id): """ Выводит пустую форму. @id - айди протокола, в который испытание надо будет добавить """ #получить протокол из базы #оттуда взять список каналов #на основе этого списка пстроить форму protocol = bck.getProtocolFromDatabase(id)[0]; if protocol==None: return htmg.throwError("FRtestedit", "Нет такого протокола, испытание которого намереваемся править") listchannels = protocol.channelname out=" <script> \n add_forms_to_table("+listchannels.__str__()+" ); </script>" return out
def view_protocol_by_id(id): gotval = bck.getProtocolFromDatabase (id) if gotval[0]==None: return htmg.throwError("FRProtocolViewEdit", "В базе данных нет такого протокола id="+str(id)) return make_html_view_edit_protocol(id, gotval[0], gotval[1], gotval[2]) + outReportsParametersCombo (gotval[0], id)