Changes in / [d604f81:7fb28a0]


Ignore:
Files:
4 added
2 deleted
18 edited

Legend:

Unmodified
Added
Removed
  • .gitignore

    r09b7c26 rc386673  
    33django-treebeard-1.1/
    44django-treebeard-1.1.tar.gz
    5 local_settings.py
    6 local_settings_after.py
     5remit/settings/local.py
     6remit/settings/local_after.py
    77database_settings
    88client/settings.py
  • remit/finance_core/migrations/0004_socket_auth_password.py

    r38843de r75ccc48  
    33from south.db import db
    44from south.v2 import DataMigration
    5 from django.contrib.auth.hashers import UNUSABLE_PASSWORD
     5import django.contrib.auth.hashers
    66from django.db import models
     7from django.db.models import F
    78
    89class Migration(DataMigration):
     
    1112        "Write your forwards methods here."
    1213        issues = orm['auth.user'].objects.filter(password__in=['', 'SocketAuth'])
    13         issues.update(password=UNUSABLE_PASSWORD)
     14        try: # pre-1.6
     15            new_password = django.contrib.auth.hashers.UNUSABLE_PASSWORD
     16        except AttributeError: # post-1.6
     17            # See https://code.djangoproject.com/ticket/20079 for details on the change.
     18            # Ideally, we'd use a different suffix per user, but I don't want
     19            # to deal with that, and this is probably acceptably secure.
     20            #
     21            # Also, it seems a little unlikely that this code will actually
     22            # run -- it requires an install that hasn't already run the
     23            # migration (notably, esp.mit.edu has already), but *does* have
     24            # accounts with SocketAuth passwords.
     25            prefix = django.contrib.auth.hashers.UNUSABLE_PASSWORD_PREFIX
     26            suffix = django.contrib.auth.hashers.get_random_string(django.contrib.auth.hashers.UNUSABLE_PASSWORD_SUFFIX_LENGTH)
     27            new_password = prefix + F("password") + prefix + suffix
     28        issues.update(password=new_password)
    1429
    1530    def backwards(self, orm):
  • remit/finance_core/urls.py

    red4ccc7 rff623c3  
    1 from django.conf.urls.defaults import *
     1from django.conf.urls import patterns, include, url
    22import finance_core.views
    33
  • remit/manage.py

    r92ca60e r5c334f6  
    1 #!/usr/bin/python
    2 from django.core.management import execute_manager
    3 try:
    4     import settings # Assumed to be in the same directory.
    5 except ImportError:
    6     import sys
    7     sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__)
    8     sys.exit(1)
     1#!/usr/bin/env python
     2import os
     3import sys
    94
    105if __name__ == "__main__":
    11     execute_manager(settings)
     6    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
     7
     8    from django.core.management import execute_from_command_line
     9
     10    execute_from_command_line(sys.argv)
  • remit/remit_templates/base.html

    rc3e751d r695d358  
     1{% load url from future %}
    12<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    23
     
    1415  <body>
    1516    <ul class='tab-navigation'>
    16         <li{% ifequal pagename "homepage" %} class='selected'{% endifequal %}><a href="{% url homepage %}">Home</a></li>
    17         <li{% ifequal pagename "request_reimbursement" %} class='selected'{% endifequal %}><a href="{% url request_reimbursement %}">Request reimbursement</a></li>
    18         <li{% ifequal pagename "list_requests" %} class='selected'{% endifequal %}><a href="{% url list_requests %}">List requests</a></li>
     17        <li{% ifequal pagename "homepage" %} class='selected'{% endifequal %}><a href="{% url "homepage" %}">Home</a></li>
     18        <li{% ifequal pagename "request_reimbursement" %} class='selected'{% endifequal %}><a href="{% url "request_reimbursement" %}">Request reimbursement</a></li>
     19        <li{% ifequal pagename "list_requests" %} class='selected'{% endifequal %}><a href="{% url "list_requests" %}">List requests</a></li>
    1920        {% if perms.finance_core.use_reporting %}
    20         <li{% ifequal pagename "reporting" %} class='selected'{% endifequal %}><a href="{% url reporting %}">Reporting</a></li>
     21        <li{% ifequal pagename "reporting" %} class='selected'{% endifequal %}><a href="{% url "reporting" %}">Reporting</a></li>
    2122        {% endif %}
    2223        {% if user.is_staff %}
    23         <li><a href='{% url admin:index %}'>Django Admin</a></li>
     24        <li><a href='{% url "admin:index" %}'>Django Admin</a></li>
    2425        {% endif %}
    2526    </ul>
     
    3334            <p>Welcome, <span class='username'>{{user.username}}</span>.</p>
    3435            {% endif %}
    35             <p><a href='{% url logout %}'>Logout</a></p>
     36            <p><a href='{% url "logout" %}'>Logout</a></p>
    3637        </div>
    3738        {% endif %}
  • remit/remit_templates/index.html

    r0671644 r695d358  
    11{% extends "base.html" %}
     2{% load url from future %}
    23
    34{% block title %}Welcome to Remit{% endblock %}
     
    1213<ul>
    1314    {% if user.is_anonymous %}
    14     <li><a href='{% url login %}'>Login</a></li>
     15    <li><a href='{% url "login" %}'>Login</a></li>
    1516    {% endif %}
    16     <li><a href="{% url request_reimbursement %}">Request reimbursement</a></li>
    17     <li><a href="{% url list_requests %}">List requests</a></li>
     17    <li><a href="{% url "request_reimbursement" %}">Request reimbursement</a></li>
     18    <li><a href="{% url "list_requests" %}">List requests</a></li>
    1819    {% if perms.finance_core.use_reporting %}
    19     <li><a href="{% url reporting %}">Reporting</a></li>
     20    <li><a href="{% url "reporting" %}">Reporting</a></li>
    2021    {% endif %}
    2122    {% if user.is_staff %}
    22     <li><a href='{% url admin:index %}'>Django admin interface</a></li>
     23    <li><a href='{% url "admin:index" %}'>Django admin interface</a></li>
    2324    {% endif %}
    2425    {% if user.is_authenticated %}
    25     <li><a href='{% url logout %}'>Logout</a></li>
     26    <li><a href='{% url "logout" %}'>Logout</a></li>
    2627    {% endif %}
    2728</ul>
  • remit/remit_templates/registration/logged_out.html

    r732d9eb r695d358  
    11{% extends "base.html" %}
     2{% load url from future %}
    23
    34{% block title %}Logged out of Remit{% endblock %}
     
    67<h2>Logged out of Remit</h2>
    78
    8 <p>You have been logged out of Remit. You can return to the <a href='{% url homepage %}'>homepage</a> or <a href='{% url login %}'>login again</a>.</p>
     9<p>You have been logged out of Remit. You can return to the <a href='{% url "homepage" %}'>homepage</a> or <a href='{% url "login" %}'>login again</a>.</p>
    910{% endblock %}
  • remit/remit_templates/registration/login.html

    r1ba734f r695d358  
    11{% extends "base.html" %}
     2{% load url from future %}
    23
    34{% block title %}Log in to Remit{% endblock %}
     
    1112{% endif %}
    1213
    13 <form method="post" action="{% url django.contrib.auth.views.login %}">
     14<form method="post" action="{% url "django.contrib.auth.views.login" %}">
    1415{% csrf_token %}
    1516<table>
  • remit/remit_templates/vouchers/ReimbursementRequest_review.html

    ra5ef930 r695d358  
    11{% extends "base.html" %}
     2{% load url from future %}
    23{% load misc %}
    34
     
    123124{% else %}
    124125{% if perms.vouchers.change_reimbursementrequest %}
    125 <p>Optionally, <a href='{% url admin:vouchers_reimbursementrequest_change rr.pk %}'>change this request first</a>.</p>
     126<p>Optionally, <a href='{% url "admin:vouchers_reimbursementrequest_change" rr.pk %}'>change this request first</a>.</p>
    126127{% endif %}
    127128<form method="post" action="">
  • remit/remit_templates/vouchers/reimbursementrequest_list.html

    rf6f7aff r695d358  
    11{% extends "base.html" %}
     2{% load url from future %}
    23{% load misc %}
    34
     
    5859    <td>
    5960        <input type='checkbox' name='select' value='{{object.pk}}'{%ifin object.pk selected_ids %} checked='checked'{%endifin%}></input>
    60         <a href='{% url review_request object.pk %}'>{{ object.pk }}</a>
     61        <a href='{% url "review_request" object.pk %}'>{{ object.pk }}</a>
    6162    </td>
    6263    <td>
    63         <em><a href='{% url review_request object.pk %}'>{{ object.name }}</a></em>
     64        <em><a href='{% url "review_request" object.pk %}'>{{ object.name }}</a></em>
    6465        {% if object.documentation %}<br /><a href='{{object.documentation.backing_file.url}}'>(view docs)</a>{%endif%}
    6566    </td>
  • remit/urls.py

    rf5bebab r21360c8  
    1 from django.conf.urls.defaults import *
     1from django.conf.urls import patterns, include, url
    22from django.contrib.auth.views import login, logout
    33
     
    66# Necessary views
    77import finance_core.views
     8from util.shortcuts import TemplateViewWithContext
    89
    910# Uncomment the next two lines to enable the admin:
     
    1314urlpatterns = patterns('',
    1415    # Example:
    15     (r'^$', 'django.views.generic.simple.direct_to_template', {'template': 'index.html', 'extra_context': { 'pagename':'homepage' }, }, 'homepage'),
     16    url(r'^$', TemplateViewWithContext.as_view(template_name='index.html', extra_context={ 'pagename':'homepage' }), name='homepage'),
    1617    (r'^vouchers/', include('vouchers.urls')),
    1718    (r'^finance_core/', include('finance_core.urls')),
  • remit/util/add_accounts

    r8132e8c rf298bd7  
    1 #!/usr/bin/python
     1#!/usr/bin/env python
    22import sys
    33import os
  • remit/util/add_gl_accounts.py

    r0df317c rf298bd7  
    1 #!/usr/bin/python
     1#!/usr/bin/env python
    22
    33import sys
  • remit/util/setup.py

    ra1e4224 rf298bd7  
    1 #!/usr/bin/python
     1#!/usr/bin/env python
    22import sys
    33import os
  • remit/util/shortcuts.py

    rf7dd5e7 r21360c8  
    22from django.template import RequestContext, Template
    33from django.template.loader import get_template
     4from django.views.generic.base import TemplateView
     5from django.views.generic.list import ListView
    46
    57def get_403_response(request, errmsg=None, **extra_context):
     
    810    page = tmpl.render(ctx, )
    911    return HttpResponseForbidden(page)
     12
     13
     14class ListViewWithContext(ListView):
     15    extra_context = {}
     16
     17    # I believe .queryset will work out-of-the-box
     18
     19    def get_context_data(self, **kwargs):
     20        context = super(ListViewWithContext,self).get_context_data(**kwargs)
     21        context.update(self.extra_context)
     22        return context
     23
     24
     25class TemplateViewWithContext(TemplateView):
     26    extra_context = {}
     27
     28    def get_context_data(self, **kwargs):
     29        context = super(TemplateViewWithContext,self).get_context_data(**kwargs)
     30        print context
     31        context.update(self.extra_context)
  • remit/util/templatetags/latex.py

    rdcaa9c0 rf298bd7  
    1 #!/usr/bin/python
    21# Inspired by and partially copied from ESP's backslash stuff
    32
  • remit/vouchers/urls.py

    r6e43384 rff623c3  
    1 from django.conf.urls.defaults import *
    2 from django.views.generic.list_detail import object_list
     1from django.conf.urls import patterns, include, url
    32from django.contrib.auth.decorators import permission_required
    43import vouchers.views
  • remit/vouchers/views.py

    r9dee7f6 r21360c8  
    22from vouchers.models import ReimbursementRequest, Documentation
    33from finance_core.models import BudgetTerm, BudgetArea
    4 from util.shortcuts import get_403_response
     4from util.shortcuts import get_403_response, ListViewWithContext
    55
    66from django.contrib.auth.decorators import user_passes_test, login_required
     
    1717from django.template import Context, Template
    1818from django.template.loader import get_template
    19 from django.views.generic import list_detail
    2019
    2120import decimal
     
    428427
    429428    # GENERATE THE REQUEST
    430     return list_detail.object_list(
    431         http_request,
     429    callable = ListViewWithContext.as_view(
    432430        queryset=qs,
    433431        extra_context={
     
    444442        },
    445443    )
     444    return callable(http_request)
Note: See TracChangeset for help on using the changeset viewer.