Commits on Feb 19, 2017
  1. Encode meeting passwords in an URL safe way

    We don't use them in an URL, but getting a / or a + in the middle of the
    password prevents "easy copy and paste", so we can make things a bit
    easier for the user by using this.
    committed Feb 19, 2017
Commits on Feb 18, 2017
  1. Update for new board positions

    committed Feb 18, 2017
  2. Add markdown support to

    Support was present in the main website code, but not,
    making it less useful.
    This adds a dependency to the standalone use of for
    markdown, but that should be trivial enough that it's not a problem.
    Patch mostly from Stephen Frost
    committed Feb 18, 2017
Commits on Jan 31, 2017
  1. Show which VAT rates were used on the refund page

    Shortcut when refunding simple invoices
    committed Jan 31, 2017
  2. Show total without VAT on refund page

    We still show the full total as well, but being able to see the total
    both with and without VAT makes calculating the refunds easier.
    committed Jan 31, 2017
  3. Remove registrations after an invoice is refunded

    Previously we just unconfirmed them, which made sense before we had
    reminders. But now that we have reminders, somebody who canceled their
    attendance and had the invoice refunded would end up getting reminders
    to complete their registration.
    committed Jan 31, 2017
  4. Implement support for VAT in refunds

    The actual VAT calculation will have to be done manually when
    a partial refund is done, since we can mix VAT amounts. This
    is unlikely to happen though, and refunds in general are quite
    uncommon, so we'll live with it.
    In passing, implement a nicer looking refund notice since we
    need to have VAT on it, including adding to the refund
    notice that the payment was returned to the original form of
    payment, as well as a hint to what that method was (including
    the type of credit card when available).
    NOTE! This makes an incompatible change to the PDF refund API,
    the same way that 5c2989d did for invoices. If VAT is not used,
    nothing other than just accepting the parameters and ignoring
    them is required.
    committed Jan 31, 2017
  5. Add API to get payment method actually used for invoices

    This new API allows the system to not just return "Credit Card", but
    instead "Credit Card (amex)" when more details are available.
    committed Jan 31, 2017
Commits on Jan 28, 2017
  1. Fix CSS class typo

    committed Jan 28, 2017
  2. Handle conference responses without conference

    This can happen for example with the speaker profile. We should probably
    get rid of the support for this at some point, but for now it should at
    least not cause an exception.
    committed Jan 28, 2017
Commits on Jan 26, 2017
  1. Add missing namespace references

    Broken in earlier refactoring
    committed Jan 26, 2017
Commits on Jan 25, 2017
  1. Use InvoicePresentationWrapper for bulk payment invoices

    This case was clearly missed in the earlier pass.
    committed Jan 25, 2017
Commits on Jan 24, 2017
  1. Fix syntax error in template

    committed Jan 24, 2017
Commits on Jan 23, 2017
  1. Fix mis-copy/paste in headline

    committed Jan 23, 2017
  2. Add ability to dump schedule data as json

    This is only available to conference admins. The idea is to be able to
    test schedules locally using deploystatic, by feeding this schedule data
    into the context.override.json file.
    committed Jan 23, 2017
  3. Add datetimeformat and slugify filters

    slugify already existed in the backend but was missing in deploystatic.
    datetimeformat performs strftime() if the passed value is a date or time
    object, and converts it to such an object to do strftime() on it if it
    is not.
    committed Jan 23, 2017
  4. Add support for static deployment directly from a git branch

    This avoids needing one repo cloned for each branch for returning
    conferences (which is most of them).
    committed Jan 21, 2017
Commits on Jan 21, 2017
  1. Convert sessionset to a list

    If it's a generator you can only loop over it once, and some templates
    need it twice (such as pgopen).
    committed Jan 21, 2017
Commits on Jan 20, 2017
  1. Add support for rendering badges using jinja/json

    Instead of having to write badges as python code (with all the
    implications that had - such as not letting outsiders have access
    to them for security reasons), they can now be written in JSON using
    Jinja templates to insert replacement variables and write simpler logic.
    JSON based badges are loaded from badge.json in the directory containing
    the conference jinja templates. Images used are all loaded from the
    static directory in the same enforced structure.
    If Jinja templates are enabled for conference pages, they are
    automatically enabled for badges as well - there is no support for
    combining the two different ways in the same conference.
    committed Jan 15, 2017
  2. Add JSON output format for attendee reports

    This will be used together with the new badge rendering framework, but
    can also be used indepdently.
    To implement this, add concept of a "safe export" of registrations that
    generate a dict structure (that is later exported as json) with the data
    from a conference registration and attached objects that are safe to
    export this way.
    committed Jan 15, 2017
  3. Add admin interface safeguard for jinjatemplates

    This ensures that you can't specify both jinja templates and django
    templates for the same conference, or break things by accidentally
    putting a space in the field for it.
    committed Jan 11, 2017
  4. Implement jinja2 based templating for confreg

    This implements the ability to render confreg templates (registration,
    cfp, schedules etc etc) using jinja2 instead of django templates. The
    important difference is that these templates are rendered in a complete
    sandbox, so they cannot reach into other parts of the system by
    exploiting connected objects or by including templates they are not
    supposed to.
    Jinja templates are used whenever the "jinjadir" variable is set on a
    conference. When it is, the variables for basetemplate, templatemodule,
    templateoverride and templatemediabase are all ignored, as their
    functionality is either no longer needed or implemented in a different
    way using the templates.
    For the time being we support both the old (django based) templates and
    the new (jinja based) templates. That means that any changes made to the
    confreg templates must be done twice. At some point not too far in the
    future we should decide to either desupport old conferences that have
    the old style templates, or re-render those as static. (For closed
    conferences most pages aren't reachable anyway, but things like
    schedule and session descriptions are reachable way past the end of
    a conference)
    Along with the templates come a new command called "",
    which runs outside the django environment. This command can be used for
    deployment of static sites based on the jinja templates, similar to how
    some conference sites have done it before. Since the templates run in a
    sandbox, this should be much more safe than what's been done before, and
    therefor access can be granted to more people. This command is made to
    run standalone so conference template developers can run it locally
    without having to install full support for django.
    committed Jan 11, 2017
  5. Remove dead code

    committed Jan 9, 2017
  6. Create propery for has_recipient_user instead of accessing recipient_…

    This will make it possible to wrap it in a proper sandbox
    committed Jan 9, 2017
  7. Import all old templates into the jinja format

    This will be used to build a sandboxed template support for confreg
    committed Jan 7, 2017
Commits on Jan 18, 2017
  1. Implement talk slot copying between conferences

    Seems I forgot this in the initial commit, it was supposed to be the
    easy part...
    committed Jan 18, 2017
Commits on Jan 7, 2017
  1. Remove text with incorrect amount

    Amount was not VAT adapted. But it turns out it wasn't necessarily
    always correct anyway, if you resubmitted the form. So just remove it
    for now - and if we add it back, we need to do it in a full two-step
    operation like for registrations.
    committed Jan 7, 2017
  2. Make speaker records searchable in /admin/

    Requested by ads
    committed Jan 7, 2017