Controller Code:

def company_login():

    form = SQLFORM.factory(
        Field('username', label = 'User Name', requires=IS_NOT_EMPTY()),
        Field('password', 'password', label =
"Password",requires=IS_NOT_EMPTY()),
        Field('Company', label = 'Court ID',

requires=IS_IN_DB(db,db.company.company_number,'%(company_name)s')),
        submit_button=' Login ',
        )

    if form.process().accepted:
       response.flash = 'form accepted'
    elif form.errors:
       response.flash = T('form has errors')

    session.company = request.vars['Company']

    Company_ID = session.company

    if session.company :
       DbRows = db(db.company.company_number==Company_ID).select().first()
       session.company_data = DbRows
       session.company_name = DbRows.company_name
       session.company_ap_aging = DbRows.

    return dict(form=form)

The reason I need this setup is that this is the Company Record that
controls all aspects of
the system (see ap_apaging_days). It also controls what sub-apps are on and
off ...



*Ben Duncan*
DBA / Chief Software Architect
Mississippi State Supreme Court
Electronic Filing Division


On Thu, Dec 6, 2018 at 2:59 PM Jim S <ato.st...@gmail.com> wrote:

> I'd love to see the final controller code if you have the time?
>
> Also, I'm curious as to why you're putting all this in the session.  Why
> not just pass it in the dict being returned to the view?
>
> -Jim
>
> On Thursday, December 6, 2018 at 2:46:22 PM UTC-6, Ben Duncan wrote:
>>
>> Ok, YOU GUYS are awesome .......
>> Your replies gave me the insight I needed !!!!!!!!!
>>
>> Here is the explanation:
>>
>> A: in the database, the passes were for the "lookup" in the
>> SQLFORM.factory
>>    SO there was the confusion there ...
>>
>> B: It seems there is a 2 passes thru the controller (which this group
>> gave me the hint at it)
>>     The failure was at the first pass when nothing was set ...
>>     putting this in:
>>
>>     if session.company :
>>        DbRows =
>> db(db.company.company_number==Company_ID).select(db.company.company_name).first()
>>        session.company_data = DbRows
>>        session.company_name = DbRows.company_name
>>
>> Allowed me to PASS unharmed and get what I needed.
>>
>> THANKS Again, group ....
>>
>>
>> .
>> *Ben Duncan*
>> DBA / Chief Software Architect
>> Mississippi State Supreme Court
>> Electronic Filing Division
>>
>>
>> On Thu, Dec 6, 2018 at 2:21 PM Ben Duncan <linu...@gmail.com> wrote:
>>
>>> The request.vars get set from the SQL form in the controller....
>>> Removed all the COMMENTS, and in the controller put a print and changed
>>> the code:
>>>
>>>     DbRows =
>>> db(db.company.company_number==Company_ID).select(db.company.company_name).first()
>>>     print DbRows['company_name']
>>>     session.company_data = DbRows
>>>     return dict(form=form,DbRows=DbRows)
>>>
>>> And still getting a failure now on the print line ...
>>>
>>> Ticket ID
>>>
>>> 10.13.69.144.2018-12-06.13-53-08.f35db77f-72f8-4749-82e9-90eda4c32141
>>> <type 'exceptions.TypeError'> 'NoneType' object has no attribute
>>> '__getitem__' Version
>>> web2py™ Version 2.17.2-stable+timestamp.2018.10.06.18.54.02
>>> Python Python 2.7.13: /usr/bin/python (prefix:
>>> /opt/rh/python27/root/usr) Traceback
>>>
>>> 1.
>>> 2.
>>> 3.
>>> 4.
>>> 5.
>>> 6.
>>> 7.
>>> 8.
>>> 9.
>>> 10.
>>>
>>> Traceback (most recent call last):
>>>   File "/data/web2py/web2py/gluon/restricted.py", line 219, in restricted
>>>     exec(ccode, environment)
>>>   File "/data/web2py/web2py/applications/Mec/controllers/default.py" 
>>> <https://10.13.70.47/admin/default/edit/Mec/controllers/default.py>, line 
>>> 101, in <module>
>>>   File "/data/web2py/web2py/gluon/globals.py", line 421, in <lambda>
>>>     self._caller = lambda f: f()
>>>   File "/data/web2py/web2py/applications/Mec/controllers/default.py" 
>>> <https://10.13.70.47/admin/default/edit/Mec/controllers/default.py>, line 
>>> 87, in company_login
>>>     print DbRows['company_name']
>>> TypeError: 'NoneType' object has no attribute '__getitem__'
>>>
>>>
>>>
>>> It's very strange how :
>>>  session.company_data = DbRows
>>> Gets passed.
>>>
>>> However, looking at the postgres logs:
>>>  2018-12-06 14:18:31.482 CST SessId: 5c0981bd.6e70  TrxId: 0>LOG:
>>> statement: SELECT "company"."company_name", "company"."company_number" FROM
>>> "company" WHERE ("company"."company_number" IS NOT NULL) ORDER BY
>>> "company"."company_name", "company"."company_number";
>>> < 2018-12-06 14:18:31.488 CST SessId: 5c0981bd.6e70  TrxId: 0>LOG:
>>> statement: SELECT "company"."company_name" FROM "company" WHERE
>>> ("company"."company_number" IS NULL);
>>> < 2018-12-06 14:18:31.505 CST SessId: 5c0981bd.6e70  TrxId: 0>LOG:
>>> statement: COMMIT
>>> < 2018-12-06 14:18:35.282 CST SessId: 5c0981bd.6e70  TrxId: 0>LOG:
>>> statement: BEGIN
>>> < 2018-12-06 14:18:35.282 CST SessId: 5c0981bd.6e70  TrxId: 0>LOG:
>>> statement: SELECT 1;
>>> < 2018-12-06 14:18:35.475 CST SessId: 5c0981bd.6e70  TrxId: 0>LOG:
>>> statement: SELECT "company"."company_name", "company"."company_number" FROM
>>> "company" WHERE ("company"."company_number" IS NOT NULL) ORDER BY
>>> "company"."company_name", "company"."company_number";
>>> < 2018-12-06 14:18:35.485 CST SessId: 5c0981bd.6e70  TrxId: 0>LOG:
>>> statement: SELECT "company"."company_name" FROM "company" WHERE
>>> ("company"."company_number" = 13);
>>> < 2018-12-06 14:18:35.505 CST SessId: 5c0981bd.6e70  TrxId: 0>LOG:
>>> statement: COMMIT
>>>
>>> It seems to be making 2 passes thru the DB
>>>
>>> Allows the  the session variable to be set
>>> *Ben Duncan*
>>> DBA / Chief Software Architect
>>> Mississippi State Supreme Court
>>> Electronic Filing Division
>>>
>>>
>>> On Thu, Dec 6, 2018 at 1:30 PM Val K <valq...@gmail.com> wrote:
>>>
>>>> Maybe I don't understand something, but I think that when the
>>>> controller is requested for the first time there is no any request.vars and
>>>> request.vars['Company'] too. Just in case: form.process() doesn't interrupt
>>>> controller execution
>>>>
>>>> --
>>>> Resources:
>>>> - http://web2py.com
>>>> - http://web2py.com/book (Documentation)
>>>> - http://github.com/web2py/web2py (Source code)
>>>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>>>> ---
>>>> You received this message because you are subscribed to the Google
>>>> Groups "web2py-users" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to web2py+un...@googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>> --
> Resources:
> - http://web2py.com
> - http://web2py.com/book (Documentation)
> - http://github.com/web2py/web2py (Source code)
> - https://code.google.com/p/web2py/issues/list (Report Issues)
> ---
> You received this message because you are subscribed to the Google Groups
> "web2py-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to web2py+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to