Commit graph

12731 commits

Author SHA1 Message Date
Robert Sparks 06b9df10ee
feat: warn about materials for cancelled sessions (#7959)
* feat: warn about materials for cancelled sessions

* fix: handle viewing a DocHistory material object
2024-09-23 10:09:50 -05:00
Robert Sparks 25fd4fce5d
fix: show correct time for cancelled sessions. (#7958) 2024-09-23 09:41:18 -05:00
Jennifer Richards 32057f335a
feat: allow blanket IPR disclosures (#7934)
* refactor: avoid shadowing type()

* style: Black

* feat: is_blanket_disclosure field

* feat: add field to form

* feat: js to mark field required/not required

* feat: blanket disclosure = royalty-free license

* feat: manage licensing radio buttons

* fix: adjust wording/format of disclosure page

* fix: point at RFC 8179 in checkbox label

* test: test blanket disclosure licensing restrictions

* fix: conditionally render is_blanket_disclosure

* test: refactor test case

* test: patent details optional for blanket ipr
2024-09-18 16:37:02 -05:00
Lars Eggert 35074660dc
chore: Prevent test suite artifact creation in work directory (#6438)
* chore: Prevent test suite artifact creation in work directory

Also remove a few other stale test assets while I'm here.

* Try and fix CI

* Change IDSUBMIT_REPOSITORY_PATH

* Make the dir

* test: clean up media/nomcom directories

* test: de-dup settings_temp_path_overrides

* chore: remove debug

* refactor: avoid premature import of test_utils

* refactor: drop useless lambda wrapper

---------

Co-authored-by: Jennifer Richards <jennifer@staff.ietf.org>
2024-09-18 14:08:01 -05:00
Jennifer Richards c6389ba65f
fix: only send state change notifications once (#7953)
* feat: split state_change_event create / save

* refactor: avoid double-save in rfceditor.py

* feat: only send notifications on event creation

* test: update test_notification_signal_receiver()

* chore: update comment
2024-09-18 14:02:00 -05:00
Robert Sparks 97b719505e
test: focus on a helper rather than a whole view (#7951) 2024-09-17 13:06:10 -05:00
Robert Sparks 8362b45c8e
fix: optimize and debug has_role and can_manage_some_groups (#7949)
* fix: optimize can_manage_some_groups

* fix: improve cache key

* refactor: extra_role_qs to kwargs and bugfix to cache key

* fix: restrict groupman_role matches to active states

* chore: styling, decommenting, black
2024-09-17 13:05:56 -05:00
Sangho Na 9d583ab9eb
fix: Use email or name when building community list view (#7203)
* fix: Use email or name when building community list view

instead of email

* test: add test case

* chore: remove debug

* fix: use name in community list menu when no active email is found

---------

Co-authored-by: Jennifer Richards <jennifer@staff.ietf.org>
2024-09-16 10:06:16 -05:00
Robert Sparks cc1eade4f8
fix: correct headers for charter evaluation email (#7937) 2024-09-16 08:57:05 -05:00
Robert Sparks 3b5058a516
fix: start to reconcile internal inconsistencies wrt multiple from values (#7935) 2024-09-16 08:56:51 -05:00
Jennifer Richards f5c132a20a
refactor: helper for session recording URL; fix test (#7933)
* refactor: session recording URL label helper

* test: update tests, avoid tz dependence

* test: use date_today()
2024-09-13 16:42:51 -05:00
Robert Sparks 65547a7a9d
fix: rectify mixed types in gathering mailtrigger recipients (#7932) 2024-09-12 17:04:12 -05:00
Kesara Rathnayake f0f2b6d8b6
test: Use timezone aware datetime (#7918)
* test: Use timezone aware datetime

* fixup! test: Use timezone aware datetime
2024-09-12 12:47:53 -05:00
Sangho Na 8d608a1282
test: check HTML content with whitespace ignored (#7921) 2024-09-12 12:47:15 -05:00
Sangho Na 80599f29f0
fix: Include missing related drafts in IPR searches (#7836)
* fix: Include missing related drafts in IPR searches

* refactor: extract drafts, sort docs

* chore: indent loop and conditionals to improve readability

* test: handle whitespaces added to IPR search result page

---------

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2024-09-10 17:22:45 -05:00
Jennifer Richards d8d52eedbf
feat: email ingestor api test endpoint (#7915)
* feat: email ingestor api test endpoint

* ci: add ingestion test token for sandbox

* chore: fix comments
2024-09-09 10:00:54 -05:00
Robert Sparks cb25831a2a
feat: total ids, pre-pubreq counts and pages left to ballot on on the AD dashboard (#7813)
* feat: Total ids on IESG dashboard

* IESG I-D code comments

* Using Robert's query forIESG dashboard total_ids

* Hiding columns in later IESG Dashboard tables

* Changing IESG dashboard var name to match column table

* Updating IESG pre_pubreqquery

* IESG dashboard prepub req safeParser and graphs

* IESG dashboard fixing Playwright API usage

* IESG dashboard fixing Playwright API usage (2)

* Updating .gitignore for /geckodriver.log

* IESG ad test title

* feat: pages left to ballot on [WIP]

* Adding geckodriver.log to gitignore

* [WIP] pages left to ballot on

* integrating pages left to ballot on WIP

* Tests for ad pages remaining

* Setting states to test ballot items

* refactor ad_pages_left_to_ballot_on count logic

* WIP tests for pages left to ballot on

* chore: remove whitespace change

* fix: look into the BallotPositionDocEventObject

* chore: remove prints

* fix: restructure test

* style: fix js code styling

* fix: only show graph for ADs/Secretariat

---------

Co-authored-by: Matthew Holloway <Matthew Holloway>
Co-authored-by: holloway <matthew@holloway.co.nz>
Co-authored-by: Nicolas Giard <github@ngpixel.com>
Co-authored-by: Matthew Holloway <matthew@staff.ietf.org>
2024-09-05 10:43:43 -05:00
Jennifer Richards 36847428d5
fix: label > 26 sessions per group (#7599)
* fix: label > 26 sessions correctly

* test: test new helper

---------

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2024-09-04 15:39:03 -05:00
Jennifer Richards b6f8ede98a
feat: is_authenticated request logging + cleanup (#7893)
* chore: nginx log is s, not ms

* chore: log seconds from gunicorn too

* chore: drop X-Real-IP header / log

* style: Black

* style: single -> double quotes

* feat: add is-authenticated header

* feat: log is-authenticated header

* chore: update nginx-auth.conf to match
2024-09-03 17:24:26 -05:00
Seonghyeon Cho 061c89f3b5
fix: Missing button text for PostScript in RFC (#7889)
Resolves #7879

Signed-off-by: Seonghyeon Cho <seonghyeoncho96@gmail.com>
2024-09-03 10:46:34 -05:00
Kesara Rathnayake 23e5307d2e
feat: Use meetecho-player.ietf.org for session recording (#7873) 2024-09-03 08:20:36 -05:00
Matthew Holloway 17bd312468
fix: Document type badges (#7760)
* fix: document type badge#7475

* chore: PR feedback (naming)

* fix: use type_id rather than str(type) for conditionals in templatetag

* fix: remove debugging CSS inline style dashed border

* fix: document type badge template tag passing context variables

* fix: context vars to document_type_badge

* fix: badge error logging

---------

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2024-08-28 14:32:58 -05:00
Robert Sparks 73968dca5f
fix: use rsab mailtrigger for To in ballot position email (#7868) 2024-08-28 14:17:36 -05:00
Robert Sparks 1f6db0fef1
feat: mark bofreqs as spam (#7869) 2024-08-28 14:17:14 -05:00
Matthew Holloway 715edafcdc
fix: return to ballotpopup (#7858)
* fix: return to ballotpopup

* fix: ballot position return to in modals

* fix: ballot return to test

* fix: ballot return to additional allow handlers

* fix: ballot return to handler syntax error in test
2024-08-28 07:51:05 -05:00
Jennifer Richards 2230242b9b
refactor: speed up finalizing proceedings (#7846)
* chore: increase nginx proxy_read_timeout

* refactor: speed up bluesheet_data

The affiliation helper was extremely slow. Using
queryset annotation speeds it up by almost an order
of magnitude.

* chore: delint
2024-08-22 10:34:52 -05:00
Robert Sparks c323cdde03
fix: remove unused internal_comments from the DocumentInfo abstract model (#7833) 2024-08-21 08:32:06 -05:00
Robert Sparks f53d1cae65
fix: remove unused notes field from SchedSessTimeAssignment model (#7832) 2024-08-21 08:29:09 -05:00
Jennifer Richards bb0b342716
test: fix DraftFormTest setup (#7828)
* test: fix DraftFormTest setup

Tests were failing when the doc factories started
producing pks >= 10 because of an incorrect test
data structure.

* chore: improve comments
2024-08-15 16:33:14 -05:00
Jennifer Richards 00d6143293
fix: guard against missing ipr revisions (#7826)
* fix: guard against missing "revisions"

* test: add tests for DraftForm

Only testing the part relevant to this issue.

* test: clarify intentions

* chore: "document" -> "draft" in comments
2024-08-14 11:43:21 -05:00
Matthew Holloway ff8898186b
fix: Ballot return to url via url params rather than session (#7788)
* fix: #7287 ballot return params

* fix: Moving Ballot edit position ballot_edit_return_point from session to query param

* fix: tests for return_to_path param

* chore: removing Playwright tests until we can figure out a plan

* feat: return_to path utility refactoring

* fix: throw HTTP 400 in view rather than bubbling up a 500

* fix: return http400 rather than raising
2024-08-09 09:24:04 -05:00
Warren Kumari 1252cd2ac2
fix: badgeify "Serious Issues", "On the right track" review summaries. (#7809)
Addresses #7808
2024-08-08 12:10:54 -05:00
Matthew Holloway e5e6c9bc89
feat: Site status message (#7659)
* Status WIP

* feat: Status

* fix: Status tests

* feat: status redirect

* chore: Status tests

* chore: Status tests

* feat: Status tests

* chore: Status playwright tests

* fix: PR feedback, mostly Vue and copyright dates

* fix: Status model migration tidy up

* chore: Status - one migration

* feat: status on doc/html pages

* chore: Resetting Status migration

* chore: removing unused FieldError

* fix: Update Status test to remove 'by'

* chore: fixing API test to exclude 'status'

* chore: fixing status_page test

* feat: Site Status PR feedback. URL coverage debugging

* Adding ietf.status to Tastypie omitted apps

* feat: Site Status PR feedback

* chore: correct copyright year on newly created files

* chore: repair merge damage

* chore: repair more merge damage

* fix: reconcile the api init refactor with ignoring apps

---------

Co-authored-by: Matthew Holloway <Matthew Holloway>
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2024-08-07 13:36:21 -05:00
Emelia Smith 30970749e3
fix: Send create user email for password resets where we have an email and person, but no user. (#7729)
* fix: Send create user email for password resets where we have an email and person, but no user account

This fixes https://github.com/ietf-tools/datatracker/issues/6458

* fix: create User straight away and use nomral password reset

---------

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2024-08-07 13:25:08 -05:00
Rich Salz 0c8db80b18
fix: Show recordings for interims (#7197)
* fix: Show recordings for interims

Add methods uses_notes(), has_recordings(), and uses_chat_logs() to the
meeting object (with semantically correct tests) and use them consistently
throughout.  List the recordings if the "meeting numnber" starts with
"interim"

Fixes: #6543

* style: Use "is not" and "is" for None comparisons

* None comparison and non-IETF meetings

style: Use "is not None" instead of "!="
For non-IETF meetings assume chat logs exist

* fix: Restore useNotes for JS fields

* fix: uses_notes->useNotes (in JavaScript)

Also add comment about meeting number field in tests

* Missed a uses_notes->useNotes edit

* fix: useNotes->usesNotes

---------

Co-authored-by: Jennifer Richards <jennifer@staff.ietf.org>
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2024-08-07 11:23:18 -05:00
Jennifer Richards 4b912d55a5
fix: better handle "entered" agendas (#7721)
* fix: don't assume file has open method

The open method is specific to Django's uploaded
file classes, where it just calls seek(0)

* refactor: better upload/enter agenda abstraction
2024-08-07 10:14:39 -05:00
Russ Housley 7d6d7e1c44
Update session_details_panel.html (#7719)
Add rows for interim meeting recordings. Fixes #7699.
2024-08-07 10:12:40 -05:00
Russ Housley 1de41965be
fix: add celery tasks for idnits2 and bibxml file generation (#7204)
* Add celery tasks for idnits2 and bibxml file generation

* Update tests_tasks.py

Fix typo: bad_vakue -> bad_value

* Update utils.py

Don't raise error inbibxml_for_all_drafts

* chore: fixup merge

* chore: more merge cleanup

* chore: one last merge cleanup

---------

Co-authored-by: Jennifer Richards <jennifer@staff.ietf.org>
2024-08-07 09:18:13 -05:00
Jennifer Richards 95a7e14ada
feat: dev mode admin + refactor api init (#7628)
* feat: style admin site in dev mode

* refactor: eliminate base_site.html

* fix: remove debug

* fix: commit missing __init__.py

* refactor: make method static; fix tests

* refactor: move api init to AppConfig.ready()

Avoids interacting with the app registry before
it's ready.
2024-08-07 09:16:40 -05:00
Sangho Na b90820eb7a
fix: Hide last modified field in agenda when unavailable (#7722)
* test: Update tests to check for Updated field in agenda.txt

* fix: Hide Updated in agenda.txt if too old

* test: Remove confusing tests on CSV agenda

* refactor: Make updated() return None when no valid timestamp found

* refactor: Remove walrus operator
2024-08-07 09:15:01 -05:00
Jim Fenton 9ef7bff77c
feat: Unify slide upload and proposal (#7787)
* attempt at optional approval

* Update of meeting slides propose/upload

* Fix tests and residual coding bugs

* Remove gratuitous blank lines
2024-08-06 10:03:37 -05:00
Russ Housley 63d13074d1
fix: use area-acronym-at-the-time in proceedings (#7723)
When generating IETF meeting proceedings, use the Area Acronym for each WG at the time of the meeting. Fixes #7706.
2024-08-05 11:03:17 -05:00
Jennifer Richards 16ac73d4b7
fix: use BOF states in concluded_groups() (#7771)
* fix: use BOF states in concluded_groups()

* fix: handle events for older BOFs

These could be cleaned up in the database, but I think this
change does the right thing for the existing data.

* style: Black
2024-08-05 10:18:01 -05:00
Rich Salz 8a5826a941
fix: redundant word in banner for Legacy stream documents (#7207)
* fix: Remove redundant "stream stream" output

fix: Change "Legacy stream" to "Legacy"

chore: Add "stream" to stream.desc as needed

Fixes: #6902

* chore: Remove unused stream_desc parameter

The stream_desc key isn't used in template/doc/docuemnt_draft.html to
don't pass it in nor compute it

Fixes: #6902

* fix: migrate the legacy StreamName

---------

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2024-08-05 09:48:48 -05:00
Jennifer Richards d683920cec
test: log in before pdfize test (#7778) 2024-08-01 16:33:49 -05:00
Jennifer Richards 06677a9863
fix: require login to pdfize (#7775)
* fix: require login to pdfize

* fix: suppress "pdfized" button when it won't work
2024-08-01 15:23:35 -05:00
Matthew Holloway fb1942a538
fix: Sort RFCs by date (#7766)
* fix: Sort RFCs by date

* fix: concluded wgs and bofs date sort #7350
2024-08-01 14:25:03 -05:00
Jennifer Richards 247361b7dd
ci: better access logs+redirect auth URLs+fix X-Request-Start header (#7700)
* fix: silence nginx healthcheck logs

* fix: nginx logs in JSON

* fix: typos in nginx conf

* refactor: repeat less nginx config

* fix: log more req headers from gunicorn

* fix: redirect auth->datatracker, not deny

* feat: log X-Forwarded-Proto
2024-07-30 20:55:07 -03:00
Robert Sparks b5ab4b6611
chore: update test name fixture (#7751) 2024-07-25 15:31:53 -07:00
Jennifer Richards d5ceb7b20d
fix: optional / for /person/merge/ URL (#7746) 2024-07-24 14:20:18 -07:00
Sangho Na aa36f481e1
chore: Add additional log messages to directauth() (#7716)
* chore: Add additional log messages to directauth()

* chore: Keep single log message for each successful response
2024-07-21 11:15:33 -07:00
Sangho Na a3e4e634fc
fix: Exclude replaced documents from IESG discusses (#7712)
* fix: Exclude replaced documents from IESG discusses

* test: Add checks for filtering replaced IESG drafts

* chore: Improve replaced draft filter

---------

Co-authored-by: Paul Selkirk <paul@painless-security.com>
2024-07-21 11:14:02 -07:00
Lars Eggert 363c01e711
fix: Explicitly set executable_path for Selenium (#7715)
* fix: Explicitly set `executable_path` for Selenium

So it finds `geckodriver` again.

* Minimize diff

* fix: use existing executable_name

Co-authored-by: Lars Eggert <lars@eggert.org>

---------

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2024-07-20 17:14:40 -07:00
Ryan Cross c5ca0ea405
fix: force choice of From address in Announcement form. Fixes #7679. (#7720) 2024-07-20 15:24:14 -07:00
Robert Sparks 60a3976c3d
Fixed 'to' to 'review_to' and 'cc' to 'review_cc'. (#7710)
Co-authored-by: Tero Kivinen <kivinen@iki.fi>
2024-07-20 15:23:56 -07:00
Robert Sparks 9783756992
Changed milestones to use RFC number if draft is published as RFC. (#7718)
Co-authored-by: Tero Kivinen <kivinen@iki.fi>
2024-07-20 15:23:32 -07:00
Jennifer Richards a86c62e133
fix: raw_id_fields for EventAdmin classes (#7711)
* fix: raw_id_fields for ReviewRequestDocEventAdmin

* fix: raw_id_fields for ReviewAssignmentDocEventAdmin

* fix: raw_id_fields for AddedMessageEventAdmin

* fix: raw_id_fields for SubmissionDocEventAdmin

* refactor: make inheritance clearer
2024-07-20 15:17:43 -07:00
Jennifer Richards c7f6bdef0a
test: test missing file 2024-07-20 13:02:32 -07:00
Jennifer Richards 0555eef13a
fix: prevent error when no file selected 2024-07-20 12:47:43 -07:00
Matthew Holloway b00dfd3c99 feat: Overflow shadows 2024-07-17 12:31:00 +12:00
Jennifer Richards 18bb793b2d
feat: add nginx, robots.txt, HTTP headers (#7683)
* feat: nginx + robots.txt

* feat: minimal /health/ endpoint

* ci: startupProbe for datatracker pod

* ci: probe auth pod; set timeoutSeconds

* feat: add CSP and other headers to nginx

* fix: typo in nginx.conf

* feat: split auth/dt nginx confs

* test: test health endpoint

* ci: auth service on port 80

We'll remove http-old (8080) in the future.

* ci: rename auth container/nginx cfg
2024-07-15 16:45:51 -05:00
Robert Sparks 17e0f573b3
fix: check correct state machine when clearing status change ballots (#7684)
* fix: check correct state machine when clearing status change ballots

Fixes #7335

* fix: Improve ballot clearing tests

* fix: look at the right state machines for defer state for a ballot

* fix: also do the right thing with conflrev defers
2024-07-15 16:33:00 -05:00
Jennifer Richards f1d58da877
feat: send doc event emails via celery (#7680)
* feat: notify_event_to_subscribers_task

* fix: avoid circular import, handle error

* fix: don't queue task in test mode

* fix: don't even send mail in test mode

* test: separately test signal

* fix: if/else error

* test: better naming

* test: test the new task

* test: better test name

* test: refactor notify email test

* fix: save, not update

* test: restore template coverage
2024-07-12 10:10:46 -05:00
Jennifer Richards b2a858c880
fix: prevent dups in DraftAliasGenerator (#7650) 2024-07-10 15:34:04 -05:00
Jennifer Richards 20f183c948
feat: update meetecho slides on approval (#7633)
* feat: update meetecho slides on approval

* test: test slide management
2024-07-10 15:33:52 -05:00
Jennifer Richards f78b050263
refactor: Streamline draft aliases api (#7607)
* chore: update add-django-cprofile-filter.patch

* fix: only use "draft" state when making aliases

* refactor: eliminate repeated get_state_slug()

On dev, reduces time for a draft-aliases api
call by by 10-15%

* refactor: only annotate inactive drafts

* refactor: de-lint

* refactor: speed up get_draft_authors_emails

Another 20% or so improvement in response time

* fix: guard against null person
2024-06-28 12:01:26 -05:00
Jennifer Richards 6a96a69234
feat: improve / clean up logging (#7591)
* refactor: always use console log handler

* refactor: json for k8s, plain otherwise

* chore: remove syslog from wsgi.py

* chore: remove debug.log()

* chore: drop syslog from settings.py

* refactor: use log.log() in person.utils

* refactor: fetch_meeting_attendance->log.log()

* chore: gunicorn logs as JSON (wip)

* feat: better json log formatting

* refactor: improve log config

* feat: gunicorn access log fields

* fix: remove type hints

The gunicorn logger plays tricks with the
LogRecord args parameter to let it have string
keys instead of being a simple tuple.
The mypy tests rightly flag this. Rather
than fighting the typing, just remove the
hints and leave a comment warning not to
use the gunicorn-specific formatter with
other loggers.
2024-06-26 14:53:05 -05:00
Robert Sparks 704f9967fd
fix: remove no longer needed htpasswd infrastructure (#7590) 2024-06-26 13:33:09 -05:00
Robert Sparks 5aacd59db0
fix: prune away unsused model and view (#7585) 2024-06-24 10:25:19 -05:00
Jennifer Richards 77f61f0f45
fix: signal rejected IPR response emails (#7584) 2024-06-24 10:22:01 -05:00
Jennifer Richards cc604a247b
fix: use system temp dir, not /a/tmp (#7581)
* chore: remove IDSUBMIT_MANUAL_STAGING_DIR

unused

* fix: use system temp dir, not /a/tmp
2024-06-21 11:34:30 -05:00
Jennifer Richards 6f4e328334
fix: remove is_secure() check (#7579)
The real work happened in a previous commit,
just nudging the patch version with this CC
message.
2024-06-21 09:50:35 -05:00
Jennifer Richards c8471d47d3
chore: remove is_secure() check (#7575) 2024-06-21 09:33:00 -05:00
Jennifer Richards 92784f9c31
feat: re-run yang checks via celery (#7558)
* refactor: yang checks -> task

* chore: add periodic task

* chore: remove run_yang_model_checks.py

* test: add tests

* refactor: populate_yang_model_dirs -> task

* chore: remove populate_yang_model_dirs.py

* chore: remove python setup from bin/daily
2024-06-18 10:42:13 -05:00
Jennifer Richards 0ac2ae12dc
refactor: don't use filesystem for group aliases (#7556)
* refactor: generate group aliases on the fly

* chore: remove group alias file check

* chore: drop group alias settings, fix lint

* refactor: rename var to hint it's ignored

* test: update tests

* refactor: move utility to utils

* test: add test

---------

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2024-06-18 08:28:09 -05:00
Jennifer Richards 6338f4594f
refactor: don't use filesystem for draft aliases (#7555)
* refactor: compute draft aliases on demand

n.b., very slow for full set of aliases

* refactor: simplify and cache email_aliases

The name != "" case is, as far as I can see, unused.

* chore: remove draft alias checks

* chore: remove draft alias/virtual settings

* chore: remove lint

* test: update tests

* test: better mocking

* refactor: move utility to utils

* test: add tests
2024-06-18 08:13:10 -05:00
Jennifer Richards 2a90447a45
fix: fewer ipr bounce alerts (#7553) 2024-06-17 16:57:56 -05:00
Jennifer Richards 35ab9bf4e4
refactor: adjust mail ingestion api (#7523) 2024-06-15 14:18:01 -05:00
Jennifer Richards 4e6abcbaad
refactor: make WG summary view into a task (#7529)
* feat: generate_wg_summary_files_task()

* refactor: wg summaries from filesys for view

* refactor: use new helper for charter views

* refactor: use FileResponse

* refactor: don't use FileResponse

FileResponse generates a StreamingHttpResponse
which brings with it differences I don't fully
understand, so let's stay with HttpResponse

* test: update view tests

* test: test_generate_wg_summary_files_task()

* chore: create PeriodicTask

N.B. that this makes it hourly instead of daily
2024-06-14 15:49:44 -05:00
Matthew Holloway c1f1e1b830
fix: Formatting blockquotes in datatrackers rendered markdown (#7500)
* Formatting blockquotes in datatrackers rendered markdown

* Blockquote default formatting, with overrides for legacy blockquote

* Removing unnecessary 'richtext' CSS class

---------

Co-authored-by: Matthew Holloway <Matthew Holloway>
2024-06-06 15:42:23 -05:00
Matthew Holloway 3e09c14a81
fix: Scroll metadata sidebar tab content (#7499)
* Scroll metadata sidebar tab content

* Increase spacing for scrollbars for browsers that allow overlapping

---------

Co-authored-by: Matthew Holloway <Matthew Holloway>
2024-06-06 13:38:14 -05:00
Robert Sparks c5aaab74b8
fix: mailman3 links for nonwg lists (#7507) 2024-06-06 13:11:54 -05:00
Jennifer Richards da0a217a8c
feat: use surname/initials for author name (#7510)
* feat: use surname/initials for author name

* test: test new method

* fix: handle case where author name is empty
2024-06-06 13:10:24 -05:00
Robert Sparks 2c75df3557
fix: correct links to early meeting proceedings. (#7492) 2024-06-04 12:57:08 -05:00
Robert Sparks ac3813f1af
fix: improve warnings on ballot issue view. Fixes #7490. (#7491) 2024-06-04 12:38:54 -05:00
Ryan Cross 99b852805b
fix: handle registration is_nomcom_volunteer = false correctly (#7484)
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2024-05-31 10:14:52 -05:00
Jennifer Richards 2ccc230ce7
feat: send_apikey_usage_emails_task() (#7486)
* feat: send_apikey_usage_emails_task

* chore: update test to use task instead of cmd

* chore: add PeriodicTask

* chore: remove old command + empty management dir

* chore: remove now-empty bin/weekly

* refactor: only consider keys that might have events

---------

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2024-05-30 08:31:25 -05:00
Jennifer Richards 020bdeb058
feat: purge_personal_api_key_events() task (#7485)
* feat: purge_personal_api_key_events() task

* feat: log number of events purged

* test: test new task

* fix: name task properly

* chore: create daily PeriodicTask

* chore: remove old management command

* chore: remove tests of old command

* test: finish removing now-empty tests.py
2024-05-30 08:23:49 -05:00
Jennifer Richards 1cdfd97937
fix: abort if output-dir is not a dir (#7478) 2024-05-28 13:22:27 -05:00
Robert Sparks 39d471d3ac
fix: better chatlog and polls links (#7466) 2024-05-28 10:35:29 -05:00
Jennifer Richards 08e953995a
feat: better reject null characters in forms (#7472)
* feat: subclass ModelMultipleChoiceField to reject nuls

* refactor: Use custom ModelMultipleChoiceField

* fix: handle value=None
2024-05-28 10:34:55 -05:00
Jennifer Richards 3c13db45fd
fix: validate form in login() (#7435)
* fix: validate form in login()

* refactor: custom LoginView subclass for logins

Preserves old behavior, but avoids some hacks.

* test: reverse with strings, not view refs

* chore: remove unused imports

* fix: restore logout() call
2024-05-24 16:36:58 -05:00
Jennifer Richards 1a2996e5f6
feat: expire submissions after 14 days (#7461)
* feat: expire submissions after 14 days

* test: update test_cancel_stale_submissions
2024-05-24 09:30:01 -05:00
Jennifer Richards a1a30974ea
fix: compare ext with leading '.' (#7458)
This allows an exception to be raised if submission
files are missing, leading to a server error. That's
not pretty, but is better than ignoring the fail.
2024-05-24 09:29:42 -05:00
Robert Sparks 720f31b6ba
feat: Add disclaimer banner for unadopted I-Ds and non-IETF RFCs (#6786)
* feat: Add disclaimer banners for unadopted I-Ds and non-IETF RFCs

Fixes #6539

* Fixes

* Add test

* Use BofreqFactory

* Fix disclaimer logic

* fix: Wording changes from stream owners

* fix: Only insert <wbr> when there isn't a space before or after (#6821)

* fix: Only insert <wbr> when there isn't a space before or after.

* Fix @cabo's issue

* fix: Remove debug info from template (#6897)

Fixes #6895

* fix: remove link to Warren's draft from disclaimer text (#7429)

---------

Co-authored-by: Lars Eggert <lars@eggert.org>
2024-05-23 10:55:21 -05:00
Jennifer Richards d5009ee794
feat: discourage URLs in Person names (#7453)
* feat: disallow @ and : in name/ascii

@ has long been disallowed via validation in the
views and "/" has been disallowed for the name
field via a validator. This adds @ and : to the
validator and applies it to the name, plain,
ascii, and ascii_short fields. This should
apply everywhere we use a ModelForm.

* test: update test

* chore: migration
2024-05-22 17:23:27 -05:00
Jennifer Richards 8315c665bd
feat: copy 1wg-charters files into place (#7431)
* feat: copy 1wg-charters* into other places

* test: update test

* test: test no-copy operation

* style: Black

* fix: Skip copy if dest is a non-dir

* chore: de-lint
2024-05-20 08:21:52 -05:00
Jennifer Richards a5f44dfafc
refactor: generate 1wg-charters files via celery (#7428)
* refactor: move helpers to utils.py

* feat: task to generate 1wg-charters files

* refactor: use 1wg-charter files in views

* chore: create periodic task + slight renaming

* chore: remove wgets from bin/hourly

* test: refactor tests for new task/views

* fix: fix bug uncovered by tests

* chore: remove unused imports

* fix: clean whitespace in draft titles

* fix: return verbatim bytes for charter views

* chore: remove now-empty /bin/hourly 🎉
2024-05-16 14:59:52 -05:00
Jennifer Richards ffb9eb12ff
refactor: generate I-D bibxml files via celery (#7426)
* refactor: task to generate_draft_bibxml_files

* test: test task/utility methods

* chore: add periodic task

* chore: remove generate_draft_bibxml_files.py

* chore: further prune /bin/hourly
2024-05-16 11:37:29 -05:00
Jennifer Richards d9c6ae7b7e
chore: remove syslog handler from settings.py (#7427)
System-level integration like this really needs
to be in settings_local. This was causing problems
when running in the dev environment.
2024-05-16 10:55:23 -05:00
Jennifer Richards 0d68646fdc
chore: suppress pyflakes check 2024-05-15 20:47:00 -03:00
Jennifer Richards 1c3825bdec
test: ensure logs only go to console during tests 2024-05-15 18:25:59 -03:00
Jennifer Richards 06b99fa64b
chore: remove unused import 2024-05-15 16:13:47 -03:00
Jennifer Richards 2b816630ef
Merge branch 'refs/heads/main' into feat/k8s
# Conflicts:
#	ietf/settings.py
#	ietf/utils/__init__.py
#	ietf/utils/log.py
2024-05-15 15:35:32 -03:00
Jennifer Richards c59d6122d9
refactor: send_nomcom_reminders via celery task (#7424)
* refactor: send_reminders.py -> celery task

* chore: add PeriodicTask

* chore: remove management command and tests
2024-05-15 13:25:15 -05:00
Jennifer Richards c9f35987bc
refactor: expire last calls via celery (#7417)
* feat: expire_last_calls_task

* feat: create periodic task for last calls

* test: test new task

* chore: remove expire-last-calls script
2024-05-15 12:04:47 -05:00
Jennifer Richards 46a00acefc
refactor: sync to RFC Editor queue via celery (#7415)
* feat: rfc_editor_queue_updates_task

* refactor: use rfc_editor_queue_updates_task()

* chore: remove now-unused scripts

* test: test new task

* chore: de-lint
2024-05-14 18:56:14 -05:00
Jennifer Richards a4e0354090
feat: get tool versions without VersionInfo model (#7418)
* feat: get tool versions without VersionInfo model

* chore: remove update_external_command_info call

* feat: get tool version without VersionInfo

* chore: Remove VersionInfo model

* chore: Migration to remove VersionInfo

* fix: handle errors better; ignore stderr

* fix: type annotation
2024-05-14 18:53:31 -05:00
Jennifer Richards 48e0aa23f5
refactor: clean up logging (#7419)
* fix: log to stdout/stderr in json format

* chore: remove UTILS_LOGGER_LEVELS

This is not used (there _is_ a setting for the
django.security logger in settings_local.py on
production, but it is redundant with the
settings.LOGGING configuration and is not doing
anything).

* chore: revert to debug_console django logging

* chore: log.log to syslog via datatracker logger

* chore: remove unused imports

---------

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2024-05-14 18:47:40 -05:00
Jennifer Richards 235ac8b2a6
refactor: idnits2 mgmt cmds -> tasks (#7421)
* feat: tasks for generate_idnits2_rfc* mgmt cmds

* chore: create periodic tasks

* chore: remove mgmt cmds from bin/hourly

* test: test new tasks

* chore: remove now-unused scripts

* refactor: unitize Idnits2SupportTests
2024-05-14 18:46:12 -05:00
Jennifer Richards 38b0b2c035 feat: get tool versions without VersionInfo model (#7393) (#7403)
* chore: remove update_external_command_info call

* feat: get tool version without VersionInfo

* chore: Remove VersionInfo model

* chore: Migration to remove VersionInfo

* fix: handle errors better; ignore stderr
2024-05-13 21:41:36 -04:00
Jennifer Richards e35b46eed8 ci: fix celery scout env var names (#7373) 2024-05-13 21:41:36 -04:00
Jennifer Richards d2623de615 feat: config celery logging via Django (#7371)
* feat: config celery logger via Django

* feat: Disable celery's logging config
2024-05-13 21:41:36 -04:00
Jennifer Richards c8ee43da95 ci: run datatracker pod as non-root user (#7366)
* feat: patch_libraries management command

* ci: Patch libraries in docker img build

* ci: non-root datatracker user

* ci: securityContext for datatracker pod
2024-05-13 21:41:36 -04:00
Jennifer Richards 253ba1dfbd fix: mypy/flakes lint 2024-05-13 21:41:36 -04:00
Jennifer Richards f58bbc3caa ci: parameterize / update settings (#7248)
* ci: parameterize gunicorn in datatracker-start.sh

* fix: typo

* ci: update settings_local for helm chart

* ci: Add todo comment

* ci: Drop redundant USE_TZ setting

* ci: Require secrets in production

* ci: fix indentation

* style: Black

* ci: memcached cfg from env in settings.py

* ci: set SITE_URL in settings.py

* refactor: /www/htpasswd -> /a/www/htpasswd

(it's a symlink on production)

* refactor: Remove obsolete SECR_ settings

* refactor: SECR_MAX_UPLOAD_SIZE -> DATATRACKER_...

* refactor: SECR_PPT2PDF_COMMAND -> PPT2PDF_COMMAND

* ci: Fix up helm/settings_local

* ci: Remove commented-out settings

* ci: Refactor/improve env var guards

* ci: More env refactoring / guards
2024-05-13 21:41:36 -04:00
Robert Sparks b36ff61805 feat: use gunicorn (#7215)
* feat: use gunicorn

* fix: let gunicorn emit logs to stdout/stderr

* fix: log to stdout/stderr in json format

* fix: run collectstatic for the local copy of the statics
2024-05-13 21:41:36 -04:00
Robert Sparks bd25bc6034
fix: improve file investigation results (#7376) 2024-05-06 07:45:36 -05:00
Nicolas Giard bfa35fb6d8
feat: add links to system status (#7286)
* feat: add links to system status

* fix: Update menu.html casing
2024-04-23 11:45:15 -05:00
Robert Sparks 6b11291216
feat: investigate file authenticity (#7331)
* feat: investigate file authenticity

* fix: use django-provided validation
2024-04-23 11:43:48 -05:00
Jennifer Richards 0616b07d2d
feat: email ingestion API (#7342)
* feat: IANA review email ingestor API

* refactor: Replace iana email api with generic one

* chore: Add type hint

* feat: Ingest ipr responses

* feat: Ingest nomcom feedback

* refactor: message -> msg

* fix: Typo

* feat: Send email on nomcom ingestion failure

* feat: Send email on IPR mail ingestion error

* feat: Check content type, handle more errs

* fix: drop additionalProperties: false

Unfortunately this does not mix well with
the conditional "year" property.

* test: Test ingest_email view

* Revert "test: Test ingest_email view"

This reverts commit e498022829f834a0d3cebcb0dafb0d5f5a5d162e.

* test: Test ingest_email view

* fix: pass new test

* test: Test ingest_review_email

* fix: Pass new test

* test: Test ipr ingest_response_email

* fix: pass new test

* test: test nomcom ingest_feedback_email

* chore: fix typo found in code reviw

* fix: De-lint
2024-04-23 09:07:50 -05:00
Robert Sparks 18e98aa899
fix: clarify comment at beginning of nonwg lists page (#7341) 2024-04-22 10:28:49 -05:00
Robert Sparks cedd58f950
feat: obviate ghostlinkd (#7336)
* wip: identify whats needed to obviate ghostlinkd

* fix: hardlink new charter files to ftp directory

* fix: hardlink new charter files to ftp directory (continued)

* chore: bring settings comment up to date

* chore: add archive and ftp dirs to setup of various environments

* fix: test charter submits write to ftp dir

* chore: remove debug

* fix: test charter approval writes to ftp dir

* fix: link review revisions into ftp dir

* fix: link to all archive and ftp on submission post

* chore: clean comments, move action to github issue

* fix: link idindex files to all archive and ftp

* chore: deflake

* chore: remove TODO comment

* fix: use settings

* chore: rename new setting
2024-04-19 16:18:52 -05:00
Robert Sparks 370c3b24ed
chore: remove alreay used on-shot import commands (#7333) 2024-04-18 10:25:02 -05:00
Jennifer Richards 2fb550ffce
feat: add room_id param to createRoom API (#7308)
* feat: add room_id param to createRoom API

* test: update tests_helpers.py
2024-04-09 11:21:35 -05:00
Jennifer Richards 279fb8565a
fix: Split up API tokens (#7294) 2024-04-05 14:03:04 -05:00
Jennifer Richards 6b4a806e42
feat: API to list role-holder addresses (#7291)
* feat: API to list role-holder addresses

* test: Test new API endpoint

* fix: role_holder_addresses gets own API token

* refactor: Move role_holder_addresses to ietf.api.views

* test: test for group.utils.role_holder_emails

* test: Clean up test_role_holder_addresses

* fix: Missed a change in urls.py

* refactor: Remove old view

* chore: Remove unused import

* chore: Remove unused import
2024-04-05 14:02:40 -05:00
Robert Sparks 864b19f21a
chore: refactor ballot search query (#7290) 2024-04-04 10:59:16 -05:00
Robert Sparks ed5e4863b9
fix: handle probes for unknown ballot ids (#7289) 2024-04-03 16:59:52 -05:00
Robert Sparks 44a5dcb023
ci: bringe the test names fixture up to date (#7251) 2024-03-26 11:29:24 -05:00
Robert Sparks a00dfc0c27
chore: remove unused submit by email functionality (#7249) 2024-03-26 09:44:49 -05:00
Jim Fenton 891c0e975d
refactor: Move document state help to /doc (#7206)
* Redirect /help/state/draft/* to /doc/help/state/draft-*

* Adjust document state index to use /doc/help/state for URLs

* Move all state help to /doc. Fixes #3802

* Move state index redirect into urls file.
2024-03-22 15:03:10 -05:00
Jennifer Richards cf21b8f236
fix: Only POST to rfceditor in production (#7241)
* fix: Only POST to rfceditor in production

* test: Test server mode checking
2024-03-20 21:43:10 -05:00
Tero Kivinen 79416cfa0a
fix: Add history line when changing the review deadline. (fixes #6598) (#7194)
* Add history line when changing the review deadline.

* chore: reduce redundancy

---------

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2024-03-20 19:05:25 -05:00
Tero Kivinen cec0e0c9d8
Make review settings history usable. (#7205) 2024-03-20 19:04:37 -05:00
Eric Vyncke faa3efd136
fix: Missing button text for PostScript (#7200)
* ci: Update build-base-app.yml workflow

* Do not list PS in build_file_urls

* Update ietf/doc/utils.py

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>

---------

Co-authored-by: Nicolas Giard <github@ngpixel.com>
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2024-03-20 18:09:47 -05:00
Rich Salz 68c3e652e0
fix: Clarify non-WG mailing list title (#7189)
Add reference to the non-WG guidelines.
Change the title to make obvious that not implying "no work is done here."

Fixes: #7059
2024-03-20 17:39:30 -05:00
Jennifer Richards c696a715c0
chore: Drop alias generation mgmt commands (#7082)
* chore: Remove generate_draft_aliases.py

Also remove test and update some now-stale help strings.
These are not very helpful, but will not exist for long
in their updated incarnation.

* chore: Remove generate_group_aliases.py

... and its test.

* chore: Remove unused import

* chore: Remove unused import
2024-03-20 17:28:24 -05:00
Sangho Na 1a9a11176f
refactor: Drop dependency on decorator package (#7199) 2024-03-16 15:57:10 -05:00
Jennifer Richards 21f467f062
test: attendance uses plain_name() (#7198) 2024-03-16 00:46:32 -05:00
Robert Sparks 3bfb9303bc
fix: appropriate metadata for editorial stream docs (#7195) 2024-03-15 23:16:09 -05:00
Rich Salz b21706ef5c
fix: Fix typo (#7193)
Fixes: #6962
2024-03-15 23:13:09 -05:00
Rich Salz a637799795
feat: More clarity in nomcom feedback, and ... (#7191)
* feat: Remove trailing period from photo title, etc

For consistency, in email and photo tooltips, remove the trailing
period.

* feat: Remove email link in NomCom feedback

Seeing "User Name {envelope}" seems to confuse people; it's two links,
not one. So don't show the envelope-icon,

Also change text to say "current nomcom" when saying who gets it.

Fixes: #7032
2024-03-15 21:44:44 -05:00
Robert Sparks e6138ca126
feat: session apis (#7173)
* feat: Show bluesheets using Attended tables (#7094)

* feat: Show bluesheets using Attended tables (#6898)

* feat: Allow users to add themselves to session attendance (#6454)

* chore: Correct copyright year

* fix: Address review comments

* fix: Don't try to generate empty bluesheets

* refactor: Complete rewrite of bluesheet.html

* refactor: Fill in a few gaps, close a few holes

- Rename the live "bluesheet" to "attendance", add some explanatory text.
- Add attendance links in materials view and pre-finalized proceedings view.
- Don't allow users to add themselves after the corrections cutoff date.

* fix: Report file-save errors to caller

* fix: Address review comments

* fix: typo

* refactor: if instead of except; refactor gently

* refactor: Rearrange logic a little, add comment

* style: Black

* refactor: auto_now_add->default to allow override

* refactor: jsonschema to validate API payload

* feat: Handle new API data format

Not yet tested except that it falls back when the old
format is used.

* test: Split test into deprecated/new version

Have not yet touched the new version

* style: Black

* test: Test new add_session_attendees API

* fix: Fix bug uncovered by test

* refactor: Refactor affiliation lookup a bit

* fix: Order bluesheet by Attended.time

* refactor: Move helpers from views.py to utils.py

* test: Test that finalize calls generate_bluesheets

* test: test_bluesheet_data()

* fix: Clean up merge

* fix: Remove debug statement

* chore: comments

* refactor: Renumber migrations

---------

Co-authored-by: Paul Selkirk <paul@painless-security.com>

* chore: Remove unused import

* style: Black

* feat: Stub session update notify API

* feat: Add order & rev to slides JSON

* style: Black

* feat: Stub actual Meetecho slide deck mgmt API

* refactor: Limit reordering to type="slides"

* chore: Remove repository from meetecho API

(API changed on their end)

* feat: update Meetecho on slide reorder

* refactor: drop pytz from meetecho.py

* chore: Remove more repository refs

* refactor: Eliminate more pytz

* test: Test add_slide_deck api

* fix: Allow 202 status code / absent Content-Type

* test: Test delete_slide_deck api

* test: Test update_slide_decks api

* refactor: sessionpresentation_set -> presentations

* test: Test send_update()

* fix: Debug send_update()

* test: ajax_reorder_slides calls Meetecho API

* test: Test SldesManager.add()

* feat: Implement SlidesManager.add()

* test: Test that ajax_add_slides... calls API

* feat: Call Meetecho API when slides added to session

* test: Test SlidesManager.delete()

* feat: Implement SlidesManager.delete()

* test: ajax_remove_slides... calls Meetecho API

* feat: Call Meetecho API when slides removed

* chore: Update docstring

* feat: rudimentary debug mode for Meetecho API

* test: remove_sessionpresentation() calls Meetecho API

* feat: Call Meetecho API from remove_sessionpresentation()

* test: upload_slides() calls Meetecho API

* style: Black

* fix: Refactor/debug upload_session_slides

Avoids double-save of a SessionPresentation for the session
being updated and updates other sessions when apply_to_all
is set (previously it only created ones that did not exist,
so rev would never be updated).

* test: Fix test bug

* feat: Call Meetecho API when uploading session slides

* fix: Only replace slides actually linked to session

* fix: Delint

Removed some type checking rather than debugging it

* fix: Send get_versionless_href() as url for slides

* test: TZ-aware timestamps, please

* chore: Add comments

* feat: Call Meetecho API in edit_sessionpresentation

* feat: Call Meetecho API in remove_sessionpresentation

* feat: Call Meetecho API from add_sessionpresentation

* fix: Set order in add_sessionpresentation

* fix: Restrict API calls to "slides" docs

* feat: Call Meetecho API on title changes

* test: Check meetecho API calls in test_revise()

* fix: better Meetecho API "order" management

* fix: no PUT if there are no slides after DELETE

* feat: Catch exceptions from SlidesManager

Don't let errors in the MeetEcho slides API interfere with
the ability to modify slides for a session.

* feat: Limit which sessions we send notifications for

* fix: handle absence of request_timeout in api config

* test: always send slide notifications in tests

* fix: save slides before sending notification (#7172)

* fix: save slides before sending notification

* style: fix indentation

It's not a bug, it's a flourish!

---------

Co-authored-by: Jennifer Richards <jennifer@staff.ietf.org>
Co-authored-by: Paul Selkirk <paul@painless-security.com>
2024-03-12 10:22:24 -05:00
Jennifer Richards 3b67d9e0fd
chore: Bump version to 12 in a couple places (#6789)
* chore: Bump version to 12 in a couple places

* ci: use semver-action to set dev major version

* feat: Extract version at runtime for dev

* fix: Use version/branch/hash vars

---------

Co-authored-by: Nicolas Giard <github@ngpixel.com>
2024-03-11 15:54:38 -05:00
Paul Selkirk 528d697ac0
refactor: Clarify which mail archive is being searched (#7117)
* refactor: Clarify which mail archive is being searched (#6993)

* refactor: Revert views_review.py, get team email directly
2024-03-11 13:13:32 -05:00
Jennifer Richards 5e8b7ad71e
fix: Do not force showAgenda when agenda_note is set (#7142) 2024-03-05 11:56:34 -06:00
Jennifer Richards 3afd6ca42f
fix: Avoid validation crash when title parsing fails (#7131)
* fix: Add guards after failed submission validation

* fix: Avoid nulling submission.title
2024-03-05 09:14:44 -06:00
Robert Sparks 7287e98709
feat: upload narrative minutes (#7125)
* feat: upload narrative minutes

* chore: cover other new URL path
2024-03-04 16:48:02 -06:00
Jennifer Richards fb84f3240e
test: Tweak test to avoid Leap Day failure (#7119)
* test: Tweak test to avoid Leap Day failure

🎉

* chore: Rephrase comment

* chore: Remove debug code
2024-02-29 12:01:46 -06:00