view website/issues/extensions/timezone.py @ 6199:e860c6a30508

admin.py testing. See previous checkin for admin.py. This got left out of the changeset apparently. test_admin.py: Add tests for get with bad node designator Add disabled test for HelpInitopts. Proper test TBD as valid result depends on the environment the test is run in. So making it robust it tricky. Add tests for set error cases. Add test for using set on class rather than designator Add new tests for table command
author John Rouillard <rouilj@ieee.org>
date Sat, 13 Jun 2020 00:19:38 -0400
parents 7d8e0dbb0852
children
line wrap: on
line source

# Utility for replacing the simple input field for the timezone with
# a select-field that lists the available values.

import cgi

try:
    import pytz
except ImportError:
    pytz = None


def tzfield(prop, name, default):
    if pytz:
        value = prop.plain()        
        if '' == value:
            value = default
        else:
            try:
                value = "Etc/GMT%+d" % int(value)
            except ValueError:
                pass

        l = ['<select name="%s">' % name]
        for zone in pytz.all_timezones:
            s = ' '
            if zone == value:
                s = 'selected=selected '
            z = cgi.escape(zone)
            l.append('<option %svalue="%s">%s</option>' % (s, z, z))
        l.append('</select>')
        return '\n'.join(l)
        
    else:
        return prop.field()

def init(instance):
    instance.registerUtil('tzfield', tzfield)

Roundup Issue Tracker: http://roundup-tracker.org/