示例#1
0
def loginApp(request):

    if request.method == 'POST' or request.method == 'GET':
        try:
            username = request.POST['username']
            password = request.POST['psw']

            user = authenticate(request, username=username, password=password)
            if user is not None:
                login(request, user)
                return render(request,
                              'MM/workspace.html',
                              context={'user': user})

            else:
                return render(request,
                              'MM/login.html',
                              context={
                                  'loginmessage':
                                  "Login not success Please try to re login"
                              })
        except:
            logError(log=sys.exc_info())

    else:
        print("its get method")
示例#2
0
文件: exeCode.py 项目: anji-a/Apache
def exeCode(*args, **kwargs):

    #print(kwargs)
    #print(args)
    #data=kwargs['data']
    cache.clear()
    retData = ''
    try:
        funname = kwargs.get('data').get('fun_name')
        codeObj = cache.get(funname + '_data')
        #print("In EXE code method", getFilePath(funname))

        if not codeObj:
            #print("exe code if block")

            fileLocation = getFilePath(funname)
            code_obj = compile(open(fileLocation).read(), funname, 'exec')
            cache.set_many({
                funname + '_data': open(fileLocation).read(),
                funname + '_location': fileLocation
            })

        else:
            code_obj = compile(codeObj, funname, 'exec')

        logMessage(message="Execution start for function-->" + funname)
        exec(code_obj, globals())
        retData = globals()[funname](kwargs.get('data'))
        logMessage(message="Execution End for function-->" + funname)
    except:
        logError(message="Unexpected error while execution file:" + funname,
                 log=sys.exc_info())

    return retData
示例#3
0
def UIPreview(request):
    """
    Used this function to return Preview Screen
    :param request:
    :return:
    """
    print(request.POST['filename'])
    try:
        """filePath = MM_Utiliy.getTeplatePath(MM_Utiliy,request.POST['filename'])
        f = open(filePath, "r")
        data=f.read()
        f.close()
        #print(data)

        parsehtml = MM_Utiliy.parseHtml(MM_Utiliy,data,"Preview")"""
        tempName = 'MM/' + request.POST.get('filename', '') + '.html'
        print(tempName)
        return render(request, tempName, {'Hello': "How rdsfsdfsd u"})
        #return JsonResponse("<div>{% include 'MM/UIOptions.html' %}</div>",safe=False)
    except:
        logError(log=sys.exc_info())
        exc_type, exc_value, exc_traceback = sys.exc_info()
        return HttpResponse(
            "Faild to parse the file, Please check the logs for error\n" +
            repr(traceback.format_exception(exc_type, exc_value,
                                            exc_traceback)))
示例#4
0
def ElementFileSaveOrUpdate(element, request):
    try:
        rootdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
        if request.get('element_type') == "Section":
            tempplatespath = os.path.join(os.path.join(rootdir, "templates"),
                                          "MM")
            filePath = os.path.join(tempplatespath,
                                    request.get('element_name') + ".html")

            f = open(filePath, "w+")
            f.write(parseHtml(request.get('element_stream'), "Save"))
            f.close()
        elif request.get('element_type') == "Tag":
            tempplatespath = os.path.join(os.path.join(rootdir, "templates"),
                                          "MM")
            filePath = os.path.join(tempplatespath,
                                    request.get('element_name') + ".html")

            f = open(filePath, "w+")
            f.write(request.get(request.get('element_name') + "_html"))
            f.close()

            tagpath = os.path.join(os.path.join(rootdir, "MM"), "templatetags")
            filePath = os.path.join(tagpath,
                                    request.get('element_name') + ".py")
            f = open(filePath, "w+")
            f.write(request.get(request.get('element_name') + "_py"))
            f.close()

        return "Element Files save Sucess"
    except:
        logError(log=sys.exc_info())
        return "Element Save Fail"
示例#5
0
    def ElementDBSave(self,element,request):

            try:
                print(request.POST)
                ElementObject =  MPM_element.objects.get_or_create(element_name=element['element_name'], defaults=element)[0]
                ElementObject.element_updatedatetime = datetime.datetime.now()
                if (ElementObject.element_createddatetime == ""):
                    ElementObject.element_createddatetime = datetime.datetime.now()

                ElementObject.element_stream = element['element_stream']
                ElementObject.element_displayname = element['element_name']
                ElementObject.element_mode = "Original"
                ElementObject.element_type = element['element_type']

                ElementObject.save()
                element['element_name']=element['element_name']+"_Dev"
                ElementObject = MPM_element.objects.get_or_create(element_name=element['element_name'], defaults=element)[0]
                ElementObject.element_updatedatetime = datetime.datetime.now()
                if (ElementObject.element_createddatetime == ""):
                    ElementObject.element_createddatetime = datetime.datetime.now()

                ElementObject.element_stream = request.POST['element_stream']
                ElementObject.element_displayname = request.POST['element_name']
                ElementObject.element_mode = "Development"
                ElementObject.element_type = element['element_type']

                ElementObject.save()
                return "DBSucess"
            except:
                logError(sys.exc_info())
                return "DBFail"
示例#6
0
    def CompleAndExec(self,request):
        """Used to compile the code"""
        print(request.POST)
        codeObj = cache.get('test2')
        print(codeObj)
        if not codeObj:
            fileName = "C:/Users/anjaneyulua/Documents/Apache24/htdocs/MPM/MM/templatetags/test2.py"
            code_obj = compile(open(fileName).read(), 'test2', 'exec')
            cache.add('test2','hello',86400)
            # code_obj = compile(code, 'scheduler', 'exec')
            # exec('print(code)')
            # ns = globals()
            print("else block")
            try:
                exec(code_obj, globals())
                # getattr(self,'f')()
                # eval('f')
                # ns['f']()
                globals()['show_results1']("hello")
            except:
                print("Unexpected error for file:", sys.exc_info())
                logError(sys.exc_info())


        else:
            print("if block")
            globals()['show_results1']("hello")

        return "Hello"
示例#7
0
def DickUpdate(key, originalData, updateData):
    try:
        if key in originalData:
            originalData[key].update(updateData)

        else:
            originalData[key] = updateData
        return originalData
    except:
        logError(log=sys.exc_info())
        return originalData
示例#8
0
    def ElementFileSaveOrUpdate(self,element):

        try:
            rootdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
            if element['element_type'] == "Section":
                tempplatespath = os.path.join(os.path.join(rootdir, "templates"),"MM")
                filePath = os.path.join(tempplatespath,element['element_name']+".html")

                f = open(filePath, "w+")
                f.write(element['element_stream'])
                f.close()
            return "Element Files save Sucess"
        except:
            logError(sys.exc_info())
            return "Element Save Fail"
示例#9
0
def logoutapp(request):
    """
    Used to log out the user
    :param request:
    :return:
    """
    try:
        logout(request)
        return render(request,
                      'MM/login.html',
                      context={
                          'loginmessage':
                          "Successfully logged out, Please login here"
                      })
    except:
        logError(log=sys.exc_info())
示例#10
0
def UIElementSave(request):
    """
            Used to save the UI Screen
            :param request:
            :return:
            """
    try:
        # print(request)
        # print(request.POST['element_dev_stream'])
        # web_page = WebPage.objects.get_or_create(topic=top, url=fakeurl, name=fake_name)[0]
        # Setup defaults
        element = {}
        element['element_name'] = request.get('element_name')
        element['element_createddatetime'] = datetime.datetime.now()
        element['element_updatedatetime'] = datetime.datetime.now()
        element['element_stream'] = request.get('element_stream')
        #element['element_stream'] = parseHtml(request.get('element_stream'), "Save")
        element['element_displayname'] = request.get('element_name')
        element['element_mode'] = "Development"
        element['element_type'] = request.get('element_type')

        status = ElementDBSave(element, request)
        if status == "DBSucess":
            fileSatatus = ElementFileSaveOrUpdate(element, request)

            if fileSatatus == "Element Files save Sucess":
                return "File Save Sucess"
            else:
                return "File Save Failed"
            return "Save Sucess"
        else:
            return "DBFail"

    except:
        logError(log=sys.exc_info())
        return "Save failed"
示例#11
0
def parseHtml(html, action):
    """
            Used to parse HTML
            :param html:
            :return:
            """
    soup = BeautifulSoup(html, "lxml")
    generatedhtl = ''
    # print(soup)

    for tag in soup.find_all(attrs={"data-edit": "remove"}):
        tag.decompose()

    for tag in soup.find_all(attrs={"data-edit": "merge"}):
        tag.unwrap()

    for tag in soup.find_all(attrs={"data-edit": "regenerate"}):
        data_controlset = json.loads(tag['data-controlset'])

        # print(".......................",data_controlset.get('layout_class','Hello'))
        if data_controlset.get("controlType", '') == "label":
            #print(data_controlset)
            new_col_tag = soup.new_tag("div")
            new_col_tag['class'] = data_controlset.get("column_class", '')
            new_col_tag['style'] = data_controlset.get("column_style", '')
            new_label_tag = soup.new_tag("label")
            new_label_tag.string = "{{ " + data_controlset.get(
                "label_property_property", '') + " }}"
            new_label_tag['class'] = data_controlset.get(
                "label_property_class", '')
            new_label_tag['style'] = data_controlset.get(
                "label_property_style", '')
            # new_label_tag.string='{% include "MM/UIOptions.html" %}'
            new_col_tag.append(new_label_tag)
            tag.replace_with(new_col_tag)

        if data_controlset.get("controlType", '') == "input":
            new_col_tag = soup.new_tag("div")
            new_col_tag['class'] = data_controlset.get("column_class", '')
            new_col_tag['style'] = data_controlset.get("column_style", '')
            new_label_tag = soup.new_tag("label")
            new_label_tag.string = "{{ " + data_controlset.get(
                "input_property_label", '') + " }}"
            new_label_tag['for'] = data_controlset.get(
                "input_property_property", '')
            new_label_tag['class'] = data_controlset.get(
                "label_property_class", '')
            new_label_tag['style'] = data_controlset.get(
                "label_property_style", '')
            new_input_tag = soup.new_tag("input")
            new_input_tag['name'] = data_controlset.get(
                "input_property_property", '')
            new_input_tag['class'] = data_controlset.get(
                "property_property_class", '')
            new_input_tag['style'] = data_controlset.get(
                "property_property_style", '')
            new_input_tag['value'] = "{{" + data_controlset.get(
                "input_property_property", '') + "}}"
            new_label_tag.append(new_input_tag)
            new_col_tag.append(new_label_tag)
            tag.replace_with(new_col_tag)

        if data_controlset.get("controlType", '') == "button":
            new_col_tag = soup.new_tag("div")
            new_col_tag['class'] = data_controlset.get("column_class", '')
            new_col_tag['style'] = data_controlset.get("column_style", '')
            new_input_tag = soup.new_tag("input")
            new_input_tag['type'] = "button"
            new_input_tag['value'] = data_controlset.get(
                "button_property_value", '')
            new_input_tag['class'] = data_controlset.get(
                "button_property_class", '')
            new_input_tag['style'] = data_controlset.get(
                "button_property_style", '')
            new_input_tag['onclick'] = data_controlset.get(
                "button_property_click", '')
            new_col_tag.append(new_input_tag)
            tag.replace_with(new_col_tag)

        if data_controlset.get("controlType", '') == "dropdown":
            new_col_tag = soup.new_tag("div")
            new_col_tag['class'] = data_controlset.get("column_class", '')
            new_col_tag['style'] = data_controlset.get("column_style", '')
            #tag_data = {"choices": ["First choice", "second choice", "6th choice"]}
            tag_data = data_controlset
            new_col_tag.string = "{% load Tagutility %}{% TagUtility context fun_name='testDropdown' Tagdata='" + json.dumps(
                tag_data) + "'%}"
            tag.replace_with(new_col_tag)

        if data_controlset.get("controlType", '') == "layout":
            tag['class'] = data_controlset.get("layout_class", '')
            tag['style'] = data_controlset.get("layout_style", '')

        if data_controlset.get("controlType", '') == "emptycontol":
            new_col_tag = soup.new_tag("div")
            new_col_tag['class'] = data_controlset.get("column_class", '')
            new_col_tag['style'] = "height:20px;" + data_controlset.get(
                "column_style", '')
            # new_span_tag = soup.new_tag("span")
            # new_span_tag['style'] = "height:20px"
            # new_col_tag.append(new_span_tag)
            tag.replace_with(new_col_tag)

    if action == "Preview":
        try:
            """ReviewfilePath = MM_Utiliy.getTeplatePath(MM_Utiliy, "UIPreview_MPM")
            rf = open(ReviewfilePath, "r+")
            phtml = rf.read()

            Psoup = BeautifulSoup(phtml, "lxml")

            ptag = Psoup.find_all(id="previewID")
            new_tag=soup.new_tag("div")
            new_tag['id']='previewID'
            #print(soup.prettify())
            new_tag.append(soup)


            for el in ptag:
                el.replace_with(new_tag)

            rf.seek(0)
            rf.write(Psoup.prettify())
            rf.close()"""

            Psoup = BeautifulSoup(soup.prettify(formatter="html"), 'lxml')
            htmlTag = Psoup.body
            headTag = Psoup.new_tag("head")
            linkTag1 = Psoup.new_tag("link")
            linkTag1[
                'href'] = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
            linkTag1['rel'] = 'stylesheet'
            linkTag2 = Psoup.new_tag("link")
            linkTag2['href'] = "static/css/Portal.css"
            linkTag2['rel'] = 'stylesheet'
            linkTag3 = Psoup.new_tag("link")
            linkTag3[
                'href'] = "//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"
            linkTag3['rel'] = 'stylesheet'
            scriptTag = Psoup.new_tag("script")
            scriptTag[
                'src'] = "https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"
            scriptTag2 = Psoup.new_tag("script")
            scriptTag2[
                'src'] = "https://code.jquery.com/ui/1.12.1/jquery-ui.js"
            scriptTag3 = Psoup.new_tag("script")
            scriptTag3['src'] = "static/js/tabs.js"
            scriptTag4 = Psoup.new_tag("script")
            scriptTag4['src'] = "static/js/app.js"
            scriptTag5 = Psoup.new_tag("script")
            scriptTag5['src'] = "static/js/Portal.js"

            headTag.append(linkTag1)
            headTag.append(linkTag2)
            headTag.append(linkTag3)
            headTag.append(scriptTag)
            headTag.append(scriptTag2)
            headTag.append(scriptTag3)
            headTag.append(scriptTag4)
            headTag.append(scriptTag5)
            # headTag.wrap(' <head><meta charset="utf-8"/><title>Preview</title><link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script><script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script><script src="static/js/Portal.js" type="text/javascript"></script><link href="static/css/Portal.css" rel="stylesheet"/></head>')
            htmlTag.insert_before(headTag)
            #print(Psoup)
            return Psoup.prettify(formatter="html")
        except:

            logError(log=sys.exc_info())

    return soup.prettify(formatter="html")
示例#12
0
def parseForm(request):
    try:

        # print("Parse Form",request)
        soup = BeautifulSoup("<html><form></form></html>", "lxml")
        new_form_tag = soup.new_tag("form")
        new_form_tag['method'] = request.get('method', 'POST')
        new_form_tag['action'] = "/" + request.get('action', '')
        new_form_tag['id'] = request.get('element_name', '')
        hideEle = [k for k in request.keys() if k.startswith('hide_')]
        for v in hideEle:
            new_input_tag = soup.new_tag("input")
            new_input_tag['name'] = request.get(v, '')
            new_input_tag['value'] = "{{" + request.get(v, '') + "}}"
            new_input_tag['type'] = "hidden"
            new_form_tag.append(new_input_tag)

        new_div_tag = soup.new_tag("div")
        new_form_tag.append(new_div_tag)
        new_div_tag.string = '{% include "MM/' + request.get(
            'includeElement', '') + '.html" %}'
        # includeElement
        new_script_tag = soup.new_tag("script")
        new_script_tag.string = "$(document).on('submit','#" + request.get('element_name', '') + "',function(e){\n" \
                                                                                                 "    e.preventDefault();\n" \
                                                                                                 "$.ajax({ data: $(this).serialize(),\n" \
                                                                                                 "type: $(this).attr('method'),\n" \
                                                                                                 "url: $(this).attr('action'),\n" \
                                                                                                 "success: function(response) {\n" \
                                                                                                 "var controlData = JSON.parse(response.responseData.response);\n" \
                                                                                                 "console.log(controlData);\n" \
                                                                                                 "$('#" + request.get(
            'element_name', '') + "').html(response.html);\n" \
                                  "//console.log(response.responseData.controlType);\n" \
                                  "$('#'+controlData.id).attr('data-controlset',response.responseData.response);\n" \
                                  "$('#'+controlData.id).attr('class',controlData.column_class);\n" \
                                  "$('#'+controlData.id).attr('style',controlData.column_style);\n" \
                                  "if(response['success']) {\n" \
                                  "}\n" \
                                  "if(response['error']) {\n" \
                                  "}\n" \
                                  "},\n" \
                                  "error: function (request, status, error) {\n" \
                                  "console.log(request.responseText);\n" \
                                  "}\n" \
                                  "});\n" \
                                  "});\n"

        formtag = soup.form
        formtag.replace_with(new_form_tag)

        htmltag = soup.html
        htmltag.insert_after(new_script_tag)
        #print("new Form", new_form_tag)
        print("form tag", soup.prettify(formatter="html"))
        # foodict = [k for k in request.keys() if k.startswith('hide_')]
        # print("Pares From", foodict)
        return soup.prettify(formatter="html")
    except:
        logError(log=sys.exc_info())

    return True
示例#13
0
def ElementDBSave(element, request):
    try:
        #print(request)
        if request.get('element_type') == "Section":

            ElementObject = MPM_element.objects.get_or_create(
                element_name=element['element_name'], defaults=element)[0]
            ElementObject.element_updatedatetime = datetime.datetime.now()
            if (ElementObject.element_createddatetime == ""):
                ElementObject.element_createddatetime = datetime.datetime.now()

            ElementObject.element_stream = parseHtml(
                request.get('element_stream'), "Save")
            ElementObject.element_displayname = element['element_name']
            ElementObject.element_mode = "Original"
            ElementObject.element_type = element['element_type']

            ElementObject.save()

        elif request.get('element_type') == "Tag":
            element['element_name'] = request.get('element_name') + "_py"
            ElementObject = MPM_element.objects.get_or_create(
                element_name=element['element_name'], defaults=element)[0]
            ElementObject.element_updatedatetime = datetime.datetime.now()
            if (ElementObject.element_createddatetime == ""):
                ElementObject.element_createddatetime = datetime.datetime.now()

            ElementObject.element_stream = request.get(element['element_name'])
            ElementObject.element_displayname = element['element_name']
            ElementObject.element_mode = "Original"
            ElementObject.element_type = element['element_type']
            ElementObject.save()

            element['element_name'] = request.get('element_name') + "_html"
            ElementObject = MPM_element.objects.get_or_create(
                element_name=element['element_name'], defaults=element)[0]
            ElementObject.element_updatedatetime = datetime.datetime.now()
            if (ElementObject.element_createddatetime == ""):
                ElementObject.element_createddatetime = datetime.datetime.now()

            ElementObject.element_stream = request.get(element['element_name'])
            ElementObject.element_displayname = element['element_name']
            ElementObject.element_mode = "Original"
            ElementObject.element_type = element['element_type']
            ElementObject.save()

        elif request.get('element_type') == "Form":

            ElementObject = MPM_element.objects.get_or_create(
                element_name=element['element_name'], defaults=element)[0]
            ElementObject.element_updatedatetime = datetime.datetime.now()
            if (ElementObject.element_createddatetime == ""):
                ElementObject.element_createddatetime = datetime.datetime.now()

            ElementObject.element_stream = parseForm(request)
            ElementObject.element_displayname = element['element_name']
            ElementObject.element_mode = "Original"
            ElementObject.element_type = element['element_type']

            ElementObject.save()
            rootdir = os.path.dirname(
                os.path.dirname(os.path.abspath(__file__)))
            tempplatespath = os.path.join(os.path.join(rootdir, "templates"),
                                          "MM")
            filePath = os.path.join(tempplatespath,
                                    request.get('element_name') + ".html")

            f = open(filePath, "w+")
            f.write(ElementObject.element_stream)
            f.close()
            hideEle = {
                k: v
                for k, v in request.items() if k.startswith('hide_')
            }

            request['hideEle'] = hideEle

            request['element_stream'] = returnHtmlAsStringFromTemplate(
                templateName='MM/NewFormWorkAreawithoutheader.html',
                templateData=request)
            print("DB save", request.get('element_stream'))

        element['element_name'] = request.get('element_name') + "_Dev"
        ElementObject = MPM_element.objects.get_or_create(
            element_name=element['element_name'], defaults=element)[0]
        ElementObject.element_updatedatetime = datetime.datetime.now()
        if (ElementObject.element_createddatetime == ""):
            ElementObject.element_createddatetime = datetime.datetime.now()

        ElementObject.element_stream = request.get('element_stream')
        ElementObject.element_displayname = request.get('element_name')
        ElementObject.element_mode = "Development"
        ElementObject.element_type = element['element_type']

        ElementObject.save()
        return "DBSucess"

    except:
        logError(log=sys.exc_info())
        return "DBFail"