示例#1
0
    def __call__(self):

        T = current.T
        auth = current.auth
        db = current.db
        s3db = current.s3db
        request = current.request
        appname = request.application
        response = current.response
        s3 = response.s3
        settings = current.deployment_settings

        view = path.join(request.folder, "private", "templates",
                         "RGIMS", "views", "index.html")
        try:
            # Pass view as file not str to work in compiled mode
            response.view = open(view, "rb")
        except IOError:
            from gluon.http import HTTP
            raise HTTP("404", "Unable to open Custom View: %s" % view)

        title = settings.get_system_name()
        response.title = title

        # flag for the link change
        # (condition, warehouse_id)
        
        flag = (False, 0)
        
        # change of link will happen
        # if pe_id is part of the inv_warehouse
        
        wh_table = s3db.table('inv_warehouse')
        
        if wh_table:
            auth_table = db((db.auth_membership.user_id == auth.user_id) &
                (db.auth_membership.pe_id == wh_table.pe_id))
        
            for entity in auth_table.select(wh_table.id):
                if entity.id:
                    flag = (True, entity.id)
                    
                    break
        
        if flag[0]:
            # Menu Boxes
            menu_btns = [#div, label, app, function
                        ["sit", T("Request"), "inv", "warehouse/%s/req" % flag[1]],
                        ["dec", T("Send"), "inv", "warehouse/%s/send" % flag[1]],
                        ["res", T("Receive"), "inv", "warehouse/%s/recv" % flag[1]]
                        ]
        
        else:
            # Menu Boxes
            menu_btns = [#div, label, app, function
                        ["sit", T("Request"), "req", "req"],
                        ["dec", T("Send"), "inv", "send"],
                        ["res", T("Receive"), "inv", "recv"]
                        ]

        menu_divs = {"facility": DIV( H3("Map"),
                                  _id = "facility_box", _class = "menu_box"),
                     "sit": DIV(
                                  _id = "menu_div_sit", _class = "menu_div"),
                     "dec": DIV(
                                  _id = "menu_div_dec", _class = "menu_div"),
                     "res": DIV(
                                  _id = "menu_div_res", _class = "menu_div"),
                    }

        for div, label, app, function in menu_btns:
            if settings.has_module(app):
                # @ToDo: Also check permissions (e.g. for anonymous users)
                menu_divs[div].append(A(DIV(label,
                                            _class = "menu-btn-r"),
                                        _class = "menu-btn-l",
                                        _href = URL(app,function)
                                        )
                                     )

        div_arrow = DIV(IMG(_src = "/%s/static/img/arrow_blue_right.png" % \
                                     appname),
                        _class = "div_arrow")
        sit_dec_res_box = DIV(menu_divs["sit"],
                              div_arrow,
                              menu_divs["dec"],
                              div_arrow,
                              menu_divs["res"],
                              _id = "sit_dec_res_box",
                              _class = "menu_box fleft swidth"
                         #div_additional,
                        )
        facility_box  = menu_divs["facility"]
        facility_box.append(A(IMG(_src = "/%s/static/img/map_icon_128.png" % \
                                           appname),
                              _href = URL(c="gis", f="index"),
                              _title = T("Map")
                              )
                            )

        # Check logged in AND permissions
        _s3 = current.session.s3
        AUTHENTICATED = _s3.system_roles.AUTHENTICATED
        roles = _s3.roles
        if AUTHENTICATED in roles and \
           auth.s3_has_permission("read", db.org_organisation):
            auth.permission.controller = "org"
            auth.permission.function = "site"
            permitted_facilities = auth.permitted_facilities(redirect_on_error=False)
            manage_facility_box = ""
            if permitted_facilities:
                facility_list = s3_represent_facilities(db, permitted_facilities,
                                                        link=False)
                facility_list = sorted(facility_list, key=lambda fac: fac[1])
                facility_opts = [OPTION(opt[1], _value = opt[0])
                                 for opt in facility_list]
                facility_opts.insert(0, OPTION("Please Select a Warehouse"))
                if facility_list:
                    manage_facility_box = DIV(H3(T("Manage Your Warehouse")),
                                        SELECT(_id = "manage_facility_select",
                                                _style = "max-width:400px;",
                                                *facility_opts
                                                ),
                                        A(T("Go"),
                                            _href = URL(c="default", f="site",
                                                        args=[facility_list[0][0]]),
                                            #_disabled = "disabled",
                                            _id = "manage_facility_btn",
                                            _class = "action-btn"
                                            ),
                                        _id = "manage_facility_box",
                                        _class = "menu_box fleft")
                    s3.jquery_ready.append(
'''$('#manage_facility_select').change(function(){
 $('#manage_facility_btn').attr('href',S3.Ap.concat('/default/site/',$('#manage_facility_select').val()))
})''')
                else:
                    manage_facility_box = DIV()

        else:
            manage_facility_box = ""
        # Login/Registration forms
        self_registration = settings.get_security_self_registration()
        registered = False
        login_form = None
        login_div = None
        register_form = None
        register_div = None
        if AUTHENTICATED not in roles:
            # This user isn't yet logged-in
            if request.cookies.has_key("registered"):
                # This browser has logged-in before
                registered = True

            if self_registration:
                # Provide a Registration box on front page
                request.args = ["register"]
                if settings.get_terms_of_service():
                    auth.messages.submit_button = T("I accept. Create my account.")
                else:
                    auth.messages.submit_button = T("Register")
                register_form = auth()
                register_div = DIV(H3(T("Register")),
                                   P(XML(T("If you would like to help, then please %(sign_up_now)s") % \
                                            dict(sign_up_now=B(T("sign-up now"))))))

                # Add client-side validation
                s3_register_validation()

                if s3.debug:
                    s3.scripts.append("/%s/static/scripts/jquery.validate.js" % appname)
                else:
                    s3.scripts.append("/%s/static/scripts/jquery.validate.min.js" % appname)
                if request.env.request_method == "POST":
                    post_script = \
'''$('#register_form').removeClass('hide')
$('#login_form').addClass('hide')'''
                else:
                    post_script = ""
                register_script = \
'''$('#register-btn').attr('href','#register')
$('#login-btn').attr('href','#login')
%s
$('#register-btn').click(function(){
 $('#register_form').removeClass('hide')
 $('#login_form').addClass('hide')
})
$('#login-btn').click(function(){
 $('#register_form').addClass('hide')
 $('#login_form').removeClass('hide')
})''' % post_script
                s3.jquery_ready.append(register_script)

            # Provide a login box on front page
            request.args = ["login"]
            auth.messages.submit_button = T("Login")
            login_form = auth()
            login_div = DIV(H3(T("Login")),
                            P(XML(T("Registered users can %(login)s to access the system" % \
                                    dict(login=B(T("login")))))))

        return dict(title = title,
                    sit_dec_res_box = sit_dec_res_box,
                    facility_box = facility_box,
                    manage_facility_box = manage_facility_box,
                    self_registration=self_registration,
                    registered=registered,
                    login_form=login_form,
                    login_div=login_div,
                    register_form=register_form,
                    register_div=register_div
                    )
示例#2
0
    def __call__(self):

        T = current.T
        auth = current.auth
        db = current.db
        request = current.request
        appname = request.application
        response = current.response
        s3 = response.s3
        settings = current.deployment_settings

        view = path.join(request.folder, "private", "templates",
                         "Delphi", "views", "index.html")
        try:
            # Pass view as file not str to work in compiled mode
            response.view = open(view, "rb")
        except IOError:
            from gluon.http import HTTP
            raise HTTP("404", "Unable to open Custom View: %s" % view)

        title = settings.get_system_name()
        response.title = title

        # Check logged in AND permissions
        _s3 = current.session.s3
        AUTHENTICATED = _s3.system_roles.AUTHENTICATED
        roles = _s3.roles

        # Login/Registration forms
        self_registration = settings.get_security_self_registration()
        registered = False
        login_form = None
        login_div = None
        register_form = None
        register_div = None
        if AUTHENTICATED not in roles:
            # This user isn't yet logged-in
            if request.cookies.has_key("registered"):
                # This browser has logged-in before
                registered = True

            if self_registration:
                # Provide a Registration box on front page
                request.args = ["register"]
                if settings.get_terms_of_service():
                    auth.messages.submit_button = T("I accept. Create my account.")
                else:
                    auth.messages.submit_button = T("Register")
                register_form = auth()
                register_div = DIV(H3(T("Register")),
                                   P(XML(T("If you would like to help, then please %(sign_up_now)s") % \
                                            dict(sign_up_now=B(T("sign-up now"))))))

                # Add client-side validation
                s3_register_validation()

                if s3.debug:
                    s3.scripts.append("/%s/static/scripts/jquery.validate.js" % appname)
                else:
                    s3.scripts.append("/%s/static/scripts/jquery.validate.min.js" % appname)
                if request.env.request_method == "POST":
                    post_script = \
'''$('#register_form').removeClass('hide')
$('#login_form').addClass('hide')'''
                else:
                    post_script = ""
                register_script = \
'''$('#register-btn').attr('href','#register')
$('#login-btn').attr('href','#login')
%s
$('#register-btn').click(function(){
 $('#register_form').removeClass('hide')
 $('#login_form').addClass('hide')
})
$('#login-btn').click(function(){
 $('#register_form').addClass('hide')
 $('#login_form').removeClass('hide')
})''' % post_script
                s3.jquery_ready.append(register_script)

            # Provide a login box on front page
            request.args = ["login"]
            auth.messages.submit_button = T("Login")
            login_form = auth()
            login_div = DIV(H3(T("Login")),
                            P(XML(T("Registered users can %(login)s to access the system") % \
                                  dict(login=B(T("login"))))))

        return dict(title = title,
                    self_registration=self_registration,
                    registered=registered,
                    login_form=login_form,
                    login_div=login_div,
                    register_form=register_form,
                    register_div=register_div
                    )
示例#3
0
    def __call__(self):

        T = current.T
        auth = current.auth
        db = current.db
        request = current.request
        appname = request.application
        response = current.response
        s3 = response.s3
        settings = current.deployment_settings

        view = path.join(request.folder, "private", "templates", "Delphi",
                         "views", "index.html")
        try:
            # Pass view as file not str to work in compiled mode
            response.view = open(view, "rb")
        except IOError:
            from gluon.http import HTTP
            raise HTTP("404", "Unable to open Custom View: %s" % view)

        title = settings.get_system_name()
        response.title = title

        # Check logged in AND permissions
        _s3 = current.session.s3
        AUTHENTICATED = _s3.system_roles.AUTHENTICATED
        roles = _s3.roles

        # Login/Registration forms
        self_registration = settings.get_security_self_registration()
        registered = False
        login_form = None
        login_div = None
        register_form = None
        register_div = None
        if AUTHENTICATED not in roles:
            # This user isn't yet logged-in
            if request.cookies.has_key("registered"):
                # This browser has logged-in before
                registered = True

            if self_registration:
                # Provide a Registration box on front page
                request.args = ["register"]
                if settings.get_terms_of_service():
                    auth.messages.submit_button = T(
                        "I accept. Create my account.")
                else:
                    auth.messages.submit_button = T("Register")
                register_form = auth()
                register_div = DIV(H3(T("Register")),
                                   P(XML(T("If you would like to help, then please %(sign_up_now)s") % \
                                            dict(sign_up_now=B(T("sign-up now"))))))

                # Add client-side validation
                s3_register_validation()

                if s3.debug:
                    s3.scripts.append("/%s/static/scripts/jquery.validate.js" %
                                      appname)
                else:
                    s3.scripts.append(
                        "/%s/static/scripts/jquery.validate.min.js" % appname)
                if request.env.request_method == "POST":
                    post_script = \
'''$('#register_form').removeClass('hide')
$('#login_form').addClass('hide')'''
                else:
                    post_script = ""
                register_script = \
'''$('#register-btn').attr('href','#register')
$('#login-btn').attr('href','#login')
%s
$('#register-btn').click(function(){
 $('#register_form').removeClass('hide')
 $('#login_form').addClass('hide')
})
$('#login-btn').click(function(){
 $('#register_form').addClass('hide')
 $('#login_form').removeClass('hide')
})''' % post_script
                s3.jquery_ready.append(register_script)

            # Provide a login box on front page
            request.args = ["login"]
            auth.messages.submit_button = T("Login")
            login_form = auth()
            login_div = DIV(H3(T("Login")),
                            P(XML(T("Registered users can %(login)s to access the system") % \
                                  dict(login=B(T("login"))))))

        return dict(title=title,
                    self_registration=self_registration,
                    registered=registered,
                    login_form=login_form,
                    login_div=login_div,
                    register_form=register_form,
                    register_div=register_div)
示例#4
0
    def __call__(self):

        T = current.T
        auth = current.auth
        db = current.db
        request = current.request
        appname = request.application
        response = current.response
        s3 = response.s3
        settings = current.deployment_settings

        view = path.join(request.folder, "private", "templates", "RGIMS",
                         "views", "index.html")
        try:
            # Pass view as file not str to work in compiled mode
            response.view = open(view, "rb")
        except IOError:
            from gluon.http import HTTP
            raise HTTP("404", "Unable to open Custom View: %s" % view)

        title = settings.get_system_name()
        response.title = title

        # Menu Boxes
        menu_btns = [  #div, label, app, function
            ["sit", T("Request"), "req", "req"],
            ["dec", T("Send"), "inv", "send"],
            ["res", T("Receive"), "inv", "recv"]
        ]

        menu_divs = {
            "facility": DIV(H3("Map"), _id="facility_box", _class="menu_box"),
            "sit": DIV(_id="menu_div_sit", _class="menu_div"),
            "dec": DIV(_id="menu_div_dec", _class="menu_div"),
            "res": DIV(_id="menu_div_res", _class="menu_div"),
        }

        for div, label, app, function in menu_btns:
            if settings.has_module(app):
                # @ToDo: Also check permissions (e.g. for anonymous users)
                menu_divs[div].append(
                    A(DIV(label, _class="menu-btn-r"),
                      _class="menu-btn-l",
                      _href=URL(app, function)))

        div_arrow = DIV(IMG(_src = "/%s/static/img/arrow_blue_right.png" % \
                                     appname),
                        _class = "div_arrow")
        sit_dec_res_box = DIV(menu_divs["sit"],
                              div_arrow,
                              menu_divs["dec"],
                              div_arrow,
                              menu_divs["res"],
                              _id="sit_dec_res_box",
                              _class="menu_box fleft swidth"
                              #div_additional,
                              )
        facility_box = menu_divs["facility"]
        facility_box.append(A(IMG(_src = "/%s/static/img/map_icon_128.png" % \
                                           appname),
                              _href = URL(c="gis", f="index"),
                              _title = T("Map")
                              )
                            )

        # Check logged in AND permissions
        _s3 = current.session.s3
        AUTHENTICATED = _s3.system_roles.AUTHENTICATED
        roles = _s3.roles
        if AUTHENTICATED in roles and \
           auth.s3_has_permission("read", db.org_organisation):
            auth.permission.controller = "org"
            auth.permission.function = "site"
            permitted_facilities = auth.permitted_facilities(
                redirect_on_error=False)
            manage_facility_box = ""
            if permitted_facilities:
                facility_list = s3_represent_facilities(db,
                                                        permitted_facilities,
                                                        link=False)
                facility_list = sorted(facility_list, key=lambda fac: fac[1])
                facility_opts = [
                    OPTION(opt[1], _value=opt[0]) for opt in facility_list
                ]
                facility_opts.insert(0, OPTION("Please Select a Warehouse"))
                if facility_list:
                    manage_facility_box = DIV(
                        H3(T("Manage Your Warehouse")),
                        SELECT(_id="manage_facility_select",
                               _style="max-width:400px;",
                               *facility_opts),
                        A(
                            T("Go"),
                            _href=URL(c="default",
                                      f="site",
                                      args=[facility_list[0][0]]),
                            #_disabled = "disabled",
                            _id="manage_facility_btn",
                            _class="action-btn"),
                        _id="manage_facility_box",
                        _class="menu_box fleft")
                    s3.jquery_ready.append(
                        '''$('#manage_facility_select').change(function(){
 $('#manage_facility_btn').attr('href',S3.Ap.concat('/default/site/',$('#manage_facility_select').val()))
})''')
                else:
                    manage_facility_box = DIV()

        else:
            manage_facility_box = ""
        # Login/Registration forms
        self_registration = settings.get_security_self_registration()
        registered = False
        login_form = None
        login_div = None
        register_form = None
        register_div = None
        if AUTHENTICATED not in roles:
            # This user isn't yet logged-in
            if request.cookies.has_key("registered"):
                # This browser has logged-in before
                registered = True

            if self_registration:
                # Provide a Registration box on front page
                request.args = ["register"]
                if settings.get_terms_of_service():
                    auth.messages.submit_button = T(
                        "I accept. Create my account.")
                else:
                    auth.messages.submit_button = T("Register")
                register_form = auth()
                register_div = DIV(H3(T("Register")),
                                   P(XML(T("If you would like to help, then please %(sign_up_now)s") % \
                                            dict(sign_up_now=B(T("sign-up now"))))))

                # Add client-side validation
                s3_register_validation()

                if s3.debug:
                    s3.scripts.append("/%s/static/scripts/jquery.validate.js" %
                                      appname)
                else:
                    s3.scripts.append(
                        "/%s/static/scripts/jquery.validate.min.js" % appname)
                if request.env.request_method == "POST":
                    post_script = \
'''$('#register_form').removeClass('hide')
$('#login_form').addClass('hide')'''
                else:
                    post_script = ""
                register_script = \
'''$('#register-btn').attr('href','#register')
$('#login-btn').attr('href','#login')
%s
$('#register-btn').click(function(){
 $('#register_form').removeClass('hide')
 $('#login_form').addClass('hide')
})
$('#login-btn').click(function(){
 $('#register_form').addClass('hide')
 $('#login_form').removeClass('hide')
})''' % post_script
                s3.jquery_ready.append(register_script)

            # Provide a login box on front page
            request.args = ["login"]
            auth.messages.submit_button = T("Login")
            login_form = auth()
            login_div = DIV(H3(T("Login")),
                            P(XML(T("Registered users can %(login)s to access the system") % \
                                  dict(login=B(T("login"))))))

        return dict(title=title,
                    sit_dec_res_box=sit_dec_res_box,
                    facility_box=facility_box,
                    manage_facility_box=manage_facility_box,
                    self_registration=self_registration,
                    registered=registered,
                    login_form=login_form,
                    login_div=login_div,
                    register_form=register_form,
                    register_div=register_div)