Commit graph

983 commits

Author SHA1 Message Date
Lars Eggert cf629a42ad And more fixes.
- Legacy-Id: 19877
2022-01-25 10:14:25 +00:00
Jennifer Richards 6f3fb6930f Add timeouts to requests library calls. Fixes #3498. Commit ready for merge.
- Legacy-Id: 19839
2022-01-13 15:06:28 +00:00
Lars Eggert a5cbf5307e More fixes
- Legacy-Id: 19835
2022-01-12 11:54:00 +00:00
Lars Eggert 8bc7fde027 More fixes.
- Legacy-Id: 19828
2022-01-11 07:02:39 +00:00
Jennifer Richards cf62b46093 Find references from submitted XML instead of rendering to text and parsing. Fixes #3342. Commit ready for merge.
- Legacy-Id: 19825
2022-01-07 17:53:23 +00:00
Lars Eggert 6fa5fa073e More fixes.
- Legacy-Id: 19812
2022-01-06 12:26:10 +00:00
Lars Eggert 5132661b06 More test fixes
- Legacy-Id: 19803
2022-01-05 11:25:25 +00:00
Robert Sparks 1d76b53215 Merged in [19788] from jennifer@painless-security.com:
Import django.conf.settings instead of ietf.settings. Fixes #3392.
 - Legacy-Id: 19798
Note: SVN reference [19788] has been migrated to Git commit ecde8a780fce609efc6539e258e57752a03aa2bd
2022-01-04 16:09:27 +00:00
Lars Eggert c68446ae93 More select2 and test fixes.
- Legacy-Id: 19781
2021-12-14 18:19:12 +00:00
Robert Sparks 9b54c9d3c9 Merged in [19763] from jennifer@painless-security.com:
Add ability to import session minutes from notes.ietf.org. Mock out calls to the requests library in tests. Call markdown library through a util method. Fixes #3489.
 - Legacy-Id: 19767
Note: SVN reference [19763] has been migrated to Git commit fd0df6f619
2021-12-09 22:43:19 +00:00
Lars Eggert e9fd78128c Interim commit
- Legacy-Id: 19765
2021-12-09 18:26:53 +00:00
Jennifer Richards fd0df6f619 Add ability to import session minutes from notes.ietf.org. Mock out calls to the requests library in tests. Call markdown library through a util method. Fixes #3489. Commit ready for merge.
- Legacy-Id: 19763
2021-12-09 17:16:19 +00:00
Lars Eggert f974fd3c04 Fix more things
- Legacy-Id: 19762
2021-12-09 06:41:00 +00:00
Robert Sparks da17e7c9a2 Merged in [19713] from lars@eggert.org:
Remove ietf/templates/iesg/scribe_template.html and related, 
    which is not used anymore according to the secretariat.
    (On merge, rjsparks@nostrum.com also removed the three other
     templates that only that one included, and removed the test
     that covered the view tht was removed).
 - Legacy-Id: 19732
Note: SVN reference [19713] has been migrated to Git commit 70420380f7
2021-12-01 22:50:13 +00:00
Robert Sparks fecdc22b8f Merged in [19694] from jennifer@painless-security.com:
Better handle invalid character encodings in process_email and feedback_email commands. Add tests of this using stdin.
 - Legacy-Id: 19724
Note: SVN reference [19694] has been migrated to Git commit dcf4251363
2021-12-01 18:41:21 +00:00
Lars Eggert 448c6dbe9e And more bs5 stuff
- Legacy-Id: 19717
2021-12-01 13:52:50 +00:00
Lars Eggert 70420380f7 Remove ietf/templates/iesg/scribe_template.html and related, which is
not used anymore according to the secretariat.

Commit ready for merge.
 - Legacy-Id: 19713
2021-11-29 17:27:06 +00:00
Lars Eggert 9e038d3e98 Bring back some additional js dependencies.
- Legacy-Id: 19707
2021-11-24 14:32:35 +00:00
Jennifer Richards dcf4251363 Better handle invalid character encodings in process_email and feedback_email commands. Add tests of this using stdin. Commit ready for merge.
- Legacy-Id: 19694
2021-11-19 00:41:05 +00:00
Jennifer Richards 99fc23d5c5 Guard against absent 'form_class' kwarg in IETFJSONField.formfield(). Commit ready for merge.
- Legacy-Id: 19683
2021-11-18 15:54:46 +00:00
Lars Eggert dec56ffb96 Merge my bs5 changes over.
There is definitely still quite some breakage, my main focus during
the conflict resolution was not to drop any changes made by others.
 - Legacy-Id: 19632
2021-11-11 13:09:23 +00:00
Lars Eggert 3716d4e95f Tweaks for bootstrap5.
- Legacy-Id: 19584
2021-11-09 14:02:11 +00:00
Lars Eggert dedbc57855 Remove djangobwr and other bower-related things.
- Legacy-Id: 19575
2021-11-09 11:29:53 +00:00
Jennifer Richards bcd37edfcd Merged from session_purpose_dev
Create dev branch for session purpose work (from revision [19414])
Snapshot of dev work to add session purpose annotation (from revision [19415])
Allow non-WG-like groups to request additional sessions/durations and bypass approval (from revision [19424])
Add 'closed' session purpose, assign purposes for nomcom groups, and update schedule editor to enforce timeslot type and allow blurring sessions by purpose (from revision [19427])
Add management command to set up timeslots/sessions for testing/demoing 'purpose' field (from revision [19430])
Update session purposes and group type -> purpose map to match notes page, change 'session' purpose to 'regular' (from revision [19433])
Redirect edit_schedule urls to edit_meeting_schedule view (from revision [19434])
Allow hiding/blurring sessions and timeslots based on TimeSlotType in the schedule editor (from revision [19438])
Disable session purpose/timeslot type hiding on schedule editor when only 0 or 1 options (from revision [19439])
Improvements to the timeslot and schedule editors (move new toggles to modals, handle overflowing session names, fix timeslot editor scrolling, add buttons to quickly create single timeslot, accept trailing slash on edit URL) (from revision [19449])
Update purpose/types after discussions, add on_agenda Session field, prevent session requests for groups with no allowed purpose, handle addition fields in session request, fix editing session requests, add session edit form/access from schedule editor, eliminate TimeSlotTypeName "private" field, add server-side timeslot type filtering to schedule editor (from revision [19549])
Eliminate the officehours timeslot type, update/renumber migrations, mark offagenda/reserved TimeSlotTypeNames as not used, add a 'none' SessionPurposeName and disallow null, update agenda filter keywords/filter helpers, fix broken tests and general debugging (from revision [19550])
Tear out old meeting schedule editor and related code (from revision [19551])
Fix merge errors in preceding commits (from revision [19556])
 - Legacy-Id: 19570
Note: SVN reference [19415] has been migrated to Git commit 1054f90873

Note: SVN reference [19424] has been migrated to Git commit 5318081608

Note: SVN reference [19427] has been migrated to Git commit 173e438aee

Note: SVN reference [19430] has been migrated to Git commit 7a2530a0a6

Note: SVN reference [19433] has been migrated to Git commit 3be50d6e39

Note: SVN reference [19434] has been migrated to Git commit 3e3d681e5f

Note: SVN reference [19438] has been migrated to Git commit b6ac3d4b1d

Note: SVN reference [19439] has been migrated to Git commit 446ac7a47e

Note: SVN reference [19449] has been migrated to Git commit 5cbe402036

Note: SVN reference [19549] has been migrated to Git commit 3dfce7b850

Note: SVN reference [19550] has been migrated to Git commit 7b35c09c40

Note: SVN reference [19551] has been migrated to Git commit d7f20342b6

Note: SVN reference [19556] has been migrated to Git commit 2b1864f5a0
2021-11-09 01:35:25 +00:00
Robert Sparks 5c28a85cf1 Merged in [19555] from jennifer@painless-security.com:
Use temporary directories instead of 'real' filesystem for tests. Fixes #3414.
 - Legacy-Id: 19561
Note: SVN reference [19555] has been migrated to Git commit 81d9234d54
2021-11-08 18:16:56 +00:00
Jennifer Richards 81d9234d54 Use temporary directories instead of "real" filesystem for tests. Fixes #3414. Commit ready for merge.
- Legacy-Id: 19555
2021-11-05 19:45:57 +00:00
nick ba7e43ec31 fix: selenium 3.x webdriver start parameter
- Legacy-Id: 19547
2021-11-04 00:46:17 +00:00
Robert Sparks 6e3718ffb5 Merged in [19497] from rjsparks@nostrum.com:
Change email copy settings.
 - Legacy-Id: 19531
Note: SVN reference [19497] has been migrated to Git commit 107b1ffdcd
2021-11-02 18:15:06 +00:00
Robert Sparks d9dc4f55e2 Merged in [19493] from jennifer@painless-security.com:
Create management command base class that sends emails on exceptions. Fixes #3356 and #3357.
 - Legacy-Id: 19527
Note: SVN reference [19493] has been migrated to Git commit 968b775315
2021-11-02 17:40:28 +00:00
Robert Sparks 59597794b7 Merged in [19432] from lars@eggert.org:
Fix things that selenium deprecated in version 4.
 - Legacy-Id: 19504
Note: SVN reference [19432] has been migrated to Git commit 715b0949cc
2021-10-29 19:53:37 +00:00
Robert Sparks 107b1ffdcd Change email copy settings. Commit ready to merge.
- Legacy-Id: 19497
2021-10-29 17:33:42 +00:00
Jennifer Richards 968b775315 Create management command base class that sends emails on exceptions. Fixes #3356 and #3357. Commit ready for merge.
- Legacy-Id: 19493
2021-10-29 01:58:21 +00:00
Jennifer Richards 5cbe402036 Improvements to the timeslot and schedule editors (move new toggles to modals, handle overflowing session names, fix timeslot editor scrolling, add buttons to quickly create single timeslot, accept trailing slash on edit URL)
- Legacy-Id: 19449
2021-10-21 14:59:02 +00:00
Jennifer Richards 1054f90873 Snapshot of dev work to add session purpose annotation
- Legacy-Id: 19415
2021-10-12 17:08:58 +00:00
Mark J. Donnelly 604d6edef0 Add a new Django field, IETFJSONField
This field is needed because the plain JSONField does not permit empty arrays - [] - or empty objects - {} - when the field is marked as required.  Those values explicitly evaluate to a null value, and are rejected.

Instead, the IETFJSONField accepts two new arguments to control this:
- empty_values: An array of values that should evaluate to null/empty, and be rejected.
- accepted_empty_values: An array of values that should *not* evaluate to null/empty, and be accepted.

This allows the programmer to specify either a positive or negative statement of what values to accept.

Fixes issue #3331.  Commit ready for merge.
 - Legacy-Id: 19401
2021-10-07 19:30:51 +00:00
Robert Sparks 9d09cedc91 Merged in [19363] from rjsparks@nostrum.com:
Tune text draft reference extractor. Fixes #3404.
 - Legacy-Id: 19371
Note: SVN reference [19363] has been migrated to Git commit 50a1e6e66b
2021-09-19 14:56:42 +00:00
Robert Sparks 50a1e6e66b Tune text draft reference extractor. Fixes #3404. Commit ready for merge.
- Legacy-Id: 19363
2021-09-14 16:44:30 +00:00
Jennifer Richards c390fe012e Use live_server_url as IDTRACKER_BASE_URL in IetfLiveServerTestCase. Fixes #3203. Commit ready for merge.
- Legacy-Id: 19353
2021-09-07 18:18:13 +00:00
Jennifer Richards 2060173f3a Improve proceedings display with new title block, configurable host logos, and additional PDF or URL materials. Fixes #3147. Commit ready for merge.
- Legacy-Id: 19306
2021-08-30 17:02:49 +00:00
Jennifer Richards 336d762123 Allow configuration of group conflict types used for each meeting Fixes #2770. Commit ready for merge.
- Legacy-Id: 19266
2021-07-30 17:50:24 +00:00
Robert Sparks 338da98661 merged forward. Gave IAB same abilities as IESG.
- Legacy-Id: 19201
2021-07-06 20:19:12 +00:00
Robert Sparks 6b383255ad Staging for merge forward
- Legacy-Id: 19199
2021-07-06 18:05:54 +00:00
Jennifer Richards 044293b4a9 Fix broken meeting materials button on upcoming meetings page. Fixes #3278. Commit ready for merge.
- Legacy-Id: 19164
2021-06-28 18:57:20 +00:00
Kesara Rathnayake 0a645fd486 Parse RFC2047 formatted text properly in submission form. Fixes #2465. Commit ready for merge.
- Legacy-Id: 19120
2021-06-14 10:46:35 +00:00
Jennifer Richards 6cf9eb8dd1 Allow secretariat to edit document author list. Fixes #3185. Commit ready for merge.
- Legacy-Id: 18989
2021-05-11 18:40:28 +00:00
Robert Sparks 6d7a0b6d0f Merged in [18939] from jennifer@painless-security.com:
Consolidate repeated searchable field code into SearchableField class. Fix single-valued searchable fields. Make javascript test config reusable. Use Django Form.media for JS/CSS inclusion. Fixes #3196, #3204.
 - Legacy-Id: 18948
Note: SVN reference [18939] has been migrated to Git commit 17d37723f7
2021-04-12 22:07:03 +00:00
Jennifer Richards 17d37723f7 Consolidate repeated searchable field code into SearchableField class. Fix single-valued searchable fields. Make javascript test config reusable. Use Django Form.media for JS/CSS inclusion. Fixes #3196, #3204. Commit ready for merge.
- Legacy-Id: 18939
2021-04-09 15:18:11 +00:00
Russ Housley 44d8caaaae Log Unicode exception instead of printing them to the console when they occur building the email alias files.
- Legacy-Id: 18909
2021-03-09 21:19:11 +00:00
Robert Sparks 3697180cc1 Reverted merge of timezone-aware migration efforts.
- Legacy-Id: 18792
2021-01-12 16:54:20 +00:00
Henrik Levkowetz 59b49c846b Fixed a number of TimeSlot-related issues, in particular related to getting the correct date from a timeslot. Also fixed the displayed slot times in the new schedule editors to show local times, not UTC times.
- Legacy-Id: 18785
2020-12-19 22:55:11 +00:00
Henrik Levkowetz a708bdf895 Refactored out a new test case DrafTestCase in order to re-use it to set up test directories with draft content, and updated the StatisticsTest to subclass it.
- Legacy-Id: 18783
2020-12-19 22:42:36 +00:00
Henrik Levkowetz 774e752a54 Snapshot of timezone-aware datatracker code. Tests pass, and the test-crawler shows only expected differences. Trunk changes merged in up to r18768.
- Legacy-Id: 18770
2020-12-16 23:53:37 +00:00
Henrik Levkowetz 9c0e215e73 Removed log noise when running in repair mode.
- Legacy-Id: 18726
2020-12-01 20:26:09 +00:00
Henrik Levkowetz 7384c03859 Merged in ^/personal/jennifer/7.17.1.dev0 from jennifer@painless-security.com:
This adds support for the simpler show/hide filtering to the ical agenda
views. It also significantly rearranges (and, I hope, improves the
organization of) the tests. In particular, it specifically tests that
the ical and HTML views include equivalent sets of events. Finally, the
agenda_filter.html template is reworked to be more modular.
 - Legacy-Id: 18631
2020-10-23 18:50:42 +00:00
Henrik Levkowetz 9cd45195ef Added timing information to the send_smtp() log entries.
- Legacy-Id: 18628
2020-10-23 13:36:44 +00:00
Jennifer Richards d67b298512 Use reworked filtering for ical agendas; refactor filter UI with office hours buttons and nicer formatting
- Legacy-Id: 18619
2020-10-16 16:06:07 +00:00
Henrik Levkowetz 020d560190 Grammar fix.
- Legacy-Id: 18562
2020-10-05 13:20:18 +00:00
Henrik Levkowetz 7d01c661f2 Merged in the agenda filtering improvements from jennifer@painless-security.com. This completely reworks the filtering of the IETF agenda, in order to not collide with page navigation and clean up a number of edge cases. It also reinstates the same kind of filtering for the upcoming meetings page.
- Legacy-Id: 18534
2020-09-30 11:39:40 +00:00
Jennifer Richards 97dd600a9b Rebase agenda customization from jennifer/7.13.1.dev0 to 7.17.1.dev0
- Legacy-Id: 18517
2020-09-24 14:27:30 +00:00
Henrik Levkowetz 51806b1964 Updated log.assertion() to provide an exception object (under Py3, it seems that logging.Logger instances ignore the traceback if there isn't also an exception object). Added a check for unset draft-iesg state to Document.set_state().
- Legacy-Id: 18503
2020-09-18 14:15:02 +00:00
Henrik Levkowetz e86bf0194b Added an assertion to catch an unexpected document state (no IESG state set). Updated the log.assertion() function to accept a "note" argument, for more informative assertion messages.
- Legacy-Id: 18479
2020-09-09 14:09:43 +00:00
Henrik Levkowetz 2355f7c0e8 Merged in [18378] from rjsparks@nostrum.com:
Improved the classification of some github related external resources. Tightened validation of new resource values.
 - Legacy-Id: 18449
Note: SVN reference [18378] has been migrated to Git commit 2b70735fd2
2020-08-31 15:21:42 +00:00
Henrik Levkowetz 16fb382943 Made the patch utility return information to distinguish already patched files from successful patch application, and modified our checks extensions to signal when patches have been applied and a ccommand needs to be re-run.
- Legacy-Id: 18386
2020-08-20 11:36:46 +00:00
Robert Sparks 2b70735fd2 Improved the classification of some github related external resources. Tightened validation of new resource values. Commit ready to merge.
- Legacy-Id: 18378
2020-08-17 23:50:22 +00:00
Henrik Levkowetz 07d60de46e Merged in /branch/iola/meeting-improvement-r17835@18048. This provides a new snapshot of the new schedule editor work, with improved edit page layout and details.
- Legacy-Id: 18358
2020-08-12 19:16:18 +00:00
Jennifer Richards ea3882034a Use querystring instead of URL hash for agenda filters
- Legacy-Id: 18353
2020-08-11 13:45:41 +00:00
Henrik Levkowetz 57938b039d Converted many cases of plain-text 403 messages to use a properly styled page instead, with a login link when appropriate. Also changed some API endpoint 400 responses to a more correct 403.
- Legacy-Id: 18339
2020-08-06 10:59:52 +00:00
Henrik Levkowetz 35c7f0fd9d Added a utility function around the PermissionDenied exception, in order to easily be able to provide relevant information to the 403 template.
- Legacy-Id: 18332
2020-07-31 12:35:00 +00:00
Robert Sparks 2b10465aa7 Convert IRTF area groups into their own group type rather than attempting to overload AG. Fixes #3027. Commit ready for merge.
- Legacy-Id: 18298
2020-07-28 18:54:44 +00:00
Henrik Levkowetz f0baae3623 Made test parts that depends on yanglint conditional. Added some informational messages about tests skipped due to missing resources.
- Legacy-Id: 18255
2020-07-24 13:43:59 +00:00
Henrik Levkowetz 606cedd796 Merged in the ExtResource work from rjsparks@nostrum.com, based on a feature request and contributions from rsalz@akamai.com. This provides external resource models for Person, Group, and Document models, as a generalisation of the previous related-URL concept. This provides a consistent labelling and classification of URLs and other resources related to a Group, Document, or Person. The GroupURL (and similar) classes will be removed in a later step. Some DocumentURL instances (such as auth48 URLs) remain to convert, as they have come in with other merged-in work while the ExtResource work was in transit.
- Legacy-Id: 18192
2020-07-20 01:58:26 +00:00
Henrik Levkowetz d8b11c4293 Removed an unused and unnecessary API endpoint, now that gather.town has gotten OpenID Connect authentication working.
- Legacy-Id: 18190
2020-07-17 19:33:15 +00:00
Henrik Levkowetz c44dd5c5ea Added support for a meeting session order_number (denoting first session for this group in the meeting, second session, etc.) when filling in URL templates with session info using the 'format' filter. Used for the Meetecho video straming url for a session.
- Legacy-Id: 18174
2020-07-15 13:08:55 +00:00
Robert Sparks 99df95d542 Cleaned up created names. Improved validation during migration. Cleaned up migration output. Cleaned the last of the awp includes from secr views. Removed now unused secr templates. Build extresource urls correctly during submission and when creating group wikis.
- Legacy-Id: 18158
2020-07-13 16:03:39 +00:00
Henrik Levkowetz 1e1f056053 Changed the subclass of lxml.html.clean.Cleaner() to adapt to changes in the superclass in v4.5.2
- Legacy-Id: 18146
2020-07-11 20:20:50 +00:00
Robert Sparks 53f7bc3ce6 migrated forward
- Legacy-Id: 18144
2020-07-09 21:07:05 +00:00
Henrik Levkowetz 1654f9319e Reworked the support for remote access urls in the agenda_note and remote_instructions fields of Session objects so as to accept any of a list of conference service domains as remote call-in URLs -- not only webex.
- Legacy-Id: 18119
2020-07-01 14:17:01 +00:00
Henrik Levkowetz 0924640676 Removed the command to purge request_profiler entries, given that request_profiler is incompatible with Django 2.2
- Legacy-Id: 18107
2020-06-30 14:34:15 +00:00
Henrik Levkowetz cb9006eb26 Changed skip messages from test suites to use print() instead of sys.stderr.write(), to match other output from the test runner.
- Legacy-Id: 18087
2020-06-27 17:32:02 +00:00
Henrik Levkowetz dc5ca4eebc Merged in Django 2.1 upgrade changes.
- Legacy-Id: 18060
2020-06-24 20:51:00 +00:00
Henrik Levkowetz 6459638fad Adjusted the code to the 2.1 attribute name change from ._size to .size in upload file objects.
- Legacy-Id: 18054
2020-06-24 20:42:05 +00:00
Robert Sparks bf53bf1057 Merged forward. Added some missing parts to the XMPPURLValidator.
- Legacy-Id: 18050
2020-06-24 19:01:45 +00:00
Henrik Levkowetz 595dcb75e9 Fixed a silly bug in [18040]. 'settings' isn't a dictionary.
- Legacy-Id: 18043
Note: SVN reference [18040] has been migrated to Git commit e1ed51b0b6
2020-06-23 21:16:02 +00:00
Henrik Levkowetz e1ed51b0b6 Fixed a logging issue when running the test crawler.
- Legacy-Id: 18040
2020-06-23 20:38:33 +00:00
Henrik Levkowetz bf230a738b Added a test suite switch to optionally show logging output. Normally this is suppressed while running tests. In production, it goes to syslog's user facility. With --show-logging, it will go to the console when running tests.
- Legacy-Id: 18010
2020-06-17 15:05:57 +00:00
Ole Laursen 8bd9e5de6e Round the debug time sum
- Legacy-Id: 17998
2020-06-16 16:48:29 +00:00
Henrik Levkowetz 3589ea2cd9 Fixed two mypy issues with utils.log code to set loggin handlers.
- Legacy-Id: 17987
2020-06-14 18:32:45 +00:00
Henrik Levkowetz 0a7648b7de Improved the handling of logger enabling entries in UTILS_LOGGER_LEVELS to set a handler if none exists for a given logger.
- Legacy-Id: 17981
2020-06-13 21:31:31 +00:00
Henrik Levkowetz cb0817175e Tweaked the showloggers command help text.
- Legacy-Id: 17979
2020-06-13 21:28:32 +00:00
Henrik Levkowetz c5f6883624 Fixed a couple of mypy errors.
- Legacy-Id: 17977
2020-06-12 22:05:03 +00:00
Henrik Levkowetz 77524a333b Added a management command to list registered loggers, in order to see which can be configured in settings_local with the UTILS_LOGGER_LEVELS settings.
- Legacy-Id: 17974
2020-06-12 15:00:15 +00:00
Henrik Levkowetz 682036321d Reorganized the python logging setup slightly, and added a possibility to configure logging levels for individual loggers in settings_local.py
- Legacy-Id: 17973
2020-06-12 14:41:41 +00:00
Henrik Levkowetz 49bf6090d0 Updated the @require_api_key decorator to not check for recent login dates for staff (which would include robots)
- Legacy-Id: 17937
2020-06-08 19:24:42 +00:00
Henrik Levkowetz 5a2a255bcb Added django urlconfig namespace support in ietf.utils.test.get_callbacks() (needed when testing the reverse lookups in templates for oidc_provider).
- Legacy-Id: 17917
2020-06-06 20:19:54 +00:00
Henrik Levkowetz cd186fa04b Tweaked patch.py for Py3 compatibility.
- Legacy-Id: 17916
2020-06-06 20:17:31 +00:00
Henrik Levkowetz 0ca29a80c2 Tweaked log.unreachable() and log.assertion() for Py3 compatibility.
- Legacy-Id: 17915
2020-06-06 20:17:04 +00:00
Robert Sparks 324be05151 added an XMPP URL validator
- Legacy-Id: 17872
2020-05-21 21:27:36 +00:00
Robert Sparks 38ba0f401d merged forward
- Legacy-Id: 17868
2020-05-21 18:30:48 +00:00
Robert Sparks 7e57be2bd3 merged forward ^/personal/rjs/explore-extref
- Legacy-Id: 17840
2020-05-19 18:47:47 +00:00
Henrik Levkowetz 3a963eaf29 Removed a future import
- Legacy-Id: 17818
2020-05-18 10:59:59 +00:00