コード例 #1
0
ファイル: views.py プロジェクト: ichar/player.python
def index(mode, **kw):
    host = request.form.get('host') or request.form.get('helperURI') or request.host_url
    debug = request.args.get('debug') == '1' and True or False
    demo(request.args.get('demo'), request=request)

    setReference(host, debug)

    wizard = request.args.get('wizard', 'BillGateDUS120') #'StreetGateDUS210'
    locale = _validate('locale', request.args.get('locale'))

    country = kw.get('country')
    region = kw.get('region')
    user = kw.get('user')
    document = kw.get('document')

    exchange = _make_exchange(mode, locale, country, region, user, document)

    page = _make_page(wizard, locale, init_only=False)

    kw = _make_platform(wizard, locale, user, debug)

    kw['extra'] = { \
        'selected_action' : request.form.get('selected_action') or 'null',
        'selected_item'   : request.form.get('selected_item') or 'null',
    }

    forms = ('index', 'log',)

    keywords = _make_keywords()

    session['communication'] = exchange['communication']
    session['session'] = exchange['sessionID']
    session['security'] = exchange['securityID']
    session['browser'] = kw['browser']
    session['locale'] = locale
    session['wizard'] = wizard
    session['name'] = page and page.get_title(False) or ''

    kw.update({ \
        'title'    : gettext('Helper Configurator Main Page'),
        'host'     : host,
        'wizard'   : wizard,
        'locale'   : locale, 
        'exchange' : exchange, 
        'keywords' : keywords, 
        'forms'    : forms, 
        'page'     : page,
    })

    if IsDebug:
        print '$$$'
        print '%s: %s %s %s %s session:[%s]' % (getTime(), host, wizard, locale, exchange['clientName'], exchange['sessionID'])
        print '%s: %s %s communication:[%s]' % (getTime(), kw['browser'], kw['agent'], exchange['communication'])
        print '%s: %s demo:%s' % (getTime(), kw['platform'], demo())

    return respond(template='index.html', debug=debug, **kw)
コード例 #2
0
ファイル: views.py プロジェクト: ichar/player.python
def log(mode, **kw):
    host = request.form.get('host') or request.form.get('helperURI') or request.host_url
    debug = request.args.get('debug') == '1' and True or False
    demo(request.args.get('demo'), request=request)

    setReference(host, debug)

    mode = request.form.get('helperCommunicationType', session.get('communication'))
    wizard = request.args.get('wizard', request.form.get('wizardID', session.get('wizard')))
    locale = _validate('locale', request.form.get('currentLocale', session.get('locale')))

    country = request.form.get('countryID', n_a)
    region = request.form.get('regionID', n_a)
    user = request.form.get('userID', n_a)

    exchange = _make_exchange(mode, locale, country, region, user=request.form.get('clientName', n_a))
    exchange['wizard'] = wizard

    page = _make_page(wizard, locale, init_only=True)

    kw = _make_platform(wizard, locale, user, debug)

    kw['links']['close'] = re.sub(r'index|log(?i)', '', request.referrer or request.url)

    kw['extra'] = { \
        'log_headers'        : getLogVisibleHeaders(),
        'statistics_headers' : getStatisticsVisibleHeaders(),
        'images'             : getLogImages(),
    }

    forms = ('load', 'search',)

    keywords = _make_keywords()

    kw.update({ \
        'title'    : gettext('Helper Configurator Order Log Page'),
        'host'     : host,
        'wizard'   : wizard,
        'locale'   : locale, 
        'exchange' : exchange, 
        'keywords' : keywords, 
        'forms'    : forms, 
        'page'     : page,
    })

    return respond('log.html', debug, **kw)
コード例 #3
0
ファイル: views.py プロジェクト: ichar/player.python
def loader():
    if not request.form.get('wizardID'):
        return ''

    host = request.form.get('host')
    debug = request.args.get('debug') == '1' and True or False
    demo(request.form.get('demo'), request=request)

    setReference(host, debug)

    if IsDebug:
        start = datetime.datetime.now()
        print '--> Started at %s' % start.strftime('%H:%M:%S:%f')

    wizard = request.form.get('wizardID') or session.get('wizard')
    action = request.form.get('action') or '204'
    check = request.form.get('check') or ''

    communication = request.form.get('helperCommunicationType') or default_communication
    locale = request.form.get('currentUsedLocalization') or session.get('locale')

    exchange_error = 0

    if IsDebug:
        print '--> action: [%s]' % action
        print '--> communication: [%s]' % communication
        print '--> demo: [%s]' % demo()
        print '--> host: [%s]' % host
        print '--> wizard: [%s]' % wizard

    response = {}

    if not (action and action in valid_action_types):
        return ''

    IsChecked = True

    if not isAuthorized(request.form.get('userID')):
        exchange_error = -4
        exchange_message = gettext('Sorry, you are not authorized.')

        IsChecked = False

    if IsChecked and action in ('207','307') and demo() and not _check(wizard, check):
        exchange_error = -5
        exchange_message = gettext('Sorry, the confirmation code is invalid.')+'<br>'+gettext('Please, try more.')

        IsChecked = False

    if action in ('301','302','303','304','305','307','308',):

        if IsChecked:
            # -------------------------------------------------------------------------------------
            # Get Data from DB (XML:data, DOM:dom, parsed XML-Items:items or Log-page content:data)
            # -------------------------------------------------------------------------------------
            response = respond_log(action)

        if not (response and response.get('data')):
            pass

        elif action in ('303','304','307',):
            requested_action = str(int(action)-100)

            # --------------------------------------------------
            # Get XML (update tags for a new request to Service)
            # --------------------------------------------------
            check, data = getRequestXML(requested_action, request, session, data=response.get('items'), dom=response.get('dom'), 
                title=response.get('title'), page='log',
                url=host)

            # ----------------------------------------
            # Send request to Service and get response
            # ----------------------------------------
            response = respond_external(requested_action, data=data, id=response.get('id'))
            response['action'] = action

            # -------------------------------------------------------------
            # Get Data Dictionary (!!!) from response to send to Controller
            # -------------------------------------------------------------
            if action == '303':
                dom, data = receive(action, request, session, data=response.get('data'))
                response['data'] = data

            response['dom'] = None
            response['items'] = None

        else:
            # --------------------------------------
            # Remove DOM from response to Controller
            # --------------------------------------
            response['dom'] = None
            response['items'] = None

    elif communication == COMMUNICATIONS['external'] or not communication:
        if IsDebug:
            print '--> check: [%s] = %s' % (check, IsChecked)

        if action == '100':
            # -------------------
            # Validate the action
            # -------------------
            if not demo():
                response = {'x1' : None, 'x2' : None, 'op' : None}
            else:
                response = _set_checker(wizard)
        
        elif action in ('203','204','205',):
            # ---------------------------------------------------------------
            # Send External request to Service and get response (calculation)
            # ---------------------------------------------------------------
            response = respond_external(action)
        
        elif action in ('207',) and IsChecked:
            # ---------------------------------------------------------
            # Send External request to Service and get response (order)
            # ---------------------------------------------------------
            response = respond_external(action)

        if response:
            response['data'] = ''

    elif communication == COMMUNICATIONS['internal']:
        if action == '100':
            # -------------------
            # Validate the action
            # -------------------
            response = {'x1' : None, 'x2' : None, 'op' : None}

        elif action in ('203','204','205','206',):
            # -------------------------------------------------
            # Send Internal request to Service and get response
            # -------------------------------------------------
            response = respond_internal(action)

    if not response:
        response = { \
            'action'            : action,
            'op'                : '',
            # -------------------------------
            # Not authorized or check invalid
            # -------------------------------
            'exchange_error'    : exchange_error, 
            'exchange_message'  : exchange_message,
            'error_code'        : '',
            'error_description' : '',
            'errors'            : '',
            # -----------------
            # Results (no data)
            # -----------------
            'price'             : '',
            'data'              : '',
        }            

    if IsDebug:
        finish = datetime.datetime.now()
        t = finish - start
        print '--> Finished at %s' % finish.strftime('%H:%M:%S:%f')
        print '--> Spent time: %s sec' % ((t.seconds*1000000+t.microseconds)/1000000)

    return jsonify(response)