{{self.title}}
12 || {{statement.date_published|date:"Y-m-d"}} | 21 |{{statement.title}} | 22 |
├── .nvmrc ├── ietf ├── __init__.py ├── blog │ ├── __init__.py │ ├── migrations │ │ ├── __init__.py │ │ ├── 0008_alter_blogpageauthor_author.py │ │ ├── 0002_auto_20210325_0442.py │ │ ├── 0003_auto_20211101_0113.py │ │ └── 0004_alter_blogpage_body.py │ ├── js │ │ └── index.js │ ├── factories.py │ └── templates │ │ ├── includes │ │ ├── blog_authors.html │ │ └── blog_sidebar.html │ │ └── blog │ │ ├── blog_index_by_author.html │ │ └── blog_index_page.html ├── events │ ├── __init__.py │ ├── migrations │ │ ├── __init__.py │ │ ├── 0003_auto_20210704_2343.py │ │ ├── 0002_auto_20210325_0442.py │ │ └── 0004_auto_20211101_0113.py │ ├── templates │ │ ├── events │ │ │ └── includes │ │ │ │ └── link_block.html │ │ └── includes │ │ │ └── key_detail_section.html │ ├── styles │ │ ├── event_listing_page.scss │ │ └── event_page.scss │ ├── factories.py │ └── tests.py ├── forms │ ├── __init__.py │ ├── migrations │ │ ├── __init__.py │ │ ├── 0004_convert_unicode_to_text.py │ │ ├── 0002_formfield_clean_name.py │ │ └── 0003_auto_20220722_0302.py │ ├── templatetags │ │ ├── __init__.py │ │ └── form_tags.py │ ├── styles │ │ └── forms.scss │ ├── templates │ │ └── forms │ │ │ ├── form_page_landing.html │ │ │ └── form_page.html │ ├── factories.py │ ├── tests.py │ └── models.py ├── health │ ├── __init__.py │ ├── views.py │ └── tests.py ├── home │ ├── __init__.py │ ├── migrations │ │ ├── __init__.py │ │ ├── 0003_remove_bottom_content.py │ │ └── 0002_iabhomepage.py │ ├── wagtail_hooks.py │ ├── factories.py │ ├── templates │ │ └── includes │ │ │ ├── post_iab.html │ │ │ ├── announcement_iab.html │ │ │ └── home_event.html │ └── styles │ │ └── home.scss ├── images │ ├── __init__.py │ ├── migrations │ │ ├── __init__.py │ │ ├── 0002_alter_ietfimage_file_hash.py │ │ ├── 0005_ietfimage_description.py │ │ ├── 0004_django_42_rendition_storage.py │ │ └── 0003_wagtail_42_wagtailimagefield.py │ └── models.py ├── search │ ├── __init__.py │ └── views.py ├── topics │ ├── __init__.py │ ├── migrations │ │ └── __init__.py │ ├── templates │ │ └── topics │ │ │ ├── styles │ │ │ └── topics_page.scss │ │ │ └── topic_index_page.html │ ├── factories.py │ └── test.py ├── utils │ ├── __init__.py │ ├── migrations │ │ ├── __init__.py │ │ ├── 0004_alter_menuitem_options.py │ │ ├── 0003_auto_20211105_0019.py │ │ ├── 0006_textchunk.py │ │ ├── 0005_layoutsettings.py │ │ ├── 0007_auto_20230524_0551.py │ │ └── 0008_socialmediasettings_github_and_more.py │ ├── templatetags │ │ ├── __init__.py │ │ └── ietf_tags.py │ ├── templates │ │ ├── previews │ │ │ ├── footer_column.html │ │ │ └── main_menu_item.html │ │ └── blocks │ │ │ └── note_well_block.html │ ├── static │ │ └── utils │ │ │ └── css │ │ │ └── page_editor.css │ ├── apps.py │ ├── factories.py │ ├── tests │ │ ├── test_500_page.py │ │ ├── test_iab_main_menu.py │ │ └── test_secondary_menu.py │ ├── signal_handlers.py │ ├── management │ │ └── commands │ │ │ └── update_nonprod_hostnames.py │ └── wagtail_hooks.py ├── documents │ ├── __init__.py │ ├── migrations │ │ ├── __init__.py │ │ ├── 0002_wagtail_upgrade_peturbations.py │ │ └── 0001_initial.py │ ├── apps.py │ ├── models.py │ └── templates │ │ └── wagtaildocs │ │ └── documents │ │ └── list.html ├── glossary │ ├── __init__.py │ ├── migrations │ │ └── __init__.py │ ├── factories.py │ └── tests.py ├── settings │ ├── __init__.py │ ├── docker │ │ ├── dev.py │ │ ├── base.py │ │ ├── grains │ │ │ ├── database.py │ │ │ └── logging.py │ │ └── __init__.py │ └── dev.py ├── snippets │ ├── __init__.py │ ├── migrations │ │ ├── __init__.py │ │ ├── 0003_alter_workinggroup_list_subscribe.py │ │ ├── 0004_merge_20231215_0352.py │ │ ├── 0003_person_slug.py │ │ └── 0002_auto_20200414_2027.py │ ├── templates │ │ └── snippets │ │ │ ├── styles │ │ │ ├── index.scss │ │ │ └── mailing_list_signup.scss │ │ │ ├── call_to_action.html │ │ │ ├── group.html │ │ │ ├── disclaimer.html │ │ │ ├── mailing_list_signup.html │ │ │ ├── working_group.html │ │ │ ├── rfc.html │ │ │ ├── area_charter.html │ │ │ └── includes │ │ │ └── _results.html │ ├── urls.py │ ├── tests │ │ ├── test_charter.py │ │ └── test_mailing_list_signup.py │ ├── views.py │ └── factories.py ├── standard │ ├── __init__.py │ ├── migrations │ │ └── __init__.py │ ├── templatetags │ │ ├── __init__.py │ │ └── has_tabs.py │ ├── factories.py │ └── tests.py ├── static │ └── img │ │ ├── .gitkeep │ │ ├── buenos.jpg │ │ ├── Belfast.jpg │ │ ├── Florence.jpg │ │ ├── Kathleen.gif │ │ ├── group-01.jpg │ │ ├── ietf-logo.gif │ │ ├── yokohama.jpg │ │ ├── yokohama2.jpg │ │ ├── buenos-big.jpg │ │ ├── sponsors │ │ ├── bbt.jpg │ │ ├── ctc.jpg │ │ ├── iij.jpg │ │ ├── intec.jpg │ │ ├── jpnic.jpg │ │ ├── jprs.png │ │ ├── kddi.png │ │ ├── nec.jpg │ │ ├── nttc.jpg │ │ ├── devnet.jpg │ │ ├── equinix.png │ │ ├── extreme.png │ │ ├── fujitsu.jpg │ │ ├── hitachi.jpg │ │ ├── huawei.jpg │ │ ├── netone.jpg │ │ ├── otsuka.png │ │ ├── sakura.jpg │ │ ├── toshiba.jpg │ │ ├── WIDE_logo.png │ │ └── softbank.jpg │ │ ├── background-dark.jpg │ │ ├── stephen-farrell.gif │ │ ├── cropped-iab-fav-32x32.png │ │ ├── cropped-iab-fav-180x180.png │ │ ├── cropped-iab-fav-192x192.png │ │ ├── twitter-icon.svg │ │ ├── linkedin-icon.svg │ │ ├── youtube-icon.svg │ │ ├── mastodon-icon.svg │ │ ├── mag.svg │ │ ├── IRTF.svg │ │ ├── routing.svg │ │ ├── operations.svg │ │ └── iab-logo.svg ├── announcements │ ├── __init__.py │ ├── migrations │ │ └── __init__.py │ ├── factories.py │ └── templates │ │ └── announcements │ │ ├── iab_announcement_page.html │ │ └── iab_announcement_index_page.html ├── iesg_statement │ ├── __init__.py │ ├── migrations │ │ ├── __init__.py │ │ ├── 0002_auto_20210325_0442.py │ │ ├── 0003_auto_20211101_0113.py │ │ └── 0004_alter_iesgstatementpage_body.py │ ├── factories.py │ └── templates │ │ └── iesg_statement │ │ └── iesg_statement_index_page.html ├── bibliography │ ├── management │ │ ├── __init__.py │ │ └── commands │ │ │ └── __init__.py │ ├── migrations │ │ └── __init__.py │ ├── templatetags │ │ ├── __init__.py │ │ └── bibliography.py │ ├── templates │ │ └── bibliography │ │ │ ├── item_charter.html │ │ │ ├── item_internetdraft.html │ │ │ ├── item_glossaryitem.html │ │ │ ├── item_rfc.html │ │ │ ├── referencing_pages.html │ │ │ ├── referenced_types.html │ │ │ ├── referenced_objects.html │ │ │ └── bibliography.html │ ├── apps.py │ ├── __init__.py │ ├── styles │ │ └── bibliography.scss │ ├── wagtail_hooks.py │ ├── urls.py │ └── views.py ├── static_src │ ├── js │ │ ├── pages.js │ │ ├── public-path.js │ │ └── init.js │ ├── css │ │ ├── icons.scss │ │ ├── no-js.scss │ │ ├── focus.scss │ │ ├── typography.scss │ │ ├── bs-configure.scss │ │ ├── images.scss │ │ ├── pages.scss │ │ ├── utilities.scss │ │ ├── custom-functions.scss │ │ ├── iab-colors.scss │ │ ├── main.scss │ │ ├── bs-override.scss │ │ ├── datepicker.scss │ │ └── fonts.scss │ └── index.js ├── templates │ ├── includes │ │ ├── social_fields.html │ │ ├── optional-introduction.html │ │ ├── imageblock.html │ │ ├── streamfield.html │ │ ├── children_in_this_section.html │ │ ├── related_links.html │ │ ├── styles │ │ │ ├── footer.scss │ │ │ └── index.scss │ │ ├── breadcrumbs.html │ │ ├── highlight.html │ │ ├── note_well.html │ │ ├── row_siblings_in_section.html │ │ └── social_share.html │ ├── blocks │ │ └── float_block.html │ └── 500.html ├── views.py ├── wsgi.py ├── .editorconfig ├── conftest.py ├── context_processors.py └── urls.py ├── media └── .gitkeep ├── docker ├── database │ ├── .gitkeep │ ├── 01_continue_on_error.sh │ └── 02_convert_native_dump_to_sql_and_restore.sh ├── dev.env ├── init.sh ├── init-dev.sh ├── scripts │ └── db-import.sh ├── init-test.sh ├── supervisord-sandbox.conf ├── nginx-sandbox.conf ├── gunicorn.py └── db.Dockerfile ├── .eslintignore ├── .prettierignore ├── requirements ├── docker.in ├── dev.in ├── compile ├── base.in └── docker.txt ├── dev └── deploy-to-container │ ├── .npmrc │ ├── .editorconfig │ ├── package.json │ └── README.md ├── bin ├── hourly ├── monthly ├── weekly └── daily ├── deploy.sh ├── .babelrc ├── .browserslistrc ├── .prettierrc ├── manage.py ├── .gitignore ├── .eslintrc.js ├── .dockerignore ├── k8s ├── iabweb │ ├── kustomization.yaml │ ├── supervisord.conf │ ├── secrets.yaml │ ├── nginx.conf │ ├── nginx-default.conf │ └── cron.yaml └── ietfweb │ ├── supervisord.conf │ ├── kustomization.yaml │ ├── secrets.yaml │ ├── nginx.conf │ └── cron.yaml ├── tsconfig.json ├── .github └── workflows │ ├── ci-pre-commit.yml │ ├── accessibility-test.yml │ └── ci-run-tests.yml ├── pyproject.toml ├── .pre-commit-config.yaml ├── db_reset.sh ├── webpack.fix-django-paths.js ├── docker-compose.yml └── LICENSE /.nvmrc: -------------------------------------------------------------------------------- 1 | 20 2 | -------------------------------------------------------------------------------- /ietf/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/blog/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/events/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/forms/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/health/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/home/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/images/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/search/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/topics/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docker/database/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/documents/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/glossary/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/settings/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/snippets/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/standard/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/static/img/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/announcements/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/blog/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/forms/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/home/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/iesg_statement/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/utils/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/documents/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/events/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/forms/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/glossary/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/images/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/snippets/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/standard/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/standard/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/topics/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/utils/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/announcements/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/bibliography/management/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/bibliography/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/bibliography/templatetags/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ietf/iesg_statement/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | public/ 2 | node_modules/ 3 | 4 | -------------------------------------------------------------------------------- /ietf/bibliography/management/commands/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | **/*.html 2 | **/*.ss 3 | **/*.yml 4 | -------------------------------------------------------------------------------- /ietf/static_src/js/pages.js: -------------------------------------------------------------------------------- 1 | import '../../blog/js/index'; 2 | -------------------------------------------------------------------------------- /requirements/docker.in: -------------------------------------------------------------------------------- 1 | -c base.txt 2 | 3 | gunicorn>=20.1.0 4 | -------------------------------------------------------------------------------- /docker/database/01_continue_on_error.sh: -------------------------------------------------------------------------------- 1 | psql+=( -v ON_ERROR_STOP=0 ) 2 | -------------------------------------------------------------------------------- /ietf/templates/includes/social_fields.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /dev/deploy-to-container/.npmrc: -------------------------------------------------------------------------------- 1 | audit = false 2 | fund = false 3 | save-exact = true 4 | -------------------------------------------------------------------------------- /ietf/static_src/css/icons.scss: -------------------------------------------------------------------------------- 1 | @import '~bootstrap-icons/font/bootstrap-icons.min.css'; 2 | -------------------------------------------------------------------------------- /ietf/templates/blocks/float_block.html: -------------------------------------------------------------------------------- 1 | {% if value is not None %}{{ value }}{% endif %} 2 | -------------------------------------------------------------------------------- /ietf/static_src/css/no-js.scss: -------------------------------------------------------------------------------- 1 | .no-js .no-js-hide { 2 | display: none !important; 3 | } 4 | -------------------------------------------------------------------------------- /bin/hourly: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Commands here will be executed hourly by cron on the host system 4 | -------------------------------------------------------------------------------- /bin/monthly: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Commands here will be executed monthly by cron on the host system 4 | -------------------------------------------------------------------------------- /ietf/static/img/buenos.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ietf-tools/www/HEAD/ietf/static/img/buenos.jpg -------------------------------------------------------------------------------- /ietf/static/img/Belfast.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ietf-tools/www/HEAD/ietf/static/img/Belfast.jpg -------------------------------------------------------------------------------- /ietf/static/img/Florence.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ietf-tools/www/HEAD/ietf/static/img/Florence.jpg -------------------------------------------------------------------------------- /ietf/static/img/Kathleen.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ietf-tools/www/HEAD/ietf/static/img/Kathleen.gif -------------------------------------------------------------------------------- /ietf/static/img/group-01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ietf-tools/www/HEAD/ietf/static/img/group-01.jpg -------------------------------------------------------------------------------- /ietf/static/img/ietf-logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ietf-tools/www/HEAD/ietf/static/img/ietf-logo.gif -------------------------------------------------------------------------------- /ietf/static/img/yokohama.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ietf-tools/www/HEAD/ietf/static/img/yokohama.jpg -------------------------------------------------------------------------------- /ietf/static/img/yokohama2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ietf-tools/www/HEAD/ietf/static/img/yokohama2.jpg -------------------------------------------------------------------------------- /ietf/bibliography/templates/bibliography/item_charter.html: -------------------------------------------------------------------------------- 1 |{{ object.abstract|truncatechars:300 }}
2 | -------------------------------------------------------------------------------- /ietf/static/img/buenos-big.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ietf-tools/www/HEAD/ietf/static/img/buenos-big.jpg -------------------------------------------------------------------------------- /ietf/utils/templates/previews/footer_column.html: -------------------------------------------------------------------------------- 1 | {% extends settings.utils.LayoutSettings.base_template %} 2 | -------------------------------------------------------------------------------- /ietf/utils/templates/previews/main_menu_item.html: -------------------------------------------------------------------------------- 1 | {% extends settings.utils.LayoutSettings.base_template %} 2 | -------------------------------------------------------------------------------- /docker/dev.env: -------------------------------------------------------------------------------- 1 | APP_SECRET_KEY=xxxx 2 | DATABASE_URL=postgres://postgres:password@database/app 3 | ADDRESSES="*" 4 | -------------------------------------------------------------------------------- /ietf/bibliography/templates/bibliography/item_internetdraft.html: -------------------------------------------------------------------------------- 1 |{{ object.body|striptags }}
4 | -------------------------------------------------------------------------------- /ietf/documents/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class DocumentsConfig(AppConfig): 5 | name = "ietf.documents" 6 | -------------------------------------------------------------------------------- /ietf/events/templates/events/includes/link_block.html: -------------------------------------------------------------------------------- 1 | {% if link %}{{ title }}{% else %}{{ title }}{% endif %} 2 | -------------------------------------------------------------------------------- /ietf/bibliography/templates/bibliography/item_rfc.html: -------------------------------------------------------------------------------- 1 |{{ object.abstract|truncatechars:300 }}
2 |{{ object.author_names|join:", " }}
3 | -------------------------------------------------------------------------------- /ietf/forms/styles/forms.scss: -------------------------------------------------------------------------------- 1 | .forms__fieldset_legend { 2 | font-size: inherit; 3 | display: inline-block; 4 | margin-bottom: 0; 5 | } 6 | -------------------------------------------------------------------------------- /requirements/dev.in: -------------------------------------------------------------------------------- 1 | -c base.txt 2 | 3 | black 4 | pip-tools 5 | pre-commit 6 | pytest-cov 7 | pytest-django 8 | ruff 9 | wagtail-factories 10 | -------------------------------------------------------------------------------- /ietf/settings/docker/base.py: -------------------------------------------------------------------------------- 1 | from . import * # noqa: F403 2 | from .grains.database import * # noqa: F403 3 | from .grains.logging import * # noqa: F403 4 | -------------------------------------------------------------------------------- /ietf/topics/templates/topics/styles/topics_page.scss: -------------------------------------------------------------------------------- 1 | .topic-list__item { 2 | max-width: 920px; 3 | margin-left: auto; 4 | margin-right: auto; 5 | } 6 | -------------------------------------------------------------------------------- /deploy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | 3 | cd $(dirname $(echo $0)) 4 | 5 | python manage.py collectstatic --no-input 6 | python manage.py migrate --no-input 7 | python manage.py update_index 8 | -------------------------------------------------------------------------------- /docker/init.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "Running migrate..." 4 | python /app/manage.py migrate 5 | 6 | echo "Starting supervisor..." 7 | /usr/bin/supervisord -c /app/supervisord.conf 8 | -------------------------------------------------------------------------------- /ietf/settings/docker/grains/database.py: -------------------------------------------------------------------------------- 1 | import dj_database_url 2 | 3 | from .. import DATABASE_URL 4 | 5 | DATABASES = {"default": dj_database_url.parse(DATABASE_URL, conn_max_age=600)} 6 | -------------------------------------------------------------------------------- /dev/deploy-to-container/.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | indent_size = 2 3 | indent_style = space 4 | charset = utf-8 5 | trim_trailing_whitespace = false 6 | end_of_line = lf 7 | insert_final_newline = true -------------------------------------------------------------------------------- /ietf/bibliography/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class BibliographyAppConfig(AppConfig): 5 | name = "ietf.bibliography" 6 | verbose_name = "Bibliography items" 7 | -------------------------------------------------------------------------------- /ietf/documents/models.py: -------------------------------------------------------------------------------- 1 | from wagtail.documents.models import Document 2 | 3 | 4 | class IetfDocument(Document): 5 | 6 | @property 7 | def url(self): 8 | return self.file.url 9 | -------------------------------------------------------------------------------- /ietf/snippets/urls.py: -------------------------------------------------------------------------------- 1 | from django.urls import re_path 2 | 3 | from .views import disclaimer 4 | 5 | urlpatterns = [ 6 | re_path(r"^disclaimer/(\d+)/$", disclaimer, name="disclaimer"), 7 | ] 8 | -------------------------------------------------------------------------------- /ietf/events/styles/event_listing_page.scss: -------------------------------------------------------------------------------- 1 | .event_listing_page__promoted-image { 2 | max-height: 6rem; 3 | 4 | @include media-breakpoint-up(md) { 5 | max-height: none; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ietf/static_src/css/focus.scss: -------------------------------------------------------------------------------- 1 | *:focus { 2 | outline: 3px solid #b53cde !important; 3 | outline-offset: 3px; 4 | 5 | .using-mouse & { 6 | outline: none !important; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /docker/init-dev.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | 3 | python /app/manage.py migrate --no-input 4 | python /app/manage.py createcachetable 5 | exec /usr/local/bin/gunicorn --config /app/docker/gunicorn.py --reload ietf.wsgi 6 | -------------------------------------------------------------------------------- /ietf/utils/templates/blocks/note_well_block.html: -------------------------------------------------------------------------------- 1 | {% load wagtailcore_tags %} 2 | 3 | {% block content %} 4 | {% include "includes/note_well.html" with note_well_git_url=note_well_git_url %} 5 | {% endblock %} -------------------------------------------------------------------------------- /requirements/compile: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -euo pipefail 4 | cd "$( dirname "${BASH_SOURCE[0]}" )" 5 | 6 | set -x 7 | pip-compile base.in "$@" 8 | pip-compile docker.in "$@" 9 | pip-compile dev.in "$@" 10 | -------------------------------------------------------------------------------- /ietf/standard/templatetags/has_tabs.py: -------------------------------------------------------------------------------- 1 | from django import template 2 | 3 | register = template.Library() 4 | 5 | 6 | @register.simple_tag 7 | def has_tabs(key_info, in_depth): 8 | return bool(key_info and in_depth) 9 | -------------------------------------------------------------------------------- /ietf/bibliography/__init__.py: -------------------------------------------------------------------------------- 1 | # TODO: 2 | # X bibliography item model with generic foreign key 3 | # item rendering method 4 | # X model mixin with pre-parser method 5 | # item rendering template tag 6 | # itemS rendering template tag 7 | -------------------------------------------------------------------------------- /ietf/static_src/css/typography.scss: -------------------------------------------------------------------------------- 1 | blockquote { 2 | color: #666666; 3 | border-left: 5px solid #bebebe; 4 | padding-left: 1rem; 5 | font-weight: 500; 6 | 7 | p:last-child { 8 | padding-bottom: 0; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ietf/forms/templates/forms/form_page_landing.html: -------------------------------------------------------------------------------- 1 | {% extends settings.utils.LayoutSettings.base_template %} 2 | {% load wagtailcore_tags %} 3 | 4 | {% block content %} 5 |{{ value.introduction }}
9 | {% endif %} 10 | -------------------------------------------------------------------------------- /ietf/utils/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class UtilsAppConfig(AppConfig): 5 | name = "ietf.utils" 6 | verbose_name = "IETF Website Utils" 7 | 8 | def ready(self): 9 | from .signal_handlers import register_signal_handlers 10 | 11 | register_signal_handlers() 12 | -------------------------------------------------------------------------------- /requirements/docker.txt: -------------------------------------------------------------------------------- 1 | # 2 | # This file is autogenerated by pip-compile with Python 3.12 3 | # by the following command: 4 | # 5 | # pip-compile docker.in 6 | # 7 | gunicorn==23.0.0 8 | # via -r docker.in 9 | packaging==25.0 10 | # via 11 | # -c /app/requirements/base.txt 12 | # gunicorn 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Be sure to update .dockerignore to match .gitignore 2 | /venv/ 3 | /static/ 4 | /media/ 5 | /ietf/templates/base.html 6 | /ietf/static/dist 7 | /ietf/settings/local.py 8 | /docker/database/*.gz 9 | *.pyc 10 | *.log 11 | *.swp 12 | .DS_Store 13 | .vscode 14 | .coverage 15 | node_modules 16 | coverage.xml 17 | -------------------------------------------------------------------------------- /ietf/utils/factories.py: -------------------------------------------------------------------------------- 1 | import factory 2 | import wagtail_factories 3 | 4 | from . import blocks 5 | 6 | 7 | class StandardBlockFactory(wagtail_factories.StreamBlockFactory): 8 | heading = factory.SubFactory(wagtail_factories.CharBlockFactory) 9 | 10 | class Meta: 11 | model = blocks.StandardBlock 12 | -------------------------------------------------------------------------------- /ietf/static_src/css/bs-configure.scss: -------------------------------------------------------------------------------- 1 | $custom-spacers: ( 2 | 200pc: ( 3 | $spacer * 2, 4 | ), 5 | 250pc: ( 6 | $spacer * 2.5, 7 | ), 8 | 400pc: ( 9 | $spacer * 4, 10 | ), 11 | ); 12 | 13 | $spacers: map-merge($spacers, $custom-spacers); 14 | 15 | $enable-negative-margins: true; 16 | -------------------------------------------------------------------------------- /ietf/glossary/factories.py: -------------------------------------------------------------------------------- 1 | import factory 2 | import wagtail_factories 3 | 4 | from .models import GlossaryPage 5 | 6 | 7 | class GlossaryPageFactory(wagtail_factories.PageFactory): 8 | title = factory.Faker("name") 9 | introduction = factory.Faker("paragraph") 10 | 11 | class Meta: # type: ignore 12 | model = GlossaryPage 13 | -------------------------------------------------------------------------------- /ietf/templates/includes/imageblock.html: -------------------------------------------------------------------------------- 1 | {% load wagtailimages_tags %}{% spaceless %} 2 | {% if value.caption %} 3 |{{ snippet.blurb }}
{% endif %} 4 | {{ snippet.button_text }} 5 |{{ snippet.summary }}
{% endif %} 9 | {% if snippet.email %}{{ snippet.email }}{% endif %} 10 |6 | 7 | {{ link.title }} 8 | 9 |
10 | {% endfor %} 11 | {% endif %} 12 |{{ snippet.blurb }}
{% endif %} 7 | 8 | {{ snippet.button_text }} 9 | 10 |{{ working_group.description|truncatechars:200 }}
5 | 6 | {{ working_group.acronym }} 7 | {% if working_group.list_email %} 8 | {{ working_group.list_email }} 9 | {% endif %} 10 | 11 |{{ rfc.abstract|truncatechars:200 }}
4 | 5 | RFC {{ rfc.rfc }} 6 | was: 7 | {{ rfc.name }} 8 | {# we include the WG email here #} 9 | {% if rfc.working_group.list_email %} 10 | {{ rfc.working_group.list_email }} 11 | {% endif %} 12 | 13 |{{ post.description|truncatechars:250 }}
8 |{{ post.published_date|date:"DATE_FORMAT" }}
11 | 12 |{{ charter.abstract }}
5 | 6 | {% if charter.active %} 7 | Active 8 | {% else %} 9 | Not active 10 | {% endif %} 11 | {{ charter.area.acronym }} 12 | 13 | working groups: 14 | {% for working_group in charter.working_groups %} 15 | {{ working_group.acronym }} 16 | {% endfor %} 17 | {# See all… #} 18 | 19 || name | 12 |
|---|
| {{ page.title }} | 18 |
{{ announcement.introduction|safe|truncatechars:200 }}
8 |{{ announcement.date|date:"DATE_FORMAT" }}
12 | {% endif %} 13 | 14 || {{statement.date_published|date:"Y-m-d"}} | 21 |{{statement.title}} | 22 |
| name | 12 |citation count | 13 |
|---|---|
| {{ type.0 }} | 19 |{{ type.1 }} | 20 |
| name | 12 |citation count | 13 |
|---|---|
| {{ object.0 }} | 19 |{{ object.1 }} | 20 |
{{ child.introduction }}
22 || {{ item }} |
{% blocktrans %}Sorry, no matches for "{{ query_string }}"{% endblocktrans %}
26 | {% endif %} 27 | -------------------------------------------------------------------------------- /ietf/utils/templatetags/ietf_tags.py: -------------------------------------------------------------------------------- 1 | from urllib.parse import quote 2 | 3 | from django.template import Library 4 | 5 | from ..models import PromoteMixin, SocialMediaSettings 6 | 7 | register = Library() 8 | 9 | 10 | @register.simple_tag(takes_context=False) 11 | def social_text(page, site, encode=False): 12 | text = "" 13 | 14 | if isinstance(page, PromoteMixin): 15 | text = page.get_social_text() 16 | 17 | if not text: 18 | text = SocialMediaSettings.for_site(site).default_sharing_text 19 | 20 | if encode: 21 | text = quote(text) 22 | 23 | return text 24 | 25 | 26 | @register.simple_tag(takes_context=False) 27 | def social_image(page, site): 28 | image = None 29 | 30 | if isinstance(page, PromoteMixin): 31 | image = page.get_social_image() 32 | 33 | if image is None: 34 | image = SocialMediaSettings.for_site(site).default_sharing_image 35 | 36 | if image is not None: 37 | return image.get_rendition("original").url 38 | 39 | return "" 40 | -------------------------------------------------------------------------------- /ietf/blog/templates/blog/blog_index_by_author.html: -------------------------------------------------------------------------------- 1 | {% extends settings.utils.LayoutSettings.base_template %} 2 | {% load wagtailroutablepage_tags %} 3 | 4 | {% block main_content %} 5 | 6 || {{entry.coalesced_published_date|date:"Y-m-d"}} | 23 |{{entry.title}} | 24 |
An error occured fetching the note well.
4 |See https://github.com/ietf/note-well/ for the note well.
5 |Please email us to report this.
6 |{{ filter_text }}
{{ sibling.get_social_text }}
13 | {% include "includes/blog_authors.html" with post=sibling %} 14 | {{ sibling.date|date:"DATE_FORMAT" }} 15 |No results
{{ event.introduction }}
13 |You have filtered by {{ self.filter_topic.title }}
15 | {% endif %} 16 || {{entry.coalesced_published_date|date:"Y-m-d"}} | 37 |{{entry.title}} | 38 |
{{ self.introduction }}
14 |{{ primary_topic.get_social_text }}
36 || 9 | {% if not is_searching %} 10 | 11 | {% trans "Title" %} 12 | 13 | {% else %} 14 | {% trans "Title" %} 15 | {% endif %} 16 | | 17 |{% trans "File" %} | 18 |19 | {% if not is_searching %} 20 | 21 | {% trans "Uploaded" %} 22 | 23 | {% else %} 24 | {% trans "Uploaded" %} 25 | {% endif %} 26 | | 27 |
|---|---|---|
33 | {% if choosing %}
34 | {{ doc.title }}35 | {% else %} 36 |{{ doc.title }}37 | {% endif %} 38 | |
39 | {{ doc.filename }} | 40 |{% blocktrans with time_period=doc.created_at|timesince %}{{ time_period }} ago{% endblocktrans %} |
41 |
Ooops, something went wrong. We are looking into it, please try again soon.
27 | 28 | {% if messages %} 29 | 34 | {% endif %} 35 |If the matter is urgent, please email support@ietf.org .
53 |