view website/issues/extensions/timezone.py @ 5920:ff7e089fd4ef

support python 3.4 testing python 3.4 is not supported by any 1.4 release of mysqlclient. Pip is installing the 1.4.4 version even when run from python 3.4. Check version and install 1.3.14 on python 3.4 but newest one on all other versions.
author John Rouillard <rouilj@ieee.org>
date Sun, 13 Oct 2019 14:17:33 -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/