On Tuesday, 30 October 2018 20:12:11 UTC, Dave S wrote:
>
>
>
> On Tuesday, October 30, 2018 at 7:41:09 AM UTC-7, Francis Windram wrote:
>>
>> Good Evening,
>>
>> I'm a relative newby to web2py, but with a few years of Python under my
>> belt and old knowledge of HTML (from the pre-HTML5 days).
>>
>> When I deploy a new release, part of the procedure is to update the
>> version line in appconfig.ini, e.g.:
>>
>> [app]
>> appname = Webapp
>> version = 1.0.0
>>
>> to
>>
>> [app]
>> appname = Webapp
>> version = 1.0.1
>>
>>
>>
>> Now this all works fine, but I want to display this as part of the footer
>> in a form akin to:
>>
>> Webapp v1.0.1, Copyright © 2018
>>
>> This footer is currently generated in (the default) layout.html as
>> follows:
>>
>> <footer class="footer">
>> <div class="container-fluid">
>> <div class="copyright pull-left">{{=T('Copyright')}} ©
>> {{=request.now.year}}</div>
>> <div id="poweredBy" class="pull-right">
>> {{=T('Powered by')}}
>> <a href="http://www.web2py.com/">web2py</a>
>> </div>
>> </div>
>> </footer>
>>
>>
>> I know that in a controller you can access the appconfig args using code
>> along the lines of:
>>
>> from gluon.contrib.appconfig import AppConfig
>>
>> appconf = AppConfig(reload=False)
>> print(appconf.take("app.version"))
>>
>>
>> However, I have no idea how to do a similar call to the appconfig
>> variables from a view.
>> Any ideas? Do I need a controller to serve this information to the view?
>> And if so, in what controller file would that controller reside?
>>
>> Many thanks,
>> Francis
>>
>
> Views are assembled on the server (except for things like jQuery), and
> have a "this piece is python" syntax which you can see in the footer
> example
> {{=T('Copyright')}} // Apply T() to the string 'Copyright' and insert here
> {{=request.now.year}} // insert here the value of request.now.year
>
>
> See
> <URL:http://web2py.com/books/default/chapter/29/05/the-views>
> ... the '{{ ... }}' construction is introduced right away.
>
> The part I find tricky here is that you need to do an import of AppConfig,
> or I'd say just try adding this to your footer:
>
> {{ = appconf.take("app.version")}}
>
>
> I can do the import easily enough in the controller, so I've just tested
> that. Import AppConfig at the top of the module, and define appconf as
> in models/db.py. Then in your controller return statement add
> ..., app_version = appconf.take("app.version"), ....
> and in your footer add
> {{== app_version}}
> You can do this in whatever controller you want, and the view will then
> display the version.
>
> Even better, since you probably want all pages to display the version, is
> just set app_version in your model file (db.py is where I tested it), and
> it then becomes a global.
>
> /dps
>
>
Perfect! With the vars defined in db.py, this all works swimmingly! Thank
you very much
--
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 [email protected].
For more options, visit https://groups.google.com/d/optout.