From c3da3088fb841375eaa97d972154a85f99e3898f Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Fri, 9 Jun 2023 16:57:41 -0500 Subject: [PATCH 01/10] feat: render charters on about page uring markdown --- ietf/group/views.py | 1 + ietf/templates/group/group_about.html | 3 +-- ietf/templates/group/group_about_rendertest.html | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ietf/group/views.py b/ietf/group/views.py index 95bf4c5e9e..ad6e8283fe 100644 --- a/ietf/group/views.py +++ b/ietf/group/views.py @@ -166,6 +166,7 @@ def fill_in_charter_info(group, include_drafts=False): group.charter_text = get_charter_text(group) else: group.charter_text = "Not chartered yet." + group.charter_html = markdown.markdown(group.charter_text) def extract_last_name(role): return role.person.name_parts()[3] diff --git a/ietf/templates/group/group_about.html b/ietf/templates/group/group_about.html index 0ad9813e2f..1734b1f465 100644 --- a/ietf/templates/group/group_about.html +++ b/ietf/templates/group/group_about.html @@ -379,8 +379,7 @@

{% if group.state_id == "proposed" %}proposed{% endif %} {{ group.type.desc.title }}

- {# the linebreaks filter adds

, no surrounding

necessary: #} - {{ group.charter_text|urlize_ietf_docs|linkify|linebreaks }} + {{ group.charter_html }} {% else %}

{% if requested_close or group.state_id == "conclude" %}Final{% endif %} diff --git a/ietf/templates/group/group_about_rendertest.html b/ietf/templates/group/group_about_rendertest.html index 3f57bccc70..b3abf71915 100644 --- a/ietf/templates/group/group_about_rendertest.html +++ b/ietf/templates/group/group_about_rendertest.html @@ -40,15 +40,15 @@ {% block js %} {% endblock %} \ No newline at end of file From 32b90dc334c4c151535f751ebef2f98bf7d69932 Mon Sep 17 00:00:00 2001 From: Jennifer Richards Date: Tue, 13 Jun 2023 12:55:20 -0300 Subject: [PATCH 02/10] ci: Drop CI tests for feat/django4 branch (#5811) --- .github/workflows/ci-run-tests.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci-run-tests.yml b/.github/workflows/ci-run-tests.yml index 8a7ee696b9..e8e9fe324b 100644 --- a/.github/workflows/ci-run-tests.yml +++ b/.github/workflows/ci-run-tests.yml @@ -4,7 +4,6 @@ on: pull_request: branches: - 'main' - - 'feat/django4' paths: - 'client/**' - 'ietf/**' From f3831de3ef74b459a78d139c87d74590f3bb29bc Mon Sep 17 00:00:00 2001 From: Nicolas Giard Date: Tue, 13 Jun 2023 11:56:11 -0400 Subject: [PATCH 03/10] chore(dev): fix internal static proxy + add /pgadmin to reverse-proxy (#5809) --- .devcontainer/devcontainer.json | 6 +----- .devcontainer/docker-compose.extend.yml | 6 ------ docker-compose.yml | 2 +- docker/configs/nginx-502.html | 4 +++- docker/configs/nginx-proxy.conf | 9 ++++++++- docker/configs/settings_local.py | 2 +- 6 files changed, 14 insertions(+), 15 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 422e77cf54..14a0d5ea90 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -67,7 +67,7 @@ }, // Use 'forwardPorts' to make a list of ports inside the container available locally. - "forwardPorts": [3000, 5432, 5433, 8000], + "forwardPorts": [3000, 5432, 8000], "portsAttributes": { "3000": { @@ -78,10 +78,6 @@ "label": "PostgreSQL", "onAutoForward": "silent" }, - "5433": { - "label": "pgAdmin", - "onAutoForward": "silent" - }, "8000": { "label": "NGINX", "onAutoForward": "notify" diff --git a/.devcontainer/docker-compose.extend.yml b/.devcontainer/docker-compose.extend.yml index 1673e4e618..fa9a412cf2 100644 --- a/.devcontainer/docker-compose.extend.yml +++ b/.devcontainer/docker-compose.extend.yml @@ -15,11 +15,5 @@ services: # Runs app on the same network as the database container, allows "forwardPorts" in devcontainer.json function. network_mode: service:db - pgadmin: - network_mode: service:db - - static: - network_mode: service:db - volumes: datatracker-vscode-ext: diff --git a/docker-compose.yml b/docker-compose.yml index f8f933527c..2889bce9b0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -53,9 +53,9 @@ services: - PGADMIN_DEFAULT_EMAIL=dev@ietf.org - PGADMIN_DEFAULT_PASSWORD=dev - PGADMIN_CONFIG_LOGIN_BANNER="Login with dev@ietf.org / dev" - - PGADMIN_LISTEN_PORT=5433 - PGADMIN_DISABLE_POSTFIX=True - PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED=False + - SCRIPT_NAME=/pgadmin volumes: - ./docker/configs/pgadmin-servers.json:/pgadmin4/servers.json diff --git a/docker/configs/nginx-502.html b/docker/configs/nginx-502.html index 9d85600ecb..9e4374f3c0 100644 --- a/docker/configs/nginx-502.html +++ b/docker/configs/nginx-502.html @@ -23,7 +23,6 @@ background-color: #222; border-radius: 10px; padding: 10px 50px; - display: inline-block; } i { font-size: 64px; @@ -54,6 +53,9 @@

Could not connect to dev server.

Using VS Code, open the Run and Debug tab on the left and click the symbol (Run Server) to start the server.

Otherwise, run the command ietf/manage.py runserver 0.0.0.0:8001 from the terminal.

+
+

You can manage the database at /pgadmin.

+

For more information, check out the Datatracker Development in Docker guide.

diff --git a/docker/configs/nginx-proxy.conf b/docker/configs/nginx-proxy.conf index 02f5208caa..d5681fb239 100644 --- a/docker/configs/nginx-proxy.conf +++ b/docker/configs/nginx-proxy.conf @@ -8,7 +8,14 @@ server { server_name _; location /_static/ { - proxy_pass http://localhost:80/; + proxy_pass http://static/; + } + + location /pgadmin/ { + proxy_set_header X-Script-Name /pgadmin; + proxy_set_header Host $host; + proxy_pass http://pgadmin; + proxy_redirect off; } location / { diff --git a/docker/configs/settings_local.py b/docker/configs/settings_local.py index fc3052ff98..647fcd5b22 100644 --- a/docker/configs/settings_local.py +++ b/docker/configs/settings_local.py @@ -57,4 +57,4 @@ DE_GFM_BINARY = '/usr/local/bin/de-gfm' STATIC_IETF_ORG = "/_static" -STATIC_IETF_ORG_INTERNAL = "http://localhost:80" +STATIC_IETF_ORG_INTERNAL = "http://static" From 518aedb0f07486eac135c0a3596bf1a58ae205e1 Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Tue, 13 Jun 2023 15:53:36 -0500 Subject: [PATCH 04/10] chore: remove already run single-use management command (#5815) --- .../commands/data_for_import_iab_minutes | 1 - .../management/commands/import_iab_minutes.py | 141 --- .../regenerate_data_for_import_iab_minutes.py | 872 ------------------ 3 files changed, 1014 deletions(-) delete mode 100644 ietf/meeting/management/commands/data_for_import_iab_minutes delete mode 100644 ietf/meeting/management/commands/import_iab_minutes.py delete mode 100644 ietf/meeting/management/commands/regenerate_data_for_import_iab_minutes.py diff --git a/ietf/meeting/management/commands/data_for_import_iab_minutes b/ietf/meeting/management/commands/data_for_import_iab_minutes deleted file mode 100644 index 5df3b280b7..0000000000 --- a/ietf/meeting/management/commands/data_for_import_iab_minutes +++ /dev/null @@ -1 +0,0 @@ -{"1988": [[3, 21, "md", 12, 0, 300], [7, 12, "md", 12, 0, 300]], "1990": [[1, 3, "md", 12, 0, 300], [4, 26, "md", 12, 0, 300], [6, 28, "md", 12, 0, 300], [10, 11, "md", 12, 0, 300]], "1991": [[1, 8, "md", 12, 0, 300], [6, 14, "md", 12, 0, 300], [10, 10, "md", 12, 0, 300], [11, 19, "md", 12, 0, 300]], "1992": [[1, 7, "md", 12, 0, 300], [6, 18, "md", 12, 0, 300], [7, 17, "md", 12, 0, 300], [10, 29, "md", 12, 0, 300]], "1993": [[3, 30, "md", 12, 0, 300], [7, 13, "md", 12, 0, 300]], "1994": [[3, 30, "md", 12, 0, 300], [4, 29, "md", 12, 0, 300], [5, 24, "md", 12, 0, 300], [7, 5, "md", 12, 0, 300], [7, 27, "md", 12, 0, 300], [9, 23, "md", 12, 0, 300], [10, 13, "md", 12, 0, 300], [11, 9, "md", 12, 0, 300], [12, 7, "md", 12, 0, 300], [12, 9, "md", 12, 0, 300]], "1995": [[1, 10, "md", 12, 0, 300], [2, 7, "md", 12, 0, 300], [2, 28, "md", 12, 0, 300], [3, 22, "md", 12, 0, 300], [4, 2, "md", 12, 0, 300], [4, 5, "md", 12, 0, 300], [4, 19, "md", 12, 0, 300], [5, 10, "md", 12, 0, 300], [6, 7, "md", 12, 0, 300], [6, 29, "md", 12, 0, 300], [7, 19, "md", 12, 0, 300], [8, 8, "md", 12, 0, 300], [9, 12, "md", 12, 0, 300], [10, 10, "md", 12, 0, 300], [11, 14, "md", 12, 0, 300], [12, 3, "md", 12, 0, 300]], "1996": [[1, 9, "md", 12, 0, 300], [2, 13, "md", 12, 0, 300], [3, 5, "md", 12, 0, 300], [3, 6, "md", 12, 0, 300], [4, 9, "md", 12, 0, 300], [5, 14, "md", 12, 0, 300], [6, 11, "md", 12, 0, 300], [6, 26, "md", 12, 0, 300], [7, 9, "md", 12, 0, 300], [8, 13, "md", 12, 0, 300], [9, 12, "md", 12, 0, 300], [10, 8, "md", 12, 0, 300], [11, 12, "md", 12, 0, 300], [12, 10, "md", 12, 0, 300]], "1997": [[1, 14, "md", 12, 0, 300], [3, 11, "md", 12, 0, 300], [4, 8, "md", 12, 0, 300], [4, 9, "md", 12, 0, 300], [6, 17, "md", 12, 0, 300], [7, 15, "md", 12, 0, 300], [8, 12, "md", 12, 0, 300], [8, 13, "md", 12, 0, 300], [9, 9, "md", 12, 0, 300], [10, 14, "md", 12, 0, 300], [11, 11, "md", 12, 0, 300], [12, 9, "md", 12, 0, 300], [12, 10, "md", 12, 0, 300]], "1998": [[1, 20, "md", 12, 0, 300], [2, 10, "md", 12, 0, 300], [3, 10, "md", 12, 0, 300], [3, 31, "md", 12, 0, 300], [3, 31, "pdf", 12, 0, 300], [4, 2, "md", 12, 0, 300], [5, 12, "md", 12, 0, 300], [6, 9, "md", 12, 0, 300], [7, 14, "md", 12, 0, 300], [8, 4, "md", 12, 0, 300], [8, 23, "md", 12, 0, 300], [9, 15, "md", 12, 0, 300], [10, 13, "md", 12, 0, 300], [11, 10, "md", 12, 0, 300], [12, 8, "md", 12, 0, 300]], "1999": [[1, 12, "md", 12, 0, 300], [2, 9, "md", 12, 0, 300], [3, 16, "md", 12, 0, 300], [4, 13, "md", 12, 0, 300], [5, 11, "md", 12, 0, 300], [6, 15, "md", 12, 0, 300], [7, 11, "md", 12, 0, 300], [8, 10, "md", 12, 0, 300], [9, 14, "md", 12, 0, 300], [10, 19, "md", 12, 0, 300], [11, 9, "md", 12, 0, 300], [12, 14, "md", 12, 0, 300]], "2000": [[1, 10, "md", 12, 0, 300], [2, 14, "md", 12, 0, 300], [3, 26, "md", 12, 0, 300], [4, 10, "md", 12, 0, 300], [5, 8, "md", 12, 0, 300], [6, 12, "md", 12, 0, 300], [7, 10, "md", 12, 0, 300], [8, 1, "md", 12, 0, 300], [8, 14, "md", 12, 0, 300], [9, 11, "md", 12, 0, 300], [10, 16, "md", 12, 0, 300], [11, 13, "md", 12, 0, 300], [12, 12, "md", 12, 0, 300]], "2001": [[1, 9, "md", 12, 0, 300], [2, 13, "md", 12, 0, 300], [3, 20, "md", 12, 0, 300], [4, 10, "md", 12, 0, 300], [5, 8, "md", 12, 0, 300], [6, 12, "md", 12, 0, 300], [7, 10, "md", 12, 0, 300], [8, 7, "md", 12, 0, 300], [9, 11, "md", 12, 0, 300], [9, 11, "pdf", 12, 0, 300], [9, 24, "md", 12, 0, 300], [10, 9, "md", 12, 0, 300], [11, 20, "md", 12, 0, 300], [12, 11, "md", 12, 0, 300]], "2002": [[1, 8, "md", 12, 0, 300], [2, 12, "md", 12, 0, 300], [2, 15, "md", 12, 0, 300], [3, 12, "md", 12, 0, 300], [3, 19, "md", 12, 0, 300], [4, 9, "md", 12, 0, 300], [5, 14, "md", 12, 0, 300], [6, 11, "md", 12, 0, 300], [7, 16, "md", 12, 0, 300], [8, 13, "md", 12, 0, 300], [9, 10, "md", 12, 0, 300], [10, 8, "md", 12, 0, 300], [11, 17, "md", 12, 0, 300], [12, 10, "md", 12, 0, 300]], "2003": [[1, 14, "md", 12, 0, 300], [2, 11, "md", 12, 0, 300], [3, 11, "md", 12, 0, 300], [3, 18, "md", 12, 0, 300], [4, 8, "md", 12, 0, 300], [5, 13, "md", 12, 0, 300], [6, 10, "md", 12, 0, 300], [7, 8, "md", 12, 0, 300], [7, 17, "md", 12, 0, 300], [8, 12, "md", 12, 0, 300], [9, 9, "md", 12, 0, 300], [10, 14, "md", 12, 0, 300], [11, 4, "md", 12, 0, 300], [11, 9, "md", 12, 0, 300], [12, 9, "md", 12, 0, 300]], "2004": [[1, 13, "md", 12, 0, 300], [2, 10, "md", 12, 0, 300], [3, 2, "md", 12, 0, 300], [4, 13, "md", 12, 0, 300], [5, 11, "md", 12, 0, 300], [6, 8, "md", 12, 0, 300], [7, 13, "md", 12, 0, 300], [8, 3, "md", 12, 0, 300], [9, 14, "md", 12, 0, 300], [10, 12, "md", 12, 0, 300], [11, 7, "md", 12, 0, 300], [12, 14, "md", 12, 0, 300]], "2005": [[1, 11, "md", 12, 0, 300], [2, 8, "md", 12, 0, 300], [3, 1, "md", 12, 0, 300], [3, 7, "md", 12, 0, 300], [4, 13, "md", 12, 0, 300], [5, 11, "md", 12, 0, 300], [6, 10, "md", 12, 0, 300], [7, 13, "md", 12, 0, 300], [8, 2, "md", 12, 0, 300], [9, 14, "md", 12, 0, 300], [10, 12, "md", 12, 0, 300], [11, 2, "md", 12, 0, 300], [11, 10, "md", 12, 0, 300], [12, 7, "md", 12, 0, 300], [12, 21, "md", 12, 0, 300]], "2006": [[1, 4, "md", 12, 0, 300], [1, 18, "md", 12, 0, 300], [2, 1, "md", 12, 0, 300], [2, 15, "md", 12, 0, 300], [3, 15, "md", 12, 0, 300], [3, 19, "md", 12, 0, 300], [4, 5, "md", 12, 0, 300], [4, 17, "md", 12, 0, 300], [5, 3, "md", 12, 0, 300], [5, 17, "md", 12, 0, 300], [6, 7, "md", 12, 0, 300], [6, 21, "md", 12, 0, 300], [7, 5, "md", 12, 0, 300], [7, 9, "md", 12, 0, 300], [8, 2, "md", 12, 0, 300], [8, 30, "md", 12, 0, 300], [9, 6, "md", 12, 0, 300], [9, 20, "md", 12, 0, 300], [10, 4, "md", 12, 0, 300], [10, 25, "md", 12, 0, 300], [11, 1, "md", 12, 0, 300], [11, 5, "md", 12, 0, 300], [11, 22, "md", 12, 0, 300], [12, 6, "md", 12, 0, 300], [12, 20, "md", 12, 0, 300]], "2007": [[1, 10, "md", 12, 0, 300], [1, 24, "md", 12, 0, 300], [2, 7, "md", 12, 0, 300], [2, 21, "md", 12, 0, 300], [3, 7, "md", 12, 0, 300], [3, 18, "md", 12, 0, 300], [4, 4, "md", 12, 0, 300], [4, 18, "md", 12, 0, 300], [5, 2, "md", 12, 0, 300], [5, 16, "md", 12, 0, 300], [6, 6, "md", 12, 0, 300], [6, 20, "md", 12, 0, 300], [7, 11, "md", 12, 0, 300], [7, 24, "md", 12, 0, 300], [7, 26, "md", 12, 0, 300], [8, 15, "md", 12, 0, 300], [9, 5, "md", 12, 0, 300], [9, 19, "md", 12, 0, 300], [10, 3, "md", 12, 0, 300], [10, 17, "md", 12, 0, 300], [11, 7, "md", 12, 0, 300], [11, 21, "md", 12, 0, 300], [12, 19, "md", 12, 0, 300]], "2008": [[1, 9, "md", 12, 0, 300], [1, 16, "md", 12, 0, 300], [1, 30, "md", 12, 0, 300], [2, 6, "md", 12, 0, 300], [2, 13, "md", 12, 0, 300], [2, 20, "md", 12, 0, 300], [3, 26, "md", 12, 0, 300], [4, 2, "md", 12, 0, 300], [4, 16, "md", 12, 0, 300], [5, 7, "md", 12, 0, 300], [5, 21, "md", 12, 0, 300], [5, 28, "md", 12, 0, 300], [6, 4, "md", 12, 0, 300], [6, 12, "md", 12, 0, 300], [6, 18, "md", 12, 0, 300], [6, 25, "md", 12, 0, 300], [7, 2, "md", 12, 0, 300], [7, 16, "md", 12, 0, 300], [7, 23, "md", 12, 0, 300], [8, 6, "md", 12, 0, 300], [8, 13, "md", 12, 0, 300], [8, 20, "md", 12, 0, 300], [8, 27, "md", 12, 0, 300], [9, 3, "md", 12, 0, 300], [9, 17, "md", 12, 0, 300], [9, 24, "md", 12, 0, 300], [10, 1, "md", 12, 0, 300], [10, 3, "md", 12, 0, 300], [10, 8, "md", 12, 0, 300], [10, 15, "md", 12, 0, 300], [11, 5, "md", 12, 0, 300], [12, 3, "md", 12, 0, 300], [12, 17, "md", 12, 0, 300]], "2009": [[1, 7, "md", 12, 0, 300], [1, 14, "md", 12, 0, 300], [1, 21, "md", 12, 0, 300], [1, 28, "md", 12, 0, 300], [2, 4, "md", 12, 0, 300], [2, 5, "md", 12, 0, 300], [2, 18, "md", 12, 0, 300], [2, 25, "md", 12, 0, 300], [3, 4, "md", 12, 0, 300], [3, 18, "md", 12, 0, 300], [4, 1, "md", 12, 0, 300], [4, 8, "md", 12, 0, 300], [5, 13, "md", 12, 0, 300], [5, 27, "md", 12, 0, 300], [6, 3, "md", 12, 0, 300], [6, 10, "md", 12, 0, 300], [6, 24, "md", 12, 0, 300], [7, 1, "md", 12, 0, 300], [8, 12, "md", 12, 0, 300], [9, 2, "md", 12, 0, 300], [9, 9, "md", 12, 0, 300], [9, 23, "md", 12, 0, 300], [9, 25, "md", 12, 0, 300], [10, 7, "md", 12, 0, 300], [10, 14, "md", 12, 0, 300], [10, 21, "md", 12, 0, 300], [10, 28, "md", 12, 0, 300], [11, 4, "md", 12, 0, 300], [11, 25, "md", 12, 0, 300], [12, 2, "md", 12, 0, 300], [12, 9, "md", 12, 0, 300]], "2010": [[1, 6, "md", 12, 0, 300], [1, 7, "md", 12, 0, 300], [1, 13, "md", 12, 0, 300], [1, 20, "md", 12, 0, 300], [1, 27, "md", 12, 0, 300], [2, 1, "md", 12, 0, 300], [2, 3, "md", 12, 0, 300], [2, 10, "md", 12, 0, 300], [2, 24, "md", 12, 0, 300], [3, 3, "md", 12, 0, 300], [3, 10, "md", 12, 0, 300], [4, 7, "md", 12, 0, 300], [4, 14, "md", 12, 0, 300], [4, 28, "md", 12, 0, 300], [5, 12, "md", 12, 0, 300], [6, 2, "md", 12, 0, 300], [6, 23, "md", 12, 0, 300], [7, 7, "md", 12, 0, 300], [7, 14, "md", 12, 0, 300], [8, 11, "md", 12, 0, 300], [8, 25, "md", 12, 0, 300], [9, 1, "md", 12, 0, 300], [9, 8, "md", 12, 0, 300], [9, 16, "md", 12, 0, 300], [9, 22, "md", 12, 0, 300], [9, 29, "md", 12, 0, 300], [10, 13, "md", 12, 0, 300], [10, 27, "md", 12, 0, 300], [11, 24, "md", 12, 0, 300], [12, 1, "md", 12, 0, 300], [12, 22, "md", 12, 0, 300]], "2011": [[1, 5, "md", 12, 0, 300], [1, 12, "md", 12, 0, 300], [1, 19, "md", 12, 0, 300], [1, 26, "md", 12, 0, 300], [2, 1, "md", 12, 0, 300], [2, 2, "md", 12, 0, 300], [2, 9, "md", 12, 0, 300], [2, 23, "md", 12, 0, 300], [3, 2, "md", 12, 0, 300], [3, 9, "md", 12, 0, 300], [3, 29, "md", 12, 0, 300], [4, 6, "md", 16, 30, 5400], [4, 13, "md", 16, 30, 5400], [4, 27, "md", 16, 30, 5400], [5, 4, "md", 16, 30, 5400], [5, 12, "md", 16, 30, 5400], [5, 25, "md", 16, 30, 5400], [6, 1, "md", 16, 30, 5400], [6, 8, "md", 16, 30, 5400], [6, 15, "md", 16, 30, 5400], [6, 22, "md", 16, 30, 5400], [6, 29, "md", 16, 30, 5400], [7, 6, "md", 16, 30, 5400], [7, 13, "md", 16, 30, 5400], [7, 24, "md", 16, 30, 5400], [7, 26, "md", 16, 30, 5400], [7, 28, "md", 16, 30, 5400], [8, 10, "md", 16, 30, 5400], [8, 24, "md", 16, 30, 5400], [9, 7, "md", 16, 30, 5400], [9, 14, "md", 16, 30, 5400], [9, 21, "md", 16, 30, 5400], [9, 28, "md", 16, 30, 5400], [10, 5, "md", 16, 30, 5400], [10, 12, "md", 16, 30, 5400], [10, 26, "md", 16, 30, 5400], [11, 2, "md", 16, 30, 5400], [11, 13, "md", 17, 30, 5400], [11, 15, "md", 17, 30, 5400], [11, 17, "md", 17, 30, 5400], [11, 30, "md", 17, 30, 5400], [12, 7, "md", 17, 30, 5400], [12, 14, "md", 17, 30, 5400], [12, 21, "md", 17, 30, 5400]], "2012": [[1, 4, "md", 17, 30, 5400], [1, 11, "md", 17, 30, 5400], [1, 18, "md", 17, 30, 5400], [1, 25, "md", 17, 30, 5400], [2, 8, "md", 17, 30, 5400], [2, 22, "md", 17, 30, 5400], [2, 29, "md", 17, 30, 5400], [3, 7, "md", 17, 30, 5400], [3, 14, "md", 16, 30, 5400], [3, 25, "md", 16, 30, 5400], [3, 27, "md", 16, 30, 5400], [3, 29, "md", 16, 30, 5400], [4, 11, "md", 16, 30, 5400], [4, 18, "md", 16, 30, 5400], [4, 25, "md", 16, 30, 5400], [5, 2, "md", 16, 30, 5400], [5, 10, "md", 16, 30, 5400], [5, 16, "md", 16, 30, 5400], [5, 23, "md", 16, 30, 5400], [5, 30, "md", 16, 30, 5400], [6, 6, "md", 16, 30, 5400], [6, 13, "md", 16, 30, 5400], [6, 27, "md", 16, 30, 5400], [7, 11, "md", 16, 30, 5400], [7, 18, "md", 16, 30, 5400], [7, 25, "md", 16, 30, 5400], [7, 29, "md", 16, 30, 5400], [7, 31, "md", 16, 30, 5400], [8, 2, "md", 16, 30, 5400], [8, 15, "md", 16, 30, 5400], [8, 22, "md", 16, 30, 5400], [8, 29, "md", 16, 30, 5400], [9, 5, "md", 16, 30, 5400], [9, 12, "md", 16, 30, 5400], [9, 19, "md", 16, 30, 5400], [10, 3, "md", 16, 30, 5400], [10, 10, "md", 16, 30, 5400], [10, 24, "md", 16, 30, 5400], [11, 4, "md", 17, 30, 5400], [11, 6, "md", 17, 30, 5400], [11, 8, "md", 17, 30, 5400], [11, 28, "md", 17, 30, 5400], [12, 5, "md", 17, 30, 5400], [12, 12, "md", 17, 30, 5400], [12, 19, "md", 17, 30, 5400]], "2013": [[1, 9, "md", 17, 30, 5400], [1, 16, "md", 17, 30, 5400], [1, 30, "md", 17, 30, 5400], [2, 6, "md", 17, 30, 5400], [2, 13, "md", 17, 30, 5400], [2, 27, "md", 17, 30, 5400], [3, 10, "md", 12, 0, 300], [3, 12, "md", 12, 0, 300], [3, 14, "md", 12, 0, 300], [3, 27, "md", 14, 0, 5400], [4, 3, "md", 14, 0, 5400], [4, 10, "md", 14, 0, 5400], [4, 24, "md", 14, 0, 5400], [5, 1, "md", 14, 0, 5400], [5, 9, "md", 14, 0, 5400], [5, 22, "md", 14, 0, 5400], [6, 3, "md", 14, 0, 5400], [6, 12, "md", 14, 0, 5400], [6, 19, "md", 14, 0, 5400], [6, 26, "md", 14, 0, 5400], [7, 3, "md", 14, 0, 5400], [7, 10, "md", 14, 0, 5400], [7, 17, "md", 14, 0, 5400], [7, 28, "md", 14, 0, 5400], [7, 30, "md", 14, 0, 5400], [8, 1, "md", 14, 0, 5400], [8, 14, "md", 14, 0, 5400], [8, 28, "md", 14, 0, 5400], [9, 4, "md", 14, 0, 5400], [9, 11, "md", 14, 0, 5400], [9, 18, "md", 14, 0, 5400], [9, 25, "md", 14, 0, 5400], [10, 2, "md", 14, 0, 5400], [10, 9, "md", 14, 0, 5400], [10, 23, "md", 14, 0, 5400], [11, 3, "md", 15, 0, 5400], [11, 5, "md", 15, 0, 5400], [11, 7, "md", 15, 0, 5400], [11, 8, "md", 15, 0, 5400], [11, 13, "md", 15, 0, 5400], [11, 20, "md", 15, 0, 5400], [11, 27, "md", 15, 0, 5400], [12, 11, "md", 15, 0, 5400], [12, 18, "md", 15, 0, 5400]], "2014": [[1, 8, "md", 15, 0, 5400], [1, 15, "md", 15, 0, 5400], [1, 22, "md", 15, 0, 5400], [1, 29, "md", 15, 0, 5400], [2, 5, "md", 15, 0, 5400], [2, 12, "md", 15, 0, 5400], [2, 19, "md", 15, 0, 5400], [3, 2, "md", 15, 0, 5400], [3, 4, "md", 15, 0, 5400], [3, 6, "md", 15, 0, 5400], [3, 19, "md", 14, 0, 5400], [3, 26, "md", 14, 0, 5400], [4, 2, "md", 14, 0, 5400], [4, 9, "md", 14, 0, 5400], [4, 16, "md", 14, 0, 5400], [4, 30, "md", 14, 0, 5400], [5, 8, "md", 14, 0, 5400], [5, 14, "md", 14, 0, 5400], [5, 28, "md", 14, 0, 5400], [6, 4, "md", 14, 0, 5400], [6, 11, "md", 14, 0, 5400], [6, 25, "md", 14, 0, 5400], [7, 2, "md", 14, 0, 5400], [7, 9, "md", 14, 0, 5400], [7, 20, "md", 14, 0, 5400], [8, 6, "md", 14, 0, 5400], [8, 13, "md", 14, 0, 5400], [8, 27, "md", 14, 0, 5400], [9, 3, "md", 14, 0, 5400], [9, 10, "md", 14, 0, 5400], [9, 24, "md", 14, 0, 5400], [10, 1, "md", 14, 0, 5400], [10, 8, "md", 14, 0, 5400], [10, 22, "md", 14, 0, 5400], [10, 29, "md", 14, 0, 5400], [11, 9, "md", 15, 0, 5400], [11, 10, "md", 15, 0, 5400], [11, 11, "md", 15, 0, 5400], [11, 13, "md", 15, 0, 5400], [11, 26, "md", 15, 0, 5400], [12, 3, "md", 15, 0, 5400], [12, 10, "md", 15, 0, 5400]], "2015": [[1, 7, "md", 15, 0, 5400], [1, 14, "md", 15, 0, 5400], [1, 21, "md", 15, 0, 5400], [2, 4, "md", 15, 0, 5400], [2, 11, "md", 15, 0, 5400], [2, 25, "md", 15, 0, 5400], [3, 4, "md", 15, 0, 5400], [3, 11, "md", 14, 0, 5400], [3, 22, "md", 14, 0, 5400], [3, 24, "md", 14, 0, 5400], [3, 26, "md", 14, 0, 5400], [4, 8, "md", 14, 0, 5400], [4, 15, "md", 15, 0, 5400], [4, 29, "md", 15, 0, 5400], [5, 13, "md", 15, 0, 5400], [5, 27, "md", 15, 0, 5400], [6, 3, "md", 15, 0, 5400], [6, 10, "md", 15, 0, 5400], [6, 24, "md", 15, 0, 5400], [7, 1, "md", 15, 0, 5400], [7, 8, "md", 15, 0, 5400], [7, 19, "md", 15, 0, 5400], [7, 20, "md", 15, 0, 5400], [7, 23, "md", 15, 0, 5400], [7, 24, "md", 15, 0, 5400], [8, 5, "md", 15, 0, 5400], [8, 12, "md", 15, 0, 5400], [8, 26, "md", 15, 0, 5400], [9, 2, "md", 15, 0, 5400], [9, 9, "md", 15, 0, 5400], [9, 23, "md", 15, 0, 5400], [10, 7, "md", 15, 0, 5400], [10, 14, "md", 15, 0, 5400], [10, 21, "md", 15, 0, 5400], [11, 1, "md", 16, 0, 5400], [11, 5, "md", 16, 0, 5400], [11, 18, "md", 16, 0, 5400], [11, 25, "md", 16, 0, 5400], [12, 9, "md", 16, 0, 5400], [12, 16, "md", 16, 0, 5400]], "2016": [[1, 6, "md", 16, 0, 5400], [1, 13, "md", 16, 0, 5400], [1, 27, "md", 16, 0, 5400], [2, 3, "md", 16, 0, 5400], [2, 10, "md", 16, 0, 5400], [2, 24, "md", 16, 0, 5400], [3, 2, "md", 16, 0, 5400], [3, 9, "md", 16, 0, 5400], [3, 23, "md", 15, 0, 5400], [4, 3, "md", 12, 0, 300], [4, 7, "md", 12, 0, 300], [4, 20, "md", 12, 0, 300], [4, 27, "md", 12, 0, 300], [5, 4, "md", 12, 0, 300], [5, 11, "md", 12, 0, 300], [5, 25, "md", 12, 0, 300], [6, 1, "md", 12, 0, 300], [6, 8, "md", 12, 0, 300], [6, 22, "md", 12, 0, 300], [7, 6, "md", 12, 0, 300], [7, 17, "md", 12, 0, 300], [7, 21, "md", 12, 0, 300], [8, 3, "md", 12, 0, 300], [8, 17, "md", 12, 0, 300], [8, 31, "md", 12, 0, 300], [9, 14, "md", 12, 0, 300], [9, 28, "md", 12, 0, 300], [10, 5, "md", 12, 0, 300], [10, 12, "md", 12, 0, 300], [10, 26, "md", 12, 0, 300], [11, 2, "md", 12, 0, 300], [11, 13, "md", 12, 0, 300], [11, 17, "md", 12, 0, 300], [11, 30, "md", 20, 0, 5400], [12, 7, "md", 20, 0, 5400], [12, 14, "md", 20, 0, 5400]], "2017": [[1, 4, "md", 20, 0, 5400], [1, 11, "md", 20, 0, 5400], [1, 25, "md", 20, 0, 5400], [2, 1, "md", 20, 0, 5400], [2, 8, "md", 20, 0, 5400], [2, 22, "md", 20, 0, 5400], [3, 1, "md", 20, 0, 5400], [3, 8, "md", 20, 0, 5400], [3, 15, "md", 20, 0, 5400], [3, 26, "md", 20, 0, 5400], [3, 29, "md", 20, 0, 5400], [3, 30, "md", 20, 0, 5400], [4, 12, "md", 20, 0, 5400], [4, 26, "md", 20, 0, 5400], [5, 3, "md", 20, 0, 5400], [5, 10, "md", 20, 0, 5400], [5, 24, "md", 20, 0, 5400], [6, 7, "md", 20, 0, 5400], [6, 14, "md", 20, 0, 5400], [6, 28, "md", 20, 0, 5400], [7, 5, "md", 20, 0, 5400], [7, 16, "md", 20, 0, 5400], [7, 17, "md", 20, 0, 5400], [7, 20, "md", 20, 0, 5400], [8, 2, "md", 20, 0, 5400], [8, 9, "md", 20, 0, 5400], [8, 23, "md", 20, 0, 5400], [9, 6, "md", 20, 0, 5400], [9, 13, "md", 20, 0, 5400], [9, 27, "md", 20, 0, 5400], [10, 4, "md", 20, 0, 5400], [10, 18, "md", 20, 0, 5400], [10, 25, "md", 20, 0, 5400], [11, 1, "md", 20, 0, 5400], [11, 12, "md", 20, 0, 5400], [11, 13, "md", 20, 0, 5400], [11, 29, "md", 20, 0, 5400], [12, 6, "md", 20, 0, 5400], [12, 13, "md", 20, 0, 5400]], "2018": [[1, 10, "md", 20, 0, 5400], [1, 17, "md", 20, 0, 5400], [1, 31, "md", 20, 0, 5400], [2, 7, "md", 20, 0, 5400], [2, 14, "md", 20, 0, 5400], [2, 28, "md", 20, 0, 5400], [3, 7, "md", 20, 0, 5400], [3, 18, "md", 20, 0, 5400], [3, 19, "md", 20, 0, 5400], [3, 22, "md", 20, 0, 5400], [4, 4, "md", 20, 0, 5400], [4, 11, "md", 20, 0, 5400], [5, 9, "md", 20, 0, 5400], [5, 16, "md", 20, 0, 5400], [5, 30, "md", 20, 0, 5400], [6, 6, "md", 20, 0, 5400], [6, 13, "md", 20, 0, 5400], [6, 27, "md", 20, 0, 5400], [7, 3, "md", 20, 0, 5400], [7, 15, "md", 20, 0, 5400], [7, 16, "md", 20, 0, 5400], [7, 19, "md", 20, 0, 5400], [8, 1, "md", 20, 0, 5400], [8, 8, "md", 20, 0, 5400], [8, 22, "md", 20, 0, 5400], [9, 5, "md", 20, 0, 5400], [9, 12, "md", 20, 0, 5400], [9, 26, "md", 20, 0, 5400], [10, 3, "md", 20, 0, 5400], [10, 10, "md", 20, 0, 5400], [10, 24, "md", 20, 0, 5400], [11, 4, "md", 20, 0, 5400], [11, 5, "md", 20, 0, 5400], [11, 8, "md", 20, 0, 5400], [11, 21, "md", 20, 0, 5400], [11, 28, "md", 20, 0, 5400], [12, 5, "md", 20, 0, 5400], [12, 19, "md", 20, 0, 5400]], "2019": [[1, 9, "md", 20, 0, 5400], [1, 16, "md", 20, 0, 5400], [1, 23, "md", 20, 0, 5400], [2, 6, "md", 20, 0, 5400], [2, 13, "md", 20, 0, 5400], [2, 27, "md", 20, 0, 5400], [3, 6, "md", 20, 0, 5400], [3, 13, "md", 20, 0, 5400], [3, 24, "md", 12, 0, 300], [3, 25, "md", 12, 0, 300], [3, 28, "md", 12, 0, 300], [4, 10, "md", 13, 30, 3600], [4, 17, "md", 13, 30, 3600], [5, 1, "md", 13, 30, 3600], [5, 8, "md", 13, 30, 3600], [5, 29, "md", 13, 30, 3600], [6, 12, "md", 13, 30, 3600], [6, 26, "md", 13, 30, 3600], [7, 10, "md", 13, 30, 3600], [7, 21, "md", 13, 30, 3600], [7, 25, "md", 13, 30, 3600], [8, 7, "md", 13, 30, 3600], [8, 21, "md", 13, 30, 3600], [8, 28, "md", 13, 30, 3600], [9, 4, "md", 13, 30, 3600], [9, 18, "md", 13, 30, 3600], [10, 2, "md", 13, 30, 3600], [10, 16, "md", 21, 30, 3600], [10, 30, "md", 21, 30, 3600], [11, 17, "md", 21, 30, 3600], [11, 18, "md", 21, 30, 3600], [11, 21, "md", 21, 30, 3600], [12, 4, "md", 21, 30, 3600], [12, 11, "md", 21, 30, 3600], [12, 18, "md", 21, 30, 3600]], "2020": [[1, 8, "md", 21, 30, 3600], [1, 15, "md", 21, 30, 3600], [1, 22, "md", 21, 30, 3600], [2, 5, "md", 21, 30, 3600], [2, 12, "md", 21, 30, 3600], [2, 19, "md", 21, 30, 3600], [3, 4, "md", 21, 30, 3600], [3, 11, "md", 21, 30, 3600], [3, 18, "md", 21, 30, 3600], [4, 1, "md", 13, 30, 3600], [4, 8, "md", 13, 30, 3600], [4, 15, "md", 13, 30, 3600], [4, 29, "md", 13, 30, 3600], [5, 13, "md", 13, 30, 3600], [5, 20, "md", 13, 30, 3600], [5, 27, "md", 13, 30, 3600], [6, 10, "md", 13, 30, 3600], [6, 17, "md", 13, 30, 3600], [7, 1, "md", 13, 30, 3600], [7, 15, "md", 13, 30, 3600], [8, 12, "md", 13, 30, 3600], [8, 26, "md", 13, 30, 3600], [9, 9, "md", 13, 30, 3600], [9, 23, "md", 13, 30, 3600], [10, 7, "md", 13, 30, 3600], [10, 14, "md", 13, 30, 3600], [10, 21, "md", 21, 30, 3600], [11, 4, "md", 21, 30, 3600], [12, 2, "md", 21, 30, 3600], [12, 16, "md", 21, 30, 3600]], "2021": [[1, 6, "md", 21, 30, 3600], [1, 13, "md", 21, 30, 3600], [1, 20, "md", 21, 30, 3600], [1, 27, "md", 21, 30, 3600], [2, 3, "md", 21, 30, 3600], [2, 10, "md", 21, 30, 3600], [2, 17, "md", 21, 30, 3600], [2, 24, "md", 21, 30, 3600], [3, 3, "md", 21, 30, 3600], [3, 24, "md", 14, 0, 3600], [3, 31, "md", 14, 0, 3600], [4, 7, "md", 14, 0, 3600], [4, 14, "md", 14, 0, 3600], [4, 21, "md", 14, 0, 3600], [5, 5, "md", 14, 0, 3600], [5, 12, "md", 14, 0, 3600], [5, 19, "md", 14, 0, 3600], [5, 26, "md", 14, 0, 3600], [6, 2, "md", 14, 0, 3600], [6, 16, "md", 14, 0, 3600], [6, 23, "md", 14, 0, 3600], [6, 30, "md", 14, 0, 3600], [7, 14, "md", 14, 0, 3600], [7, 21, "md", 14, 0, 3600], [8, 11, "md", 14, 0, 3600], [8, 25, "md", 14, 0, 3600], [9, 1, "md", 14, 0, 3600], [9, 8, "md", 14, 0, 3600], [9, 22, "md", 14, 0, 3600], [10, 6, "md", 14, 0, 3600], [10, 20, "md", 14, 0, 3600], [10, 27, "md", 14, 0, 3600], [11, 17, "md", 15, 0, 3600], [12, 1, "md", 15, 0, 3600], [12, 8, "md", 15, 0, 3600], [12, 15, "md", 15, 0, 3600]], "2022": [[1, 12, "md", 15, 0, 3600], [1, 19, "md", 15, 0, 3600], [2, 2, "md", 15, 0, 3600], [2, 16, "md", 15, 0, 3600], [2, 23, "md", 15, 0, 3600], [3, 2, "md", 15, 0, 3600], [3, 9, "md", 15, 0, 3600], [3, 20, "md", 14, 0, 3600], [4, 6, "md", 14, 0, 3600], [4, 13, "md", 14, 0, 3600], [4, 20, "md", 14, 0, 3600], [4, 27, "md", 14, 0, 3600], [5, 4, "md", 14, 0, 3600], [5, 11, "md", 14, 0, 3600], [6, 1, "md", 14, 0, 3600], [6, 15, "md", 14, 0, 3600], [6, 22, "md", 14, 0, 3600], [6, 29, "md", 14, 0, 3600], [7, 6, "md", 14, 0, 3600], [7, 24, "md", 14, 0, 3600], [7, 26, "md", 14, 0, 3600], [8, 10, "md", 14, 0, 3600], [8, 24, "md", 14, 0, 3600], [9, 7, "md", 14, 0, 3600], [9, 21, "md", 14, 0, 3600], [9, 28, "md", 14, 0, 3600], [10, 5, "md", 14, 0, 3600], [10, 12, "md", 14, 0, 3600], [10, 26, "md", 14, 0, 3600], [11, 6, "md", 15, 0, 3600], [11, 8, "md", 15, 0, 3600], [11, 10, "md", 15, 0, 3600], [11, 23, "md", 15, 0, 3600], [12, 7, "md", 15, 0, 3600], [12, 14, "md", 15, 0, 3600]]} diff --git a/ietf/meeting/management/commands/import_iab_minutes.py b/ietf/meeting/management/commands/import_iab_minutes.py deleted file mode 100644 index d8b8194904..0000000000 --- a/ietf/meeting/management/commands/import_iab_minutes.py +++ /dev/null @@ -1,141 +0,0 @@ -# Copyright The IETF Trust 2023, All Rights Reserved - -import datetime -import json -import os -import shutil -import subprocess -import tempfile - -from pathlib import Path -from django.conf import settings -from django.core.management.base import BaseCommand - -from ietf.doc.models import Document, DocAlias, DocEvent -from ietf.meeting.models import ( - Meeting, - Schedule, - Session, - SchedulingEvent, - SchedTimeSessAssignment, - TimeSlot, -) - - -def nametimes_by_year(): - with Path(__file__).parent.joinpath("data_for_import_iab_minutes").open() as file: - return json.loads(file.read()) - - -class Command(BaseCommand): - help = "Performs a one-time import of older IAB minutes, creating Meetings to attach them to" - - def handle(self, *args, **options): - tmpdir = tempfile.mkdtemp() - process = subprocess.Popen( - ["git", "clone", "https://github.com/kesara/iab-scraper.git", tmpdir], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - ) - stdout, stderr = process.communicate() - if not Path(tmpdir).joinpath("iab_minutes", "2022-12-14.md").exists(): - print("Git clone of the iab-scraper directory did not go as expected") - print("stdout:", stdout) - print("stderr:", stderr) - print(f"Clean up {tmpdir} manually") - exit(-1) - - ntby = nametimes_by_year() - for year in ntby: - counter = 1 - for month, day, ext, start_hour, start_minute, duration in ntby[year]: - start = datetime.datetime( - int(year), - month, - day, - start_hour, - start_minute, - tzinfo=datetime.timezone.utc, - ) - meeting_name = f"interim-{year}-iab-{counter:02d}" - minutes_docname = f"minutes-interim-{year}-iab-{counter:02d}-{start:%Y%m%d}" # Note violating the convention of having the start time... - minutes_filename = f"{minutes_docname}-00.{ext}" - # Create Document - doc = Document.objects.create( - name=minutes_docname, - type_id="minutes", - title=f"Minutes {meeting_name} {start:%Y-%m-%d}", # Another violation of convention, - group_id=7, # The IAB group - rev="00", - uploaded_filename=minutes_filename, - ) - DocAlias.objects.create(name=doc.name).docs.add(doc) - e = DocEvent.objects.create( - type="comment", - doc=doc, - rev="00", - by_id=1, # The "(System)" person - desc="Minutes moved into datatracker from iab wordpress website", - ) - doc.save_with_history([e]) - # Create Meeting - Add a note about noon utc fake meeting times - meeting = Meeting.objects.create( - number=meeting_name, - type_id="interim", - date=start.date(), - days=1, - time_zone=start.tzname(), - ) - schedule = Schedule.objects.create( - meeting=meeting, - owner_id=1, # The "(System)" person - visible=True, - public=True, - ) - meeting.schedule = schedule - if start.timetz() == datetime.time( - 12, 0, 0, tzinfo=datetime.timezone.utc - ): - meeting.agenda_note = "The actual time of this meeting was not recorded and was likely not at noon UTC" - meeting.save() - # Create Session - session = Session.objects.create( - meeting=meeting, - group_id=7, # The IAB group - type_id="regular", - purpose_id="regular", - ) - # Schedule the Session - SchedulingEvent.objects.create( - session=session, - status_id="sched", - by_id=1, # (System) - ) - timeslot = TimeSlot.objects.create( - meeting=meeting, - type_id="regular", - time=start, - duration=datetime.timedelta(seconds=duration), - ) - SchedTimeSessAssignment.objects.create( - timeslot=timeslot, session=session, schedule=schedule - ) - # Add Document to Session - session.sessionpresentation_set.create(document=doc, rev=doc.rev) - - # Put file in place - source = Path(tmpdir).joinpath( - "iab_minutes", f"{year}-{month:02d}-{day:02d}.{ext}" - ) - dest = Path(settings.AGENDA_PATH).joinpath( - meeting_name, "minutes", minutes_filename - ) - if dest.exists(): - print(f"WARNING: {dest} already exists - not overwriting it.") - else: - os.makedirs(dest.parent, exist_ok=True) - shutil.copy(source, dest) - - counter += 1 - - shutil.rmtree(tmpdir) diff --git a/ietf/meeting/management/commands/regenerate_data_for_import_iab_minutes.py b/ietf/meeting/management/commands/regenerate_data_for_import_iab_minutes.py deleted file mode 100644 index 1420094c68..0000000000 --- a/ietf/meeting/management/commands/regenerate_data_for_import_iab_minutes.py +++ /dev/null @@ -1,872 +0,0 @@ -# Copyright The IETF Trust 2023, All Rights Reserved - -import datetime -import json - -from collections import defaultdict -from pathlib import Path -from zoneinfo import ZoneInfo - -from django.core.management.base import BaseCommand - - -class Command(BaseCommand): - help = "Regenerates the json used by import_iab_minutes" - - def handle(self, *args, **options): - ntby = build_nametimes_by_year() - with Path(__file__).parent.joinpath("data_for_import_iab_minutes").open( - "w" - ) as file: - file.write(json.dumps(ntby, sort_keys=True)) - - -def make_time_tuple(date, start_hour, start_minute, end_hour, end_minute, tz): - start = datetime.datetime( - date.year, date.month, date.day, start_hour, start_minute, tzinfo=ZoneInfo(tz) - ).astimezone(datetime.timezone.utc) - end = datetime.datetime( - date.year, date.month, date.day, end_hour, end_minute, tzinfo=ZoneInfo(tz) - ).astimezone(datetime.timezone.utc) - return (start.hour, start.minute, (end - start).seconds) - - -def get_time(name): - """ - From Cindy: - 2011-04-06 (and likely earlier) - 2013-02-27: 0930-1100 PST8PDT - 2013-03-27 - 2015-04-08: 0700-0830 PST8PDT - 2015-04-15 - 2016-03-23: 0800-0930 PST8PDT - 2016-04-20 - 2016-11-02: 0700-0830 PST8PDT - 2016-11-20 - 2019-03-13: 2000-2130 UTC - 2019-04-10 - 2019-10-02: 1330-1430 UTC - 2019-10-16 - 2020-03-18: 2130-2230 UTC - 2020-04-01 - 2020-10-14: 1330-1430 UTC - 2020-10-21 - 2021-03-03: 2130-2230 UTC - 2021-03-24 - Present: 0700-0800 PST8PDT - """ - date_string = name.split(".")[0] - date = datetime.date(*map(int, date_string.split("-"))) - times = None - if datetime.date(2011, 4, 6) <= date <= datetime.date(2013, 2, 27): - times = make_time_tuple(date, 9, 30, 11, 0, "PST8PDT") - elif datetime.date(2013, 3, 27) <= date <= datetime.date(2015, 4, 8): - times = make_time_tuple(date, 7, 0, 8, 30, "PST8PDT") - elif datetime.date(2015, 4, 15) <= date <= datetime.date(2016, 3, 23): - times = make_time_tuple(date, 8, 0, 9, 30, "PST8PDT") - elif datetime.date(2016, 11, 20) <= date <= datetime.date(2019, 3, 13): - times = make_time_tuple(date, 20, 0, 21, 30, "UTC") - elif datetime.date(2019, 4, 10) <= date <= datetime.date(2019, 10, 2): - times = make_time_tuple(date, 13, 30, 14, 30, "UTC") - elif datetime.date(2019, 10, 16) <= date <= datetime.date(2020, 3, 18): - times = make_time_tuple(date, 21, 30, 22, 30, "UTC") - elif datetime.date(2020, 4, 1) <= date <= datetime.date(2020, 10, 14): - times = make_time_tuple(date, 13, 30, 14, 30, "UTC") - elif datetime.date(2020, 10, 21) <= date <= datetime.date(2021, 3, 3): - times = make_time_tuple(date, 21, 30, 22, 30, "UTC") - elif datetime.date(2021, 3, 24) <= date: - times = make_time_tuple(date, 7, 0, 8, 0, "PST8PDT") - else: - times = make_time_tuple(date, 12, 0, 12, 5, "UTC") - return times - - -def build_nametimes_by_year(): - scraped_basenames = [ - "2022-12-14.md", - "2022-12-07.md", - "2022-11-23.md", - "2022-11-10.md", - "2022-11-08.md", - "2022-11-06.md", - "2022-10-26.md", - "2022-10-12.md", - "2022-10-05.md", - "2022-09-28.md", - "2022-09-21.md", - "2022-09-07.md", - "2022-08-24.md", - "2022-08-10.md", - "2022-07-26.md", - "2022-07-24.md", - "2022-07-06.md", - "2022-06-29.md", - "2022-06-22.md", - "2022-06-15.md", - "2022-06-01.md", - "2022-05-11.md", - "2022-05-04.md", - "2022-04-27.md", - "2022-04-20.md", - "2022-04-13.md", - "2022-04-06.md", - "2022-03-20.md", - "2022-03-09.md", - "2022-03-02.md", - "2022-02-23.md", - "2022-02-16.md", - "2022-02-02.md", - "2022-01-19.md", - "2022-01-12.md", - "2021-12-15.md", - "2021-12-08.md", - "2021-12-01.md", - "2021-11-17.md", - "2021-10-27.md", - "2021-10-20.md", - "2021-10-06.md", - "2021-09-22.md", - "2021-09-08.md", - "2021-09-01.md", - "2021-08-25.md", - "2021-08-11.md", - "2021-07-21.md", - "2021-07-14.md", - "2021-06-30.md", - "2021-06-23.md", - "2021-06-16.md", - "2021-06-02.md", - "2021-05-26.md", - "2021-05-19.md", - "2021-05-12.md", - "2021-05-05.md", - "2021-04-21.md", - "2021-04-14.md", - "2021-04-07.md", - "2021-03-31.md", - "2021-03-24.md", - "2021-03-03.md", - "2021-02-24.md", - "2021-02-17.md", - "2021-02-10.md", - "2021-02-03.md", - "2021-01-27.md", - "2021-01-20.md", - "2021-01-13.md", - "2021-01-06.md", - "2020-12-16.md", - "2020-12-02.md", - "2020-11-04.md", - "2020-10-21.md", - "2020-10-14.md", - "2020-10-07.md", - "2020-09-23.md", - "2020-09-09.md", - "2020-08-26.md", - "2020-08-12.md", - "2020-07-15.md", - "2020-07-01.md", - "2020-06-17.md", - "2020-06-10.md", - "2020-05-27.md", - "2020-05-20.md", - "2020-05-13.md", - "2020-04-29.md", - "2020-04-15.md", - "2020-04-08.md", - "2020-04-01.md", - "2020-03-18.md", - "2020-03-11.md", - "2020-03-04.md", - "2020-02-19.md", - "2020-02-12.md", - "2020-02-05.md", - "2020-01-22.md", - "2020-01-15.md", - "2020-01-08.md", - "2019-12-18.md", - "2019-12-11.md", - "2019-12-04.md", - "2019-11-21.md", - "2019-11-18.md", - "2019-11-17.md", - "2019-10-30.md", - "2019-10-16.md", - "2019-10-02.md", - "2019-09-18.md", - "2019-09-04.md", - "2019-08-28.md", - "2019-08-21.md", - "2019-08-07.md", - "2019-07-25.md", - "2019-07-21.md", - "2019-07-10.md", - "2019-06-26.md", - "2019-06-12.md", - "2019-05-29.md", - "2019-05-08.md", - "2019-05-01.md", - "2019-04-17.md", - "2019-04-10.md", - "2019-03-28.md", - "2019-03-25.md", - "2019-03-24.md", - "2019-03-13.md", - "2019-03-06.md", - "2019-02-27.md", - "2019-02-13.md", - "2019-02-06.md", - "2019-01-23.md", - "2019-01-16.md", - "2019-01-09.md", - "2018-12-19.md", - "2018-12-05.md", - "2018-11-28.md", - "2018-11-21.md", - "2018-11-08.md", - "2018-11-05.md", - "2018-11-04.md", - "2018-10-24.md", - "2018-10-10.md", - "2018-10-03.md", - "2018-09-26.md", - "2018-09-12.md", - "2018-09-05.md", - "2018-08-22.md", - "2018-08-08.md", - "2018-08-01.md", - "2018-07-19.md", - "2018-07-16.md", - "2018-07-15.md", - "2018-07-03.md", - "2018-06-27.md", - "2018-06-13.md", - "2018-06-06.md", - "2018-05-30.md", - "2018-05-16.md", - "2018-05-09.md", - "2018-04-11.md", - "2018-04-04.md", - "2018-03-22.md", - "2018-03-19.md", - "2018-03-18.md", - "2018-03-07.md", - "2018-02-28.md", - "2018-02-14.md", - "2018-02-07.md", - "2018-01-31.md", - "2018-01-17.md", - "2018-01-10.md", - "2017-12-13.md", - "2017-12-06.md", - "2017-11-29.md", - "2017-11-13.md", - "2017-11-12.md", - "2017-11-01.md", - "2017-10-25.md", - "2017-10-18.md", - "2017-10-04.md", - "2017-09-27.md", - "2017-09-13.md", - "2017-09-06.md", - "2017-08-23.md", - "2017-08-09.md", - "2017-08-02.md", - "2017-07-20.md", - "2017-07-17.md", - "2017-07-16.md", - "2017-07-05.md", - "2017-06-28.md", - "2017-06-14.md", - "2017-06-07.md", - "2017-05-24.md", - "2017-05-10.md", - "2017-05-03.md", - "2017-04-26.md", - "2017-04-12.md", - "2017-03-30.md", - "2017-03-29.md", - "2017-03-26.md", - "2017-03-15.md", - "2017-03-08.md", - "2017-03-01.md", - "2017-02-22.md", - "2017-02-08.md", - "2017-02-01.md", - "2017-01-25.md", - "2017-01-11.md", - "2017-01-04.md", - "2016-12-14.md", - "2016-12-07.md", - "2016-11-30.md", - "2016-11-17.md", - "2016-11-13.md", - "2016-11-02.md", - "2016-10-26.md", - "2016-10-12.md", - "2016-10-05.md", - "2016-09-28.md", - "2016-09-14.md", - "2016-08-31.md", - "2016-08-17.md", - "2016-08-03.md", - "2016-07-21.md", - "2016-07-17.md", - "2016-07-06.md", - "2016-06-22.md", - "2016-06-08.md", - "2016-06-01.md", - "2016-05-25.md", - "2016-05-11.md", - "2016-05-04.md", - "2016-04-27.md", - "2016-04-20.md", - "2016-04-07.md", - "2016-04-03.md", - "2016-03-23.md", - "2016-03-09.md", - "2016-03-02.md", - "2016-02-24.md", - "2016-02-10.md", - "2016-02-03.md", - "2016-01-27.md", - "2016-01-13.md", - "2016-01-06.md", - "2015-12-16.md", - "2015-12-09.md", - "2015-11-25.md", - "2015-11-18.md", - "2015-11-05.md", - "2015-11-01.md", - "2015-10-21.md", - "2015-10-14.md", - "2015-10-07.md", - "2015-09-23.md", - "2015-09-09.md", - "2015-09-02.md", - "2015-08-26.md", - "2015-08-12.md", - "2015-08-05.md", - "2015-07-24.md", - "2015-07-23.md", - "2015-07-20.md", - "2015-07-19.md", - "2015-07-08.md", - "2015-07-01.md", - "2015-06-24.md", - "2015-06-10.md", - "2015-06-03.md", - "2015-05-27.md", - "2015-05-13.md", - "2015-04-29.md", - "2015-04-15.md", - "2015-04-08.md", - "2015-03-26.md", - "2015-03-24.md", - "2015-03-22.md", - "2015-03-11.md", - "2015-03-04.md", - "2015-02-25.md", - "2015-02-11.md", - "2015-02-04.md", - "2015-01-21.md", - "2015-01-14.md", - "2015-01-07.md", - "2014-12-10.md", - "2014-12-03.md", - "2014-11-26.md", - "2014-11-13.md", - "2014-11-11.md", - "2014-11-10.md", - "2014-11-09.md", - "2014-10-29.md", - "2014-10-22.md", - "2014-10-08.md", - "2014-10-01.md", - "2014-09-24.md", - "2014-09-10.md", - "2014-09-03.md", - "2014-08-27.md", - "2014-08-13.md", - "2014-08-06.md", - "2014-07-20.md", - "2014-07-09.md", - "2014-07-02.md", - "2014-06-25.md", - "2014-06-11.md", - "2014-06-04.md", - "2014-05-28.md", - "2014-05-14.md", - "2014-05-08.md", - "2014-04-30.md", - "2014-04-16.md", - "2014-04-09.md", - "2014-04-02.md", - "2014-03-26.md", - "2014-03-19.md", - "2014-03-06.md", - "2014-03-04.md", - "2014-03-02.md", - "2014-02-19.md", - "2014-02-12.md", - "2014-02-05.md", - "2014-01-29.md", - "2014-01-22.md", - "2014-01-15.md", - "2014-01-08.md", - "2013-12-18.md", - "2013-12-11.md", - "2013-11-27.md", - "2013-11-20.md", - "2013-11-13.md", - "2013-11-08.md", - "2013-11-07.md", - "2013-11-05.md", - "2013-11-03.md", - "2013-10-23.md", - "2013-10-09.md", - "2013-10-02.md", - "2013-09-25.md", - "2013-09-18.md", - "2013-09-11.md", - "2013-09-04.md", - "2013-08-28.md", - "2013-08-14.md", - "2013-08-01.md", - "2013-07-30.md", - "2013-07-28.md", - "2013-07-17.md", - "2013-07-10.md", - "2013-07-03.md", - "2013-06-26.md", - "2013-06-19.md", - "2013-06-12.md", - "2013-06-03.md", - "2013-05-22.md", - "2013-05-09.md", - "2013-05-01.md", - "2013-04-24.md", - "2013-04-10.md", - "2013-04-03.md", - "2013-03-27.md", - "2013-03-14.md", - "2013-03-12.md", - "2013-03-10.md", - "2013-02-27.md", - "2013-02-13.md", - "2013-02-06.md", - "2013-01-30.md", - "2013-01-16.md", - "2013-01-09.md", - "2012-12-19.md", - "2012-12-12.md", - "2012-12-05.md", - "2012-11-28.md", - "2012-11-08.md", - "2012-11-06.md", - "2012-11-04.md", - "2012-10-24.md", - "2012-10-10.md", - "2012-10-03.md", - "2012-09-19.md", - "2012-09-12.md", - "2012-09-05.md", - "2012-08-29.md", - "2012-08-22.md", - "2012-08-15.md", - "2012-08-02.md", - "2012-07-31.md", - "2012-07-29.md", - "2012-07-25.md", - "2012-07-18.md", - "2012-07-11.md", - "2012-06-27.md", - "2012-06-13.md", - "2012-06-06.md", - "2012-05-30.md", - "2012-05-23.md", - "2012-05-16.md", - "2012-05-10.md", - "2012-05-02.md", - "2012-04-25.md", - "2012-04-18.md", - "2012-04-11.md", - "2012-03-29.md", - "2012-03-27.md", - "2012-03-25.md", - "2012-03-14.md", - "2012-03-07.md", - "2012-02-29.md", - "2012-02-22.md", - "2012-02-08.md", - "2012-01-25.md", - "2012-01-18.md", - "2012-01-11.md", - "2012-01-04.md", - "2011-12-21.md", - "2011-12-14.md", - "2011-12-07.md", - "2011-11-30.md", - "2011-11-17.md", - "2011-11-15.md", - "2011-11-13.md", - "2011-11-02.md", - "2011-10-26.md", - "2011-10-12.md", - "2011-10-05.md", - "2011-09-28.md", - "2011-09-21.md", - "2011-09-14.md", - "2011-09-07.md", - "2011-08-24.md", - "2011-08-10.md", - "2011-07-28.md", - "2011-07-26.md", - "2011-07-24.md", - "2011-07-13.md", - "2011-07-06.md", - "2011-06-29.md", - "2011-06-22.md", - "2011-06-15.md", - "2011-06-08.md", - "2011-06-01.md", - "2011-05-25.md", - "2011-05-12.md", - "2011-05-04.md", - "2011-04-27.md", - "2011-04-13.md", - "2011-04-06.md", - "2011-03-29.md", - "2011-03-09.md", - "2011-03-02.md", - "2011-02-23.md", - "2011-02-09.md", - "2011-02-02.md", - "2011-02-01.md", - "2011-01-26.md", - "2011-01-19.md", - "2011-01-12.md", - "2011-01-05.md", - "2010-12-22.md", - "2010-12-01.md", - "2010-11-24.md", - "2010-10-27.md", - "2010-10-13.md", - "2010-09-29.md", - "2010-09-22.md", - "2010-09-16.md", - "2010-09-08.md", - "2010-09-01.md", - "2010-08-25.md", - "2010-08-11.md", - "2010-07-14.md", - "2010-07-07.md", - "2010-06-23.md", - "2010-06-02.md", - "2010-05-12.md", - "2010-04-28.md", - "2010-04-14.md", - "2010-04-07.md", - "2010-03-10.md", - "2010-03-03.md", - "2010-02-24.md", - "2010-02-10.md", - "2010-02-03.md", - "2010-02-01.md", - "2010-01-27.md", - "2010-01-20.md", - "2010-01-13.md", - "2010-01-07.md", - "2010-01-06.md", - "2009-12-09.md", - "2009-12-02.md", - "2009-11-25.md", - "2009-11-04.md", - "2009-10-28.md", - "2009-10-21.md", - "2009-10-14.md", - "2009-10-07.md", - "2009-09-25.md", - "2009-09-23.md", - "2009-09-09.md", - "2009-09-02.md", - "2009-08-12.md", - "2009-07-01.md", - "2009-06-24.md", - "2009-06-10.md", - "2009-06-03.md", - "2009-05-27.md", - "2009-05-13.md", - "2009-04-08.md", - "2009-04-01.md", - "2009-03-18.md", - "2009-03-04.md", - "2009-02-25.md", - "2009-02-18.md", - "2009-02-05.md", - "2009-02-04.md", - "2009-01-28.md", - "2009-01-21.md", - "2009-01-14.md", - "2009-01-07.md", - "2008-12-17.md", - "2008-12-03.md", - "2008-11-05.md", - "2008-10-15.md", - "2008-10-08.md", - "2008-10-03.md", - "2008-10-01.md", - "2008-09-24.md", - "2008-09-17.md", - "2008-09-03.md", - "2008-08-27.md", - "2008-08-20.md", - "2008-08-13.md", - "2008-08-06.md", - "2008-07-23.md", - "2008-07-16.md", - "2008-07-02.md", - "2008-06-25.md", - "2008-06-18.md", - "2008-06-12.md", - "2008-06-04.md", - "2008-05-28.md", - "2008-05-21.md", - "2008-05-07.md", - "2008-04-16.md", - "2008-04-02.md", - "2008-03-26.md", - "2008-02-20.md", - "2008-02-13.md", - "2008-02-06.md", - "2008-01-30.md", - "2008-01-16.md", - "2008-01-09.md", - "2007-12-19.md", - "2007-11-21.md", - "2007-11-07.md", - "2007-10-17.md", - "2007-10-03.md", - "2007-09-19.md", - "2007-09-05.md", - "2007-08-15.md", - "2007-07-26.md", - "2007-07-24.md", - "2007-07-11.md", - "2007-06-20.md", - "2007-06-06.md", - "2007-05-16.md", - "2007-05-02.md", - "2007-04-18.md", - "2007-04-04.md", - "2007-03-18.md", - "2007-03-07.md", - "2007-02-21.md", - "2007-02-07.md", - "2007-01-24.md", - "2007-01-10.md", - "2006-12-20.md", - "2006-12-06.md", - "2006-11-22.md", - "2006-11-05.md", - "2006-11-01.md", - "2006-10-25.md", - "2006-10-04.md", - "2006-09-20.md", - "2006-09-06.md", - "2006-08-30.md", - "2006-08-02.md", - "2006-07-09.md", - "2006-07-05.md", - "2006-06-21.md", - "2006-06-07.md", - "2006-05-17.md", - "2006-05-03.md", - "2006-04-17.md", - "2006-04-05.md", - "2006-03-19.md", - "2006-03-15.md", - "2006-02-15.md", - "2006-02-01.md", - "2006-01-18.md", - "2006-01-04.md", - "2005-12-21.md", - "2005-12-07.md", - "2005-11-10.md", - "2005-11-02.md", - "2005-10-12.md", - "2005-09-14.md", - "2005-08-02.md", - "2005-07-13.md", - "2005-06-10.md", - "2005-05-11.md", - "2005-04-13.md", - "2005-03-07.md", - "2005-03-01.md", - "2005-02-08.md", - "2005-01-11.md", - "2004-12-14.md", - "2004-11-07.md", - "2004-10-12.md", - "2004-09-14.md", - "2004-08-03.md", - "2004-07-13.md", - "2004-06-08.md", - "2004-05-11.md", - "2004-04-13.md", - "2004-03-02.md", - "2004-02-10.md", - "2004-01-13.md", - "2003-12-09.md", - "2003-11-09.md", - "2003-11-04.md", - "2003-10-14.md", - "2003-09-09.md", - "2003-08-12.md", - "2003-07-17.md", - "2003-07-08.md", - "2003-06-10.md", - "2003-05-13.md", - "2003-04-08.md", - "2003-03-18.md", - "2003-03-11.md", - "2003-02-11.md", - "2003-01-14.md", - "2002-12-10.md", - "2002-11-17.md", - "2002-10-08.md", - "2002-09-10.md", - "2002-08-13.md", - "2002-07-16.md", - "2002-06-11.md", - "2002-05-14.md", - "2002-04-09.md", - "2002-03-19.md", - "2002-03-12.md", - "2002-02-15.md", - "2002-02-12.md", - "2002-01-08.md", - "2001-12-11.md", - "2001-11-20.md", - "2001-10-09.md", - "2001-09-24.md", - "2001-09-11.pdf", - "2001-09-11.md", - "2001-08-07.md", - "2001-07-10.md", - "2001-06-12.md", - "2001-05-08.md", - "2001-04-10.md", - "2001-03-20.md", - "2001-02-13.md", - "2001-01-09.md", - "2000-12-12.md", - "2000-11-13.md", - "2000-10-16.md", - "2000-09-11.md", - "2000-08-14.md", - "2000-08-01.md", - "2000-07-10.md", - "2000-06-12.md", - "2000-05-08.md", - "2000-04-10.md", - "2000-03-26.md", - "2000-02-14.md", - "2000-01-10.md", - "1999-12-14.md", - "1999-11-09.md", - "1999-10-19.md", - "1999-09-14.md", - "1999-08-10.md", - "1999-07-11.md", - "1999-06-15.md", - "1999-05-11.md", - "1999-04-13.md", - "1999-03-16.md", - "1999-02-09.md", - "1999-01-12.md", - "1998-12-08.md", - "1998-11-10.md", - "1998-10-13.md", - "1998-09-15.md", - "1998-08-23.md", - "1998-08-04.md", - "1998-07-14.md", - "1998-06-09.md", - "1998-05-12.md", - "1998-04-02.md", - "1998-03-31.pdf", - "1998-03-31.md", - "1998-03-10.md", - "1998-02-10.md", - "1998-01-20.md", - "1997-12-10.md", - "1997-12-09.md", - "1997-11-11.md", - "1997-10-14.md", - "1997-09-09.md", - "1997-08-13.md", - "1997-08-12.md", - "1997-07-15.md", - "1997-06-17.md", - "1997-04-09.md", - "1997-04-08.md", - "1997-03-11.md", - "1997-01-14.md", - "1996-12-10.md", - "1996-11-12.md", - "1996-10-08.md", - "1996-09-12.md", - "1996-08-13.md", - "1996-07-09.md", - "1996-06-26.md", - "1996-06-11.md", - "1996-05-14.md", - "1996-04-09.md", - "1996-03-06.md", - "1996-03-05.md", - "1996-02-13.md", - "1996-01-09.md", - "1995-12-03.md", - "1995-11-14.md", - "1995-10-10.md", - "1995-09-12.md", - "1995-08-08.md", - "1995-07-19.md", - "1995-06-29.md", - "1995-06-07.md", - "1995-05-10.md", - "1995-04-19.md", - "1995-04-05.md", - "1995-04-02.md", - "1995-03-22.md", - "1995-02-28.md", - "1995-02-07.md", - "1995-01-10.md", - "1994-12-09.md", - "1994-12-07.md", - "1994-11-09.md", - "1994-10-13.md", - "1994-09-23.md", - "1994-07-27.md", - "1994-07-05.md", - "1994-05-24.md", - "1994-04-29.md", - "1994-03-30.md", - "1993-07-13.md", - "1993-03-30.md", - "1992-10-29.md", - "1992-07-17.md", - "1992-06-18.md", - "1992-01-07.md", - "1991-11-19.md", - "1991-10-10.md", - "1991-06-14.md", - "1991-01-08.md", - "1990-10-11.md", - "1990-06-28.md", - "1990-04-26.md", - "1990-01-03.md", - "1988-07-12.md", - "1988-03-21.md", - ] - - nametimes_by_year = defaultdict(list) - for name in sorted(scraped_basenames): - date, ext = name.split(".") - year, month, day = map(int, date.split("-")) - start_hour, start_minute, duration = get_time(name) - nametimes_by_year[year].append( - (month, day, ext, start_hour, start_minute, duration) - ) - return nametimes_by_year From a3d9cf3723651fef04dac23a0714b4edea8e9ad2 Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Wed, 14 Jun 2023 20:34:27 +0300 Subject: [PATCH 05/10] fix: Make attendee table sortable (#5824) Fixes #5606 --- ietf/templates/meeting/proceedings_attendees.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ietf/templates/meeting/proceedings_attendees.html b/ietf/templates/meeting/proceedings_attendees.html index 5d2742863f..a3a10e61d4 100644 --- a/ietf/templates/meeting/proceedings_attendees.html +++ b/ietf/templates/meeting/proceedings_attendees.html @@ -1,6 +1,9 @@ {% extends "base.html" %} {# Copyright The IETF Trust 2015, All Rights Reserved #} -{% load origin markup_tags %} +{% load origin markup_tags static %} +{% block pagehead %} + +{% endblock %} {% block title %}IETF {{ meeting.number }} proceedings{% endblock %} {% block content %} {% origin %} @@ -12,4 +15,7 @@

Attendee list of IETF {{ meeting.number }} meeting

{{ template|safe }} +{% endblock %} +{% block js %} + {% endblock %} \ No newline at end of file From 55f481ff741f38b375d4b497fc0ba6246150fa3f Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Wed, 14 Jun 2023 20:34:46 +0300 Subject: [PATCH 06/10] fix: Also point to IETF web page for liaison relationships (#5823) Fixes #5780 --- ietf/templates/liaisons/liaison_desc.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ietf/templates/liaisons/liaison_desc.html b/ietf/templates/liaisons/liaison_desc.html index 1286198e22..8fb9fbf045 100644 --- a/ietf/templates/liaisons/liaison_desc.html +++ b/ietf/templates/liaisons/liaison_desc.html @@ -1,4 +1,6 @@
Additional information about IETF liaison relationships is available on the + IETF webpage + and the Internet Architecture Board liaison webpage.
\ No newline at end of file From fd09e60369710f9d35351cae398f855c9a2b846c Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Wed, 14 Jun 2023 20:35:07 +0300 Subject: [PATCH 07/10] fix: RFC9389 obsoleted RFC8989 (#5822) Fixes #5820 --- ietf/templates/registration/edit_profile.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ietf/templates/registration/edit_profile.html b/ietf/templates/registration/edit_profile.html index e16f32daa4..07783311df 100644 --- a/ietf/templates/registration/edit_profile.html +++ b/ietf/templates/registration/edit_profile.html @@ -76,7 +76,7 @@

Your account

RFC 8713 for eligibility requirements. For the 2021 and 2022 NomComs, see also - RFC 8989. + RFC 9389.

{% endif %} From 01e2d8b2bfce689e4f95d33f1e1c0ad9f622676b Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Thu, 15 Jun 2023 16:56:27 +0300 Subject: [PATCH 08/10] fix: Don't resort a table if sort query argument is present (#5825) * fix: Don't resort a table if sort query argument is present Fixes #5686 * Address code review comments --- ietf/static/js/list.js | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/ietf/static/js/list.js b/ietf/static/js/list.js index 6a854afc05..48e9fd4866 100644 --- a/ietf/static/js/list.js +++ b/ietf/static/js/list.js @@ -273,14 +273,20 @@ $(document) $(table)[0] .dispatchEvent(new Event("tablesorter:done")); - // if there is a data-default-sort attribute on a column, pre-sort the table on that - const presort_col = $(header_row).children("[data-default-sort]:first"); - if (presort_col) { - const order = presort_col.attr("data-default-sort"); - if (order == "asc" || order == "desc") { - $.each(list_instance, (i, e) => { - e.sort(presort_col.attr("data-sort"), { order: order, sortFunction: text_sort }); - }); + // check if there is a sort query argument, and leave the table alone if so + const params = new Proxy(new URLSearchParams(window.location.search), { + get: (searchParams, prop) => searchParams.get(prop), + }); + if (!params.sort) { + // else, if there is a data-default-sort attribute on a column, pre-sort the table on that + const presort_col = $(header_row).children("[data-default-sort]:first"); + if (presort_col) { + const order = presort_col.attr("data-default-sort"); + if (order === "asc" || order === "desc") { + $.each(list_instance, (i, e) => { + e.sort(presort_col.attr("data-sort"), { order: order, sortFunction: text_sort }); + }); + } } } }); From 6f361f95741979e73fd1d665fb80a891332c7286 Mon Sep 17 00:00:00 2001 From: Jennifer Richards Date: Thu, 15 Jun 2023 11:04:43 -0300 Subject: [PATCH 09/10] chore: Keep default CSRF_TRUSTED_ORIGINS when in debug mode (#5827) --- ietf/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ietf/settings.py b/ietf/settings.py index 9f6284003f..15ded9662e 100644 --- a/ietf/settings.py +++ b/ietf/settings.py @@ -1295,6 +1295,6 @@ def skip_unreadable_post(record): # Cannot have this set to True if we're using http: from the dev-server: CSRF_COOKIE_SECURE = False CSRF_COOKIE_SAMESITE = 'Lax' - CSRF_TRUSTED_ORIGINS = ['http://localhost:8000'] + CSRF_TRUSTED_ORIGINS += ['http://localhost:8000'] SESSION_COOKIE_SECURE = False SESSION_COOKIE_SAMESITE = 'Lax' From f04d35683440f15c4e32f865d9a17258880c95ef Mon Sep 17 00:00:00 2001 From: Jennifer Richards Date: Thu, 15 Jun 2023 11:27:31 -0300 Subject: [PATCH 10/10] fix: Do not cache official_timeslotassignment when None (#5830) --- ietf/meeting/models.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ietf/meeting/models.py b/ietf/meeting/models.py index 6f8963b641..8fadf124d9 100644 --- a/ietf/meeting/models.py +++ b/ietf/meeting/models.py @@ -1254,7 +1254,8 @@ def reverse_constraints(self): return Constraint.objects.filter(target=self.group, meeting=self.meeting).order_by('name__name') def official_timeslotassignment(self): - if not hasattr(self, "_cache_official_timeslotassignment"): + # cache only non-None values + if getattr(self, "_cache_official_timeslotassignment", None) is None: self._cache_official_timeslotassignment = self.timeslotassignments.filter(schedule__in=[self.meeting.schedule, self.meeting.schedule.base if self.meeting.schedule else None]).first() return self._cache_official_timeslotassignment