on standard in, also when providing an emtpy string as input.
This is now different from providing 'None' as the input
argument, or omitting it.
- Legacy-Id: 6485
be able to add fixtures once and for all for all tests, instead of loading
them again and again for each test, if running on a database that supports
transaction rollbacks. In this case, fixtures specified in the perma_fixtures
class attribute will be loaded permanently, and not re-loaded. Fixtures
specifice as before, in a fixtures class attribute, will be treated as
before.
The downside of this is that as fixtures are loaded and not unloaded, they
can conflict with each other. The requirements on consistency becomes much
greater. The effect of this has been to require quite a bit of changes to
the simplified creations of various objects in make_test_data() in cases
where identically named objects occur in fixtures. Where completely
fictitious objects are created, no conflicts appear.
Also re-wrote parts of test_runner.py to permit global fixtures, loaded
before any tests are run and shared by all.
- Legacy-Id: 6318
Added support and scripts for generation of wg- and draft-aliases. Fixes issue #713.
- Legacy-Id: 5937
Note: SVN reference [5902] has been migrated to Git commit e5b551f4ce
Note: SVN reference [5904] has been migrated to Git commit e68e51cc55
(-r5465:HEAD from branch/iola/shimfree). Copying relevant
commit messages here:
- Deleted dead code in many places.
- Renamed id-something to draft-something, make the "is
this eligible for expiration" logic clearer
- Added a name for IPR search URL
- Revamped the ballot popup view
- URL reversed the IPR search link instead of hardcoding it
- Cleaned up search views and remove dead code, port them to the new DB
schema, hack related views in iesg/ and wginfo/ to use the new search
interfaces, avoid camelCase in search GET parameters (with
backwards-compat fallback), add some simple search unit tests, remove
caching from views_search.py index pages as they're now pretty fast to
generate, rewrite ballot popup JS, regularize some CSS classes to use
hyphen-notation rather than camelCase, move some of the search
templates to doc/.
idrfc/ now mostly contains some wrapper code still in use by other
subdirs, some ported code not yet moved, and dead code.
- Fixed output bug in test crawler and print referrer upon errors so it's
easier to figure out where a link came from
- Added /doc/in-last-call/ to crawler, report original page as referrer in
a redirect chain rather than intermediate URL
- Ported idindex to new schema, speed them up, add tests, refactor index
page in views_search to share code with the text index file, get rid
of some special-case idindex filters from ietf_filters, move
"/drafts/" redirects to a file in /doc/
- Ported /idtracker/status/ and /idtracker/status/last-call/ overview of
drafts in IESG process to new schema in /doc/iesg/ and
/doc/iesg/last-call/
- Added redirects for all of /idtracker/*, removed all view code and other
dead code from idtracker/
- Removed the idtracker sitemap indexing drafts - in its current form,
it adds nothing of value to the HTML-based /doc/all/ view, and it's
pretty slow
- Ported idtracker feeds to new schema, move them to doc/, cleaned up
idtracker/ - only templatetags/ietf_filters and proxy code is left
- Legacy-Id: 5836
(-r5194:5465 from branch/iola/shimfree). Copying relevant
commit messages here:
- Removed .related many to many relationship, it's not really useful
since we always have to restrict on the relationship type anyway,
instead add two helpers for doing the necessary queries (in both
directions)
- Added migration for transforming the .desc on the new_revision events
into something more akin to what is actually shown in the history page
- Added migration for blanking IESG notes that just consist of "RFC
XXXX", these have been superfluous for some time
- Grant stream chairs access to changing the stream on a draft
- Hacked the format_history_text filter to be less weird, using the same
formatting for snippets and full text, also link up legacy ballot set
events
- Moved the decoraters + utilities to new ietfauth/utils.py file
- Added simple helper to Email to identify invalid email addresses (from
legacy author entries)
- Used new new_revision .desc format for when drafts are submitted
- Improved the looks of the button class by adding extra contrast and a
linear gradient. Currently the gradient is only visible in fairly
recent browsers.
- Rewrote draft and RFC tabs in terms of the new schema, porting
write-up and history tabs as well
- Fixed two bugs in RFC Editor syncing: make sure documents we don't know
beforehand get a "draft" type and make sure individually submitted
drafts get the type="individ" group instead of NULL
- Made the CSS-styled button feel a bit nicer to use by flattening the
active state, also introduce some temporary styles until browsers
catch up with the standard syntax
- Added migrations for fixing 1) a dummy RFC entry, 2) three stand-alone
RFCs that didn't get their doc.type set, 3) a big bunch of historic
stand-alone RFCs that have doc.group=None - set these to the
individual submission "none" group for the time being so the view code
doesn't have to deal with a special case.
In some cases this is wrong since there actually was a WG associated
but unfortunately fixing them properly requires detective work
(probably parsing the RFCs) and in at least some cases recreating
historic WGs. In case someone ends up doing this, the documents to
check can still be found with
Document.objects.filter(name__startswith="rfc", group__type="individ")
since there are almost no new RFCs that didn't went through the I-D
process.
- Merged the I-D and RFC views by showing I-D information on RFCs too.
I-Ds that have been published as RFCs redirect to the RFC URL. Also
support alias URLs so e.g. /doc/bcpXXXX redirects to /doc/rfcXXXX.
- Fixed revision augmentation so events after RFC publication gets a "RFC"
designation
- Fixed a bug with tabs not using provided name but rather doc.name
- Displaying draft-iesg state rather than doc.friendly_state as IESG state,
also show a notice that the IESG state refers to post-RFC processing
if it does, like the old separate RFC page did
- Fixed the RFC number doc.note migration to catch combined "RFC XXX; BCP
XXX" notes too, use the opportunity to remove inserted HTML tags from
notes and rely on linebreaksbr filter instead (the other thing was a
left-over from the Perl days), update the various uses of the note to
reflect that
- Refactored slightly to make views_doc.py independent of other idrfc code
- Moveed idrfc/views_doc.py to doc/ with associated templates, replace the
somewhat fragile simple URL tests for views_doc.py with ordinary unit
tests. The new tests are still fairly basic but at least test more
than the URL tests did.
- Made sure RFC's (and BCP/STD/FYI) are stored as RFC123 instead of
RFC0123 in the alias table with a new migration and a change to the
RFC Editor sync, this in turn makes /doc/std1/ do the right thing
- Now /doc/std1/ works, we can actually do a local link in
urlize_ietf_docs rather than linking to the tools.ietf.org server
- Fixed history text formatter: sanitize HTML before adding linebreaks and
non-breaking spaces, this cuts the time to render a history page with
long comments in half
- Added a test crawler that walks through the crawlable part of the site,
reporting errors and slow pages
- Got rid of initial "No record" positions when showing old positions,
it's just noise
- Added a .select_related() to the document main tab to reduce the number
of DB queries, unfortunately it seems it doesn't really help with
Django 1.2.x due to a bug (Document inherits from DocumentInfo which
makes things a bit more complicated)
- Introduced a simple cache in doc.get_state so repeated reads don't
cause a DB query
- Cleaned up the search code in preparation for removal of the shim-layer;
use a static button and don't send extraneous GET parameters
- Removed dead code in several places
- Legacy-Id: 5830
(for instance with InnoDB).
Added settings.DATABASE_TEST_OPTIONS which can be used to force for instance
InnoDB use during testing.
Using this has the potential of reducing the time it takes to run the test
suite substantially; a few test runs indicate a reduction in test run time by
50% on a run-of-the-mill linux server.
- Legacy-Id: 5823
Added a Cancel button to the form that allows editing the relations for status-change documents
Added instructions to the agenda section 3.3
This adds states to status-change- documents and has a migration that must be applied.
This fixes bug #1039
- Legacy-Id: 5770
Changed the header to last call messages to IETF Announce and to IANA to make
replying to the announcement less likely to create an unnecessary ticket.
- Legacy-Id: 5652
Note: SVN reference [5602] has been migrated to Git commit 19dcf10316
page in views_search to share code with the text index file, get rid
of some special-case idindex filters from ietf_filters, move
"/drafts/" redirects to a file in /doc/
- Legacy-Id: 5634
* Added a document type for changing the publication status of other documents, and the UI for manipulating them.
* Added charters, conflict reviews, and status changes to the AD's \'My Documents\' page
* Improved the presentation of all document types on the Agenda, Future Telechats, Scribe and Moderator package pages
* Made the reverse name for document relationships explicit rather than deriving them from forward names
* Added a way to get to the underlying Document (when it exists) from an RfcWrapper
* Unified several common forms used by different document types
- Legacy-Id: 5629
Note: SVN reference [5476] has been migrated to Git commit 10b4f7a4dc
* Added charters, conflict reviews, and status changes to the AD's "My Documents" page
* Improved the presentation of all document types on the Agenda, Future Telechats, Scribe and Moderator package pages
* Made the reverse name for document relationships explicit rather than deriving them from forward names
* Added a way to get to the underlying Document (when it exists) from an RfcWrapper
* Unified several common forms used by different document types
- Legacy-Id: 5476
somewhat fragile simple URL tests for views_doc.py with ordinary unit
tests. The new tests are still fairly basic but at least test more
than the URL tests did.
- Legacy-Id: 5295
* Create a new models NomComGroup with public_key field. Default type is nomcom
* News urls and views to separate members and chair forms
* Add rolodex url when person not found.
* Views access is only for secretariat and chair roles
See #904
- Legacy-Id: 5069
Made it more obvious when an intended status or shepherding AD is not set
Removed an unused template
Show reset approval text immediately.
Fixes bug #900
- Legacy-Id: 5015
Note: SVN reference [5000] has been migrated to Git commit 2470ad77dd
Fixing time column wrapping problem that exhibits in (at least) Safari.
- Legacy-Id: 5008
Note: SVN reference [4991] has been migrated to Git commit 5e384591fd
Datatracker, add page for editing IANA states, add more info to the
/doc/draft-XXXXX/doc.json dump for the RFC Editor, add page for
editing consensus, add page for requesting publication at the RFC
Editor for alternate streams (this will email the RFC Editor and set
the draft in the appropriate state), make it possible for alternate
streams to change the intended RFC status of a draft in the stream,
refactor how IANA copies are handled slightly so it's less code, put
drafts automatically in IANA Review "Need Review" state upon last
call, fix a bug in ballot issuing, remove a bit of dead code
- Legacy-Id: 4857
discrepancies report for seeing differences between the
Datatracker/RFC Editor/IANA, add tests of IANA/RFC Editor integration,
add script for weekly discrepancies emails
- Legacy-Id: 4851
* Adds a new document type for conflict reviews, with a ballot for the IESG 5742 response to a review request
* Integrated the new document type into the iESG agenda views (including RSS feeds)* Removed the Edit and Add buttons from the document main view.
* Replaced Add with actions appropriate for the document type, such as "Begin IESG Processing" or "Begin IETF Conflict Review", and made most data directly editable on the document's main page, depending on access permissions.
* Removed a manual editing step that the secretariat had to perform when sending conflict review messages. The view now composes the message correctly given the stream.
* Added a pencil icon motif to differentiate fields that are editable.
* Generalized several views and helper functions to use Document instead of (e.g.) IdWrapper
* Generalized reading documents from the repository
* Added a way to get from IdWrapper to the underlying Document to facilitate migrating way from the Wrapper classes* Added many helpers to Document to assist with migrating off IdWrapper
* Minor fixes and other changes
* Fixes to document main view to avoid (silent) template failures.
* Began removing some of the code that is no longer reachable post-migration * Corrected the behavior of the undefer code and added test cases for it
* Improved initial population of notification lists and added the ability to regenerate the initial list
* Made the test code that scans for template coverage more robust
* Deployment notes:
* new setting: CONFLICT_REVIEW_PATH. The associated directory will need to be created
This branch fixes bugs #805, #744 and #812
- Legacy-Id: 4652
Note: SVN reference [4600] has been migrated to Git commit 798e7a50e7
New features (keep in mind that utils/draft.py can be run standalone
to do extraction of draft author data, too):
* The handling of author info formatted in columns causes problems
in the face of an author named for instance A. Author with the
company 'Al Author and Associates', causing breakage of email
addresses longer than 'Al Author and'. Tweaked the recognition
of column data to require multiple (not only one) space around
'and'.
* Added support for extraction of author affiliation.
* Tweaked the meaning of -t, --timestamp and added --notimestamp; and
made the default be to emit leading timestamps based ont the draft
file time.
* Added support for running author extraction on RFCs, by not bailing
out on not finding a draft name when RFC information is available.
* Added support for additional date formats and author name formats.
* Improved creation date extraction -- previously, the first supported
date format which was recognized on the first page of the draft would
be used, rather than the first date in a supported format. This could
cause errors if the Status of Memo section or Abstract contained a
date occurring at the start of a line.
* Tweaked the honorific regex to make things work better for the case
when the full name in the author's address section includes a first
name which isn't part of the first-page abbreviated name. Fixes
problems with draft-chiappa-lisp-introduction and similar.
* Added a special case for people who provide their email address as
'foo&cisco.com' instead of 'foo@cisco.com'. Bah.
* Added an alternative, more human-readable key-value-pair attribute
output mode with a '-a' switch.
* Tweaded the first-name regex to capture cases where the first name
is indicated with an alternate first letter: 'Y(J) Stein'. Fixes
problems with draft-anavi-tdmoip and similar.
- Legacy-Id: 4612
currently active, otherwise we can't see from the return value whether
a given time predates the history set. The downside is that the caller
may now need to check whether it got a history object or the same
object back.
- Legacy-Id: 4560
recognizable author's address section, and not searching for
author names earlier in the document if found. Fixes a known
bad case where the author name occurred in the middle of a draft.
* Added handling for the case where an author name is followed by
parentheses which are not closed on the same line.
* Some refactoring.
- Legacy-Id: 3417
Addresses issue #628, using reverse() and the newly created helper function
reverse_lazy() (found in ietf/utils/lazy.py) to DRY out the code a bit by
decoupling the urls from being hardcoded.
With this commit idrfc, and ipr modules have been modified to take advantage
of the reverse() and reverse_lazy() functions.
- Legacy-Id: 2956
Note: SVN reference [2948] has been migrated to Git commit 9399a2e0e8bbfe5c5a16781fd784776cfa31fbac
information: draft.get_author_info(). This method returns a list of
(full_name, first_name, middle_part, surname, suffix, email), with
middle_part, suffix and email set to None if none was found.
- Legacy-Id: 2921
to Yaco on 2011-03-19, and committed on branch/yaco/idsubmit as [2896].
* Extraction of Title which don't have the draft name on a separate
page fails. See for instance this example:
http://www.ietf.org/staging/draft-ma-cdni-publisher-use-cases-00.txt
The regex should maybe be updated to permit but not require a newline
before the draft filename:
'(?:\n\s*\n\s*)((.+\n){1,2}(.+\n?))(\s+<?draft-\S+\s*\n)\s*\n'
* If there are blank lines before the start of the author list on the
first page, the author extraction will fail. This sometimes happens
when there's junk at the start of a draft, see for instance
http://www.ietf.org/id/draft-ietf-mpls-tp-process-00.txt .
* Sometimes the Authors' Addresses section lists authors with the same
workplace address on the same line: "Sam Spade and Joe Smith". This
needs a fix in the author extraction code.
* Sometimes the order of first name, surname is different on the first
page and in the author list, and sometimes the surname is uppercase
in one place, but not in the other. This also needs a fix in the
author extraction code.
* The header stripping code had a bug, where multiple blank lines could
be replaced by a single blank line in the stripped text, which could
mess up title extraction.
* Title space normalization should be done also for titles from the
'unusual title format' code branch of the title extraction code.
* Company names on the first page are sometimes rendered with different
case than in the Authors' Addresses section.
* Some drafts list the draft filename _before_ the title, rather than
after the title. Permit this too. Covered in the patch.
* Spanish names can be shown as either
<given_name> <fathers_first_surname> <mothers_first_surname>
or less formally as
<given_name> <fathers_first_surname>
If the first form is used in the Authors' Addresses section, but the
second form (with the given name possibly abbreviated to its first
letter) the author extraction will fail.
* Drafts containing tabs will be caught by idnits during I-D submission,
but in case the drafts.py module is used independently from idnits,
convert tabs to spaces in order for the author extraction and other
methods to work as expected. Example: recently submitted draft
draft-bergeron-payload-rtpfec-rs-00.txt.
* Found a draft with a previously unhandled header/footer format:
draft-fang-mpls-tp-oam-toolset-01.txt. Tweak needed for header/footer
stripping.
- Legacy-Id: 2919
Note: SVN reference [2896] has been migrated to Git commit 5a34b70e52
Fill in the X-IETF-IDTracker header with the
I-D Tracker version number. This fixes#513
- Legacy-Id: 2647
Note: SVN reference [2644] has been migrated to Git commit 77a401f7eb3f06427d3cfae81ec71e4277d828cc
Add regression tests (and accompanying test mode) for utils.mail.
Fixes#538
- Legacy-Id: 2645
Note: SVN reference [2639] has been migrated to Git commit 14de6870df426f18afaf90af2c74a5009cca3c1f
Fixed a bug that was preventing CC/BCC from being honored. Fixes issue #528.
- Legacy-Id: 2623
Note: SVN reference [2604] has been migrated to Git commit 4d27ae4d7a535fb7c9cb44dd0d486a0f5850b1b1
closing <li> tags. BeautifulSoup can handle it, but the recursive text
rendering code in soup2text recurses too deeply with a sufficiently long
list...
* ietf/tests.py, in setUp(): grab the right tuple element when extracting
the URLs from the url test tuples
* ietf/tests.py, in read_testurls(): close opened file
* ietf/tests.py, in doUrlsTest(): narrower try/except clause, and a new one
* soup2text.py, in para(): undo previous change
- Legacy-Id: 304
of <p /> to indicate paragraph breaks.
This changes the failed diff for /iesg/telechat/detail/354/ to show only three
differences, where two are whitespace differences and one shows a difference
between '@ietf.org. The' and '@ietf.org . The' and is an artifact of the text
extraction. Will look at fixing that next.
- Legacy-Id: 300
- SQLLogMiddleware. This logs any INSERT or UPDATE performed by
a request.
- SMTPExceptionMiddleware. This renders a "please try again"
(template email_failed.html) message when an attempt to send
email failed. This uses a bit of a hack, in that the middleware
looks explicitly for smtplib.SMTPException, and smtplib can
raise other exceptions (particularly socket errors). utils/mail/send_smtp
catches all exceptions and reraises non-smtplib exceptions as
fake smtplib exceptions, and the middleware undoes the wrapping.
- Legacy-Id: 224
bits of configuration (e.g., mail server, any authentication required,
etc.) It has different behavior based on the setting of the
SERVER_MODE setting:
- 'development' or 'test': the message will be sent as an attachment
to ietf.tracker.archive+SERVER_MODE@gmail.com; the actual destination
supplied won't be used.
- 'production': the message will be sent to the addressees and a
copy sent to ietf.tracker.archive+production@gmail.com .
There are several functions to call, depending on what you want
to pass:
- send_mail_text() takes a request, "To:" list, From header (or None
to default), Subject text, Body text, an optional Cc: list, and
an optional dict with extra headers.
- send_mail() takes a template and a context instead of the body text,
and renders the template with the given context.
- send_mail_subj() takes a template for the subject as well as for the
body. It uses the same context to render both templates.
- Legacy-Id: 159
callback to provide a RegexpField class.
* Added checkbox for submitter contact information being the same as
IETF contact information; with javascript support and validation
support.
* Cleaned out the old split_form() and mk_formatting_form() functions from
ietf.utils.
- Legacy-Id: 138
utilities into separate files.
* Added a log() function in ietf/utils. It uses syslog, but adds some
information about where it was called from.
- Legacy-Id: 130