Custom PyAMS utilities¶
-PyAMS_utils provides a small set of utilities. You can create some of them as global utilities registered in -the global components registry; other ones can be created manually by a site administrator and -are then registered automatically.
-Server timezone¶
-To manage timezones correctly, and display datetimes based on current server timezone, all datetimes should -be defined and stored in UTC.
-PyAMS_utils provides a ServerTimezoneUtility
which
-allows you to assign a default timezone to your server.
To display a datetime with correct timezone, you can use the tztime
function,
-which assign server timezone to the given parameter:
from datetime import datetime
-from pyams_utils.timezone import tztime
-
-now = datetime.utcnow()
-my_date = tztime(now) # converts *now* to server timezone
-
We could imagine that datetimes could be displayed with current user timezone. But it’s quite impossible to know -the user timazone from a server request. The only options are:
--
-
- you ask an authenticated user to update a timezone setting in his profile -
- you can include Javascript libraries which will try to detect browser timezone from their computer configuration, and -do an AJAX request to update data in their session. -
That should require an update of tzinfo()
adapter to get timezone info from session, request or user profile.
ZEO connection¶
-Several PyAMS utilities (like the tasks scheduler or the medias converter) are working with dedicated processes, -are connected to main PyAMS process through ØMQ, and use ZEO connections for their PyAMS database access.
-Clients of these processes have to send settings of the ZEO connections that they should use.
-The ZEOConnection utility can be created by the site manager through the web management interface (ZMI) from the -Control panel:
- -ZEO connection creation form allows you to define all settings of a ZEO connection:
- -