datatracker/ietf/bin/create-charter-newrevisiondocevents
Jennifer Richards 63a1baf116
fix: more small timezone-aware fixes (#4489)
* fix: use meeting timezone for agenda_by_(room|type)

* refactor: use timezone.override instead of timezone.activate/deactivate

* fix: add timezone info in create-charter-newrevisiondocevents

* fix: use meeting timezone for recording.html template

* fix: use meeting timezone for slide submission timeslot display

* fix: use meeting timezone for schedule diff template

* fix: use meeting timezone for edit_meeting_timeslots_and_misc_sessions

* fix: use meeting timezone for materials() view

* fix: use meeting timezone for proceedings() view

* refactor: force timestamps to utc in important_dates_for_meeting.ics

Has no effect now, but guarantees consistency with template's assertion
that its timestamps are in UTC.

* fix: use meeting timezone for a couple interim meeting templates

* fix: use meeting timezone for propose_session_slides template

* fix: use meeting timezone for upload_session_*.html

* fix: use meeting timezone for a couple session templates
2022-09-22 12:19:56 -03:00

73 lines
2.5 KiB
Python
Executable file

#!/usr/bin/env python
import os
import sys
version = "0.10"
program = os.path.basename(sys.argv[0])
progdir = os.path.dirname(sys.argv[0])
# boilerplate
basedir = os.path.abspath(os.path.join(os.path.dirname(__file__), "../.."))
sys.path = [ basedir ] + sys.path
os.environ["DJANGO_SETTINGS_MODULE"] = "ietf.settings"
virtualenv_activation = os.path.join(basedir, "env", "bin", "activate_this.py")
if os.path.exists(virtualenv_activation):
execfile(virtualenv_activation, dict(__file__=virtualenv_activation))
# ----------------------------------------------------------------------
def note(string):
sys.stdout.write("%s\n" % (string))
# ----------------------------------------------------------------------
def warn(string):
sys.stderr.write(" * %s\n" % (string))
# ------------------------------------------------------------------------------
import re
import datetime
import django
django.setup()
from django.conf import settings
from ietf.utils.path import path as Path
from ietf.doc.models import Document, NewRevisionDocEvent
from ietf.person.models import Person
system_entity = Person.objects.get(name="(System)")
charterdir = Path(settings.CHARTER_PATH)
for file in charterdir.files("charter-ietf-*.txt"):
fname = file.name
ftime = datetime.datetime.fromtimestamp(file.mtime, datetime.timezone.utc)
match = re.search("^(?P<name>[a-z0-9-]+)-(?P<rev>\d\d-\d\d)\.txt$", fname)
if match:
name = match.group("name")
rev = match.group("rev")
else:
match = re.search("^(?P<name>[a-z0-9-]+)-(?P<rev>\d\d)\.txt$", fname)
if match:
name = match.group("name")
rev = match.group("rev")
else:
warn("Failed extracting revision from filename: '%s'" % fname)
try:
doc = Document.objects.get(type="charter", name=name)
try:
event = NewRevisionDocEvent.objects.get(doc=doc, type='new_revision', rev=rev)
note(".")
except NewRevisionDocEvent.MultipleObjectsReturned, e:
warn("Multiple NewRevisionDocEvent exists for '%s'" % fname)
except NewRevisionDocEvent.DoesNotExist:
event = NewRevisionDocEvent(doc=doc, type='new_revision', rev=rev, by=system_entity, time=ftime, desc="")
event.save()
note("Created new NewRevisionDocEvent for %s-%s" % (name, rev))
except Document.DoesNotExist:
warn("Document not found: '%s'; no NewRevisionDocEvent created for '%s'" % (name, fname))