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>"
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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)