ballot sets are now (hopefully) treated properly, except for the
row coloring. They're also included in the "view_id" view.
Search is re-done, it turns out that using draft__<anything> means
that RFCs won't be matched, so build lists of possibly-matching
RFCs and I-Ds and pass them through. This applies to filename,
group and rfc number.
- Legacy-Id: 190
(Oddly, this status_of_items shows more than the cgi one; I can't
explain why. Also, the cgi one showed the wrong intended status
for RFCs, and the wrong area for several documents.)
- Legacy-Id: 186
* Add a new method, affiliation to idtracker/models.py, in class PersonOrOrgInfo
* Agenda for the Plenaries should be stored in /home/master-site/proceedings directory to be displayed.
* Bug found in listing ADs at the end of the agenda. An agenda always lists the current IESG instead of the IESG at each meeting. Bug is fixed in the ported tool.
* meeting_agenda_text.cgi was obsolete, but ported anyway in case someone still has it bookmarked.
- Legacy-Id: 182
in (unless it's a forced login) will be the (incomplete) "my" view.
Username and logout link are in the upper right corner while logged
in.
- Legacy-Id: 163
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
Closing the ipr_generic.cgi ticket, but leaving ipr.cgi and notify.cgi open
till further testing has been done. Also adding a new task for the IPR
update form.
There may still be some dead code to clean out, but I'm committing what
I have now since it provides working form submission :-)
- Legacy-Id: 158
Expand the sessions() helper function in MeetingTime to iterate over
the sessions and set the room_id helper attribute to the correct room.
This means that for the list returned by sessions(), s.room_id is the
correct room for this time. It also changes the return value from
a QuerySet to a list, so you can't filter it further like a QuerySet -
but I don't think anything is using this functionality.
I didn't do the same for combined_sessions because I don't actually
know what that's used for - if it should be part of sessions, or
if it's even used.
- Legacy-Id: 157
on failure (DoesNotExist instead of IndexError).
Call the database query once and store it in a temp variable instead
of doing the same query twice.
Handle day_id=NULL for the morning beverages/breakfast time.
Use the DoesNotExist exception instead of a generic except: for
the area - except: is likely to hide things that you didn't expect.
- Legacy-Id: 156
couple of aspects:
- ietfauth.auth.EmailBackEnd is a django.contrib.auth backend to allow
two modified authentication methods:
- using email address (stored in django user table) as login username
- using htpasswd-style "crypt" passwords (for compatability with
existing user database). On the first successful login, the
password will be re-hashed to the django-hash style password.
- ietfauth.models.UserMap: a mapping from django user to IETF
person. This is configured as the profile table, meaning
that if you have a django user (e.g., from the RequestContext),
you can use user.get_profile.person to get to the IETF person.
- ietfauth.models has models for the "legacy" username/person mapping
tables (LiaisonUser aka "users" and WgPassword aka "wg_password").
This is to allow mapping of legacy permissions to django permissions
by walking these tables and applying permissions to users. The plan
is to discard these tables eventually.
- Legacy-Id: 155
which means we need to look up area_acronym, but that's also a foreign
key, so again we look up the value we want: acronym. Simply doing
dictsort in the template on area would sort on the FK, I assume --
at least it didn't resolve things to 3 levels, each time looking up the
key we were interested in...
- Legacy-Id: 151
Given the number of kwargs that some constructors take, perhaps the
better thing would be to be able to say "this field gets these
kwargs", so we could instead pass something like
other = { 'foo': {'queryset': Foo.objects.all()}, 'bar': {'fwip': 'baz'} }.
- Legacy-Id: 147