diff --git a/container-compose.yml b/container-compose.yml index a6cee3c8..bbc50556 100644 --- a/container-compose.yml +++ b/container-compose.yml @@ -183,6 +183,8 @@ services: - journal_source=./journal - mailman_source=./mailman - orbit_source=./orbit + environment: + TZ: ${SINGULARITY_TIMEZONE} volumes: - type: volume source: denis-db diff --git a/denis/Containerfile b/denis/Containerfile index f87db507..8808eb91 100644 --- a/denis/Containerfile +++ b/denis/Containerfile @@ -22,6 +22,7 @@ FROM alpine:3.20 AS denis RUN apk add \ py3-peewee \ py3-gitpython \ + tzdata \ ; WORKDIR /usr/local/share/denis diff --git a/denis/configure.py b/denis/configure.py index 1bef66f4..c18060d9 100755 --- a/denis/configure.py +++ b/denis/configure.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 +from datetime import datetime from argparse import ArgumentParser as ap import db @@ -48,7 +49,12 @@ def add_final(parser, required=True): remove_parser = command_parsers.add_parser('remove') add_assignment(remove_parser) - command_parsers.add_parser('dump') + dump_parser = command_parsers.add_parser('dump') + dump_parser.add_argument('-i', '--iso', + action='store_true', + dest='fmt_iso', + help='Dump dates in ISO format') + command_parsers.add_parser('reload') # Dictionary containing the desired command and all flags with their values @@ -96,13 +102,17 @@ def remove(assignment): print(f'no such assignment {assignment}') -def dump(): +def dump(fmt_iso): + def timestamp_to_formatted(timestamp): + dt = datetime.fromtimestamp(timestamp).astimezone() + return dt.isoformat() if fmt_iso else dt.strftime('%a %b %d %Y %T %Z (%z)') + print(' --- Assignments ---') for asn in db.Assignment.select(): print(f'''{asn.name}: -\tInitial: {asn.initial_due_date} -\tPeer Review: {asn.peer_review_due_date} -\tFinal: {asn.final_due_date}''') +\tInitial:\t{timestamp_to_formatted(asn.initial_due_date)} +\tPeer Review:\t{timestamp_to_formatted(asn.peer_review_due_date)} +\tFinal:\t\t{timestamp_to_formatted(asn.final_due_date)}''') def reload():