From bc26b4b49e84c0e22005854c64b2d904d347bcd8 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Sat, 9 Feb 2008 01:15:16 +0100 Subject: [PATCH 01/16] * Change from address and X-mailer header to say Xerxes. Don't know if this will be the final name for the system, though. --- templates/influences/email/character_changed.html | 3 ++- templates/influences/email/influence_changed.html | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/templates/influences/email/character_changed.html b/templates/influences/email/character_changed.html index c9c0f49..bda891c 100644 --- a/templates/influences/email/character_changed.html +++ b/templates/influences/email/character_changed.html @@ -1,7 +1,8 @@ {% load gapless %}{% gapless %} {% load i18n %} {% autoescape off %} -From: Inschrijfsysteem +From: Xerxes +X-Mailer: Xerxes {% if created %} Subject: {% blocktrans %}Character "{{ character }}" created.{% endblocktrans %} {% else %} diff --git a/templates/influences/email/influence_changed.html b/templates/influences/email/influence_changed.html index 09e073e..3ad66c0 100644 --- a/templates/influences/email/influence_changed.html +++ b/templates/influences/email/influence_changed.html @@ -1,7 +1,8 @@ {% load gapless %}{% gapless %} {% load i18n %} {% autoescape off %} -From: Inschrijfsysteem +From: Xerxes +X-Mailer: Xerxes {% if created %} Subject: {% blocktrans %}Influence "{{ influence }}" submitted.{% endblocktrans %} {% else %} -- 2.30.2 From 53c4ceab45f1e53527f78ba01e174be076594272 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Sat, 9 Feb 2008 01:16:07 +0100 Subject: [PATCH 02/16] * Also put Evolution Events in the emails' From name. --- templates/influences/email/character_changed.html | 2 +- templates/influences/email/influence_changed.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/influences/email/character_changed.html b/templates/influences/email/character_changed.html index bda891c..1e9ff10 100644 --- a/templates/influences/email/character_changed.html +++ b/templates/influences/email/character_changed.html @@ -1,7 +1,7 @@ {% load gapless %}{% gapless %} {% load i18n %} {% autoescape off %} -From: Xerxes +From: Xerxes (Evolution Events) X-Mailer: Xerxes {% if created %} Subject: {% blocktrans %}Character "{{ character }}" created.{% endblocktrans %} diff --git a/templates/influences/email/influence_changed.html b/templates/influences/email/influence_changed.html index 3ad66c0..2940301 100644 --- a/templates/influences/email/influence_changed.html +++ b/templates/influences/email/influence_changed.html @@ -1,7 +1,7 @@ {% load gapless %}{% gapless %} {% load i18n %} {% autoescape off %} -From: Xerxes +From: Xerxes (Evolution Events) X-Mailer: Xerxes {% if created %} Subject: {% blocktrans %}Influence "{{ influence }}" submitted.{% endblocktrans %} -- 2.30.2 From 1e49a91ca729ea0596d07f47b917149c230e9614 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Sat, 9 Feb 2008 01:41:04 +0100 Subject: [PATCH 03/16] * Add a status to Characters. --- influences/models.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/influences/models.py b/influences/models.py index 53eee02..6094181 100644 --- a/influences/models.py +++ b/influences/models.py @@ -4,9 +4,14 @@ from django.utils.translation import ugettext_lazy as _ # Create your models here. class Character(models.Model): + STATUS_CHOICES = ( + ('N', _('New')), + ('A', _('Approved')), + ) created = models.DateField(auto_now_add=1, verbose_name = _("Creation time")) modified = models.DateField(auto_now=1, verbose_name = _("Modification time")) name = models.CharField(max_length=255, verbose_name = _("Name")) + status = models.CharField(max_length=2, choices=STATUS_CHOICES, default='N', verbose_name = _("Status")) player = models.ForeignKey(User, verbose_name = _("Player")) def __str__(self): -- 2.30.2 From ee700a92aa5ffc72f65bda9a599f60f400854e55 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Sat, 9 Feb 2008 01:44:24 +0100 Subject: [PATCH 04/16] * Put a character's status in the email and detail templates. --- templates/influences/character_detail.html | 5 +++++ templates/influences/email/character_changed.html | 1 + 2 files changed, 6 insertions(+) diff --git a/templates/influences/character_detail.html b/templates/influences/character_detail.html index 164310c..bf6ac95 100644 --- a/templates/influences/character_detail.html +++ b/templates/influences/character_detail.html @@ -4,6 +4,11 @@ {% block content %}

{{ object.name }}

+{% ifequal character.status "N" %} +{% trans "This character was not yet approved by the SLs" %} +{% else %} +{% trans "This character is approved by the SLs" %} +{% endifequal %}

{% blocktrans with object.name as name %}Influences for {{ name }}{% endblocktrans %}

    {% for influence in object.influence_set.all %} diff --git a/templates/influences/email/character_changed.html b/templates/influences/email/character_changed.html index 1e9ff10..c858119 100644 --- a/templates/influences/email/character_changed.html +++ b/templates/influences/email/character_changed.html @@ -27,5 +27,6 @@ You have created a character on {{ creation_date }}. {% endfilter %} \\ {% filter ljust:20%}{% trans "Character name" %}:{%endfilter%}{{ character.name }} +{% filter ljust:20%}{% trans "Status" %}:{%endfilter%}{{ character.get_status_display }} {% endautoescape %} {% endgapless %} -- 2.30.2 From 483829feb4f219b31afebaf1d5f7136dfcc05a18 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Sat, 9 Feb 2008 01:45:04 +0100 Subject: [PATCH 05/16] * Only show the longterm in the email and detail template when it is set to yes. --- templates/influences/email/influence_changed.html | 2 ++ templates/influences/influence_detail.html | 3 +++ 2 files changed, 5 insertions(+) diff --git a/templates/influences/email/influence_changed.html b/templates/influences/email/influence_changed.html index 2940301..3c56337 100644 --- a/templates/influences/email/influence_changed.html +++ b/templates/influences/email/influence_changed.html @@ -28,7 +28,9 @@ You have submitted an influence on {{ creation_date }}. {% filter ljust:20%}{% trans "Contact" %}:{%endfilter%}{{ influence.contact }} {% filter ljust:20%}{% trans "Summary" %}:{%endfilter%}{{ influence.summary }} {% filter ljust:20%}{% trans "Status" %}:{%endfilter%}{{ influence.get_status_display }} +{% if influence.longterm %} {% filter ljust:20%}{% trans "Long term" %}:{%endfilter%}{{ influence.longterm|yesno|capfirst }} +{% endif %} {% trans "Description" %}: {% filter wordwrap:72 %} {{ influence.description }} diff --git a/templates/influences/influence_detail.html b/templates/influences/influence_detail.html index 4060a27..e3aaf82 100644 --- a/templates/influences/influence_detail.html +++ b/templates/influences/influence_detail.html @@ -7,6 +7,9 @@ +{% if object.longterm %} + +{% endif %}
    {% trans "Contact" %}:{{ object.contact }}
    {% trans "Character" %}:{{ object.character }}
    {% trans "Long term" %}:{{ object.longterm|yesno|capfirst }}

    {{ object.description }}

    {% endblock %} -- 2.30.2 From 468974f92f302102d05df9721e4645683710f6be Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Sat, 9 Feb 2008 01:54:57 +0100 Subject: [PATCH 06/16] * Fix error in import.py that caused everybody to be an admin. --- import.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/import.py b/import.py index 1e77c90..26d0af1 100644 --- a/import.py +++ b/import.py @@ -31,6 +31,11 @@ for row in c.fetchall(): except User.DoesNotExist: u = User(username=username) + if row[1]: + su = 1 + else: + su = 0 + c.execute("SELECT dyn_prop.name, dyn_prop_value.value" " FROM dyn_prop_value, dyn_prop WHERE" " dyn_prop_value.dynamicPropertyObjectId=%s AND" @@ -40,10 +45,6 @@ for row in c.fetchall(): for row in c.fetchall(): props[row[0]] = row[1] - if row[1]: - su = 1 - else: - su = 0 u.is_superuser = su u.is_staff = su names = props.get('Naam','').split(' ', 1) -- 2.30.2 From 9c4a6a1ad38d92e7fe301a8eb5569904400c37ea Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Sat, 9 Feb 2008 01:55:17 +0100 Subject: [PATCH 07/16] * Use the spring skin instead of the winter skin. --- templates/base/base.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/base/base.html b/templates/base/base.html index 3cbb353..6a8a89a 100644 --- a/templates/base/base.html +++ b/templates/base/base.html @@ -1,7 +1,7 @@ {% load i18n %} - + -- 2.30.2 From 03d14f17ab41284f09f3a1eb903314d52d93f19b Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Sat, 9 Feb 2008 11:09:07 +0100 Subject: [PATCH 08/16] * Use h1/h2 instead of h2/h3 in the templates, since there probably won't be a main h1 title. --- templates/influences/add.html | 2 +- templates/influences/add_character.html | 2 +- templates/influences/character_detail.html | 4 ++-- templates/influences/character_list.html | 2 +- templates/influences/index.html | 4 ++-- templates/influences/influence_detail.html | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/templates/influences/add.html b/templates/influences/add.html index 29327c0..1a3bb01 100644 --- a/templates/influences/add.html +++ b/templates/influences/add.html @@ -3,7 +3,7 @@ {% block content %} -

    {% trans "Submit influence" %}

    +

    {% trans "Submit influence" %}

    {% if form %}

    {% blocktrans %}You can submit an influence here. Use this form if your character wants diff --git a/templates/influences/add_character.html b/templates/influences/add_character.html index c81e088..9cb6671 100644 --- a/templates/influences/add_character.html +++ b/templates/influences/add_character.html @@ -2,7 +2,7 @@ {% load i18n %} {% block content %} -

    {% trans "Add a character" %}

    +

    {% trans "Add a character" %}

    {% if form %}
    diff --git a/templates/influences/character_detail.html b/templates/influences/character_detail.html index bf6ac95..86ddd0e 100644 --- a/templates/influences/character_detail.html +++ b/templates/influences/character_detail.html @@ -3,13 +3,13 @@ {% block content %} -

    {{ object.name }}

    +

    {{ object.name }}

    {% ifequal character.status "N" %} {% trans "This character was not yet approved by the SLs" %} {% else %} {% trans "This character is approved by the SLs" %} {% endifequal %} -

    {% blocktrans with object.name as name %}Influences for {{ name }}{% endblocktrans %}

    +

    {% blocktrans with object.name as name %}Influences for {{ name }}{% endblocktrans %}

      {% for influence in object.influence_set.all %}
    • {{ influence }}
    • diff --git a/templates/influences/character_list.html b/templates/influences/character_list.html index df39a8a..40e5861 100644 --- a/templates/influences/character_list.html +++ b/templates/influences/character_list.html @@ -3,7 +3,7 @@ {% block content %} -

      {% trans "Your characters"%}

      +

      {% trans "Your characters"%}

      {% if object_list %}
        {% for character in object_list %} diff --git a/templates/influences/index.html b/templates/influences/index.html index bafc6a1..ccd2da9 100644 --- a/templates/influences/index.html +++ b/templates/influences/index.html @@ -3,7 +3,7 @@ {% block content %} -

        {% trans "Your characters"%}

        +

        {% trans "Your characters"%}

        {% if characters %}
          {% for character in characters %} @@ -17,7 +17,7 @@

          {% trans "Add character" %}

          {% if characters %} -

          {% trans "Your influences" %}

          +

          {% trans "Your influences" %}

          {% if influences %}
            {% for influence in influences %} diff --git a/templates/influences/influence_detail.html b/templates/influences/influence_detail.html index e3aaf82..1794579 100644 --- a/templates/influences/influence_detail.html +++ b/templates/influences/influence_detail.html @@ -3,7 +3,7 @@ {% block content %} -

            {{ object.summary }}

            +

            {{ object.summary }}

    -- 2.30.2 From 69ffc3f029b28f480d82351bffc016cf80303bf5 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Sat, 9 Feb 2008 11:10:17 +0100 Subject: [PATCH 09/16] * Use the lex skin instead of the spring skin. --- templates/base/base.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/base/base.html b/templates/base/base.html index 6a8a89a..062bacd 100644 --- a/templates/base/base.html +++ b/templates/base/base.html @@ -1,7 +1,7 @@ {% load i18n %} - + -- 2.30.2 From cf2d36b584d6b5470d27100cd0960e1905ee8e16 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Sat, 9 Feb 2008 19:27:28 +0100 Subject: [PATCH 10/16] * Remove some old stuff from the events app (such as the "Person" model). --- events/models.py | 15 ++------------- events/views/__init__.py | 0 events/views/event.py | 23 ----------------------- 3 files changed, 2 insertions(+), 36 deletions(-) delete mode 100644 events/views/__init__.py delete mode 100644 events/views/event.py diff --git a/events/models.py b/events/models.py index eccab09..a283adf 100644 --- a/events/models.py +++ b/events/models.py @@ -1,4 +1,5 @@ from django.db import models +from django.contrib.auth.models import User # Create your models here. class Event(models.Model): @@ -18,18 +19,6 @@ class Event(models.Model): ('Registrations', {'fields' : ('slots',)} ), ) -class Person(models.Model): - first_name = models.CharField(max_length=255) - last_name = models.CharField(max_length=255) - - def __str__(self): - return self.first_name + ' ' + self.last_name - - class Admin: - list_display = ('first_name', 'last_name') - list_filter = ['last_name'] - search_fields = ['first_name', 'last_name'] - class Registration(models.Model): - person = models.ForeignKey(Person, edit_inline=models.STACKED, num_in_admin=3) + person = models.ForeignKey(User, edit_inline=models.STACKED, num_in_admin=3) event = models.ForeignKey(Event, core=True) diff --git a/events/views/__init__.py b/events/views/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/events/views/event.py b/events/views/event.py deleted file mode 100644 index fc06909..0000000 --- a/events/views/event.py +++ /dev/null @@ -1,23 +0,0 @@ -#from django.template import Context, loader -#from django.http import HttpResponse -from ee.events.models import Event -from django.shortcuts import render_to_response -from django.http import Http404 - - - -def detail(request, event_id): - try: - event = Event.objects.get(id=event_id) - #t = loader.get_template('events/event/detail.html') - #c = Context({ - # 'event' : event, - #}) - #return HttpResponse(t.render(c)) - return render_to_response('events/event/detail.html', {'event' : event}) - except Event.DoesNotExist: - raise Http404 - -def regs(request, event_id): - pass - #return HttpResponse('') -- 2.30.2 From f1833394374f434a61ab1ab9a551f2bded207182 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Sat, 9 Feb 2008 19:34:17 +0100 Subject: [PATCH 11/16] * Replace some tabs by spaces and put a vim modeline in every python file. --- __init__.py | 1 + auth.py | 1 + base/__init__.py | 1 + base/models.py | 1 + base/views.py | 1 + events/__init__.py | 1 + events/models.py | 1 + events/views.py | 1 + import.py | 1 + influences/__init__.py | 1 + influences/models.py | 1 + influences/notify.py | 1 + influences/views.py | 14 ++++++++------ manage.py | 1 + settings.py | 1 + tools/__init__.py | 1 + tools/context_processors.py | 1 + tools/forms.py | 2 +- tools/misc.py | 1 + tools/notify.py | 1 + tools/templatetags/__init__.py | 1 + urls.py | 1 + 22 files changed, 29 insertions(+), 7 deletions(-) diff --git a/__init__.py b/__init__.py index e69de29..14c59e8 100644 --- a/__init__.py +++ b/__init__.py @@ -0,0 +1 @@ +# vim: set sts=4 sw=4 expandtab: diff --git a/auth.py b/auth.py index 64f4daf..00c106d 100644 --- a/auth.py +++ b/auth.py @@ -104,3 +104,4 @@ class PhpBBBackend: except User.DoesNotExist: return None +# vim: set sts=4 sw=4 expandtab: diff --git a/base/__init__.py b/base/__init__.py index e69de29..14c59e8 100644 --- a/base/__init__.py +++ b/base/__init__.py @@ -0,0 +1 @@ +# vim: set sts=4 sw=4 expandtab: diff --git a/base/models.py b/base/models.py index 9d910f3..806b4ec 100644 --- a/base/models.py +++ b/base/models.py @@ -26,3 +26,4 @@ class UserProfile(models.Model): class Admin: pass +# vim: set sts=4 sw=4 expandtab: diff --git a/base/views.py b/base/views.py index 60f00ef..c13509e 100644 --- a/base/views.py +++ b/base/views.py @@ -1 +1,2 @@ # Create your views here. +# vim: set sts=4 sw=4 expandtab: diff --git a/events/__init__.py b/events/__init__.py index e69de29..14c59e8 100644 --- a/events/__init__.py +++ b/events/__init__.py @@ -0,0 +1 @@ +# vim: set sts=4 sw=4 expandtab: diff --git a/events/models.py b/events/models.py index a283adf..bb8f68b 100644 --- a/events/models.py +++ b/events/models.py @@ -22,3 +22,4 @@ class Event(models.Model): class Registration(models.Model): person = models.ForeignKey(User, edit_inline=models.STACKED, num_in_admin=3) event = models.ForeignKey(Event, core=True) +# vim: set sts=4 sw=4 expandtab: diff --git a/events/views.py b/events/views.py index e69de29..14c59e8 100644 --- a/events/views.py +++ b/events/views.py @@ -0,0 +1 @@ +# vim: set sts=4 sw=4 expandtab: diff --git a/import.py b/import.py index 26d0af1..df1a1ac 100644 --- a/import.py +++ b/import.py @@ -80,3 +80,4 @@ for row in c.fetchall(): p.save() except Exception: print props +# vim: set sts=4 sw=4 expandtab: diff --git a/influences/__init__.py b/influences/__init__.py index d1e981c..e1dd01a 100644 --- a/influences/__init__.py +++ b/influences/__init__.py @@ -1 +1,2 @@ import notify +# vim: set sts=4 sw=4 expandtab: diff --git a/influences/models.py b/influences/models.py index 6094181..9587aff 100644 --- a/influences/models.py +++ b/influences/models.py @@ -55,3 +55,4 @@ class Influence(models.Model): verbose_name = _("Influence") verbose_name_plural = _("Influences") +# vim: set sts=4 sw=4 expandtab: diff --git a/influences/notify.py b/influences/notify.py index f078bc9..7b47e8c 100644 --- a/influences/notify.py +++ b/influences/notify.py @@ -14,3 +14,4 @@ def influence_saved(instance, created): notify([instance.character.player, 'lextalionis@evolution-events.nl'], 'influences/email/influence_changed.html', {'influence' : instance, 'created' : created}) dispatcher.connect(influence_saved, signals.post_save, Influence) +# vim: set sts=4 sw=4 expandtab: diff --git a/influences/views.py b/influences/views.py index 51cfb49..71e69ed 100644 --- a/influences/views.py +++ b/influences/views.py @@ -37,12 +37,12 @@ def add(request, character_id=None): f = InfluenceForm(request=request, initial=initial) if (f.is_valid()): influence = f.save(commit=False) - if (influence.character.player == request.user): - influence.save() - return HttpResponseRedirect(reverse('influences_influence_detail', args=[influence.id])) - else: - # TODO: Make this a bit more pretty. Perhaps throw an exception here and add some middleware to catch it? - return HttpResponseForbidden("Forbidden -- Trying to submit influence for somebody else's character") + if (influence.character.player == request.user): + influence.save() + return HttpResponseRedirect(reverse('influences_influence_detail', args=[influence.id])) + else: + # TODO: Make this a bit more pretty. Perhaps throw an exception here and add some middleware to catch it? + return HttpResponseForbidden("Forbidden -- Trying to submit influence for somebody else's character") # Only allow characters of the current user f.fields['character']._set_queryset(chars) @@ -77,3 +77,5 @@ def character_detail(*args, **kwargs): @login_required def influence_detail(*args, **kwargs): return object_detail(*args, **kwargs) + +# vim: set sts=4 sw=4 expandtab: diff --git a/manage.py b/manage.py index bcdd55e..ec3efa6 100755 --- a/manage.py +++ b/manage.py @@ -9,3 +9,4 @@ except ImportError: if __name__ == "__main__": execute_manager(settings) +# vim: set sts=4 sw=4 expandtab: diff --git a/settings.py b/settings.py index ba3582d..dfe7fce 100644 --- a/settings.py +++ b/settings.py @@ -115,3 +115,4 @@ AUTHENTICATION_BACKENDS = ( ) AUTH_PROFILE_MODULE = 'base.UserProfile' +# vim: set sts=4 sw=4 expandtab: diff --git a/tools/__init__.py b/tools/__init__.py index e69de29..14c59e8 100644 --- a/tools/__init__.py +++ b/tools/__init__.py @@ -0,0 +1 @@ +# vim: set sts=4 sw=4 expandtab: diff --git a/tools/context_processors.py b/tools/context_processors.py index b0d0282..fd3c57a 100644 --- a/tools/context_processors.py +++ b/tools/context_processors.py @@ -10,3 +10,4 @@ def static(request): """ return {'STATIC_URL_PREFIX': settings.STATIC_URL_PREFIX} +# vim: set sts=4 sw=4 expandtab: diff --git a/tools/forms.py b/tools/forms.py index b3171e3..b420e1f 100644 --- a/tools/forms.py +++ b/tools/forms.py @@ -34,4 +34,4 @@ class BaseContextModelForm(BaseModelForm): class ContextModelForm(BaseContextModelForm): __metaclass__ = ModelFormMetaclass -# vim:set sts=4 ts=4 sw=4 ai et: +# vim: set sts=4 sw=4 expandtab: diff --git a/tools/misc.py b/tools/misc.py index 110c370..1edf472 100644 --- a/tools/misc.py +++ b/tools/misc.py @@ -13,3 +13,4 @@ def make_iter(value): except TypeError: pass return [value] +# vim: set sts=4 sw=4 expandtab: diff --git a/tools/notify.py b/tools/notify.py index 8dca1ba..74f1083 100644 --- a/tools/notify.py +++ b/tools/notify.py @@ -55,3 +55,4 @@ def notify(recipients, template, context = {}): headers = headers_dict ) msg.send() +# vim: set sts=4 sw=4 expandtab: diff --git a/tools/templatetags/__init__.py b/tools/templatetags/__init__.py index e69de29..14c59e8 100644 --- a/tools/templatetags/__init__.py +++ b/tools/templatetags/__init__.py @@ -0,0 +1 @@ +# vim: set sts=4 sw=4 expandtab: diff --git a/urls.py b/urls.py index 652b7a9..c6e6fe1 100644 --- a/urls.py +++ b/urls.py @@ -36,3 +36,4 @@ if settings.DEBUG: (r'^static/(?P.*)$', 'django.views.static.serve', {'document_root': os.path.join(settings.PROJECT_DIR, 'static')}), ) +# vim: set sts=4 sw=4 expandtab: -- 2.30.2 From d137dd11f58dba71676c00d52cf0ac35c699a7b8 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Sat, 9 Feb 2008 23:39:09 +0100 Subject: [PATCH 12/16] * Also remove the references to the event views that got removed a few commits back. --- urls.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/urls.py b/urls.py index c6e6fe1..c873e1a 100644 --- a/urls.py +++ b/urls.py @@ -15,8 +15,6 @@ influences_dict = { urlpatterns = patterns('', url(r'^$', 'django.views.generic.simple.redirect_to', {'url' : '/influences/'}), url(r'^admin/', include('django.contrib.admin.urls')), - url(r'^events/event/(?P\d+)/$', 'ee.events.views.event.detail'), - url(r'^events/event/(?P\d+)/regs$', 'ee.events.views.event.regs'), url(r'^influences/$', 'ee.influences.views.index', name='influences_index'), url(r'^influences/influence/add/(\d+)/$', 'ee.influences.views.add', name='influences_add_influence_for_character'), -- 2.30.2 From a99b1180ae2623918d8b5f49dede4d212515789f Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Sat, 9 Feb 2008 23:48:29 +0100 Subject: [PATCH 13/16] * Let the character_template use the url templatetag instead of hardcoded urls. --- templates/influences/character_list.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/influences/character_list.html b/templates/influences/character_list.html index 40e5861..8b2c3d3 100644 --- a/templates/influences/character_list.html +++ b/templates/influences/character_list.html @@ -7,13 +7,13 @@ {% if object_list %} {% else %}

    {% trans "No characters. Add a character first, so you can submit your influences." %}

    {% endif %} -

    {% trans "Add character" %}

    +

    {% trans "Add character" %}

    {% endblock %} -- 2.30.2 From d031025352fb6c00f0db767405dcf2f39f976cd8 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Sat, 9 Feb 2008 23:50:18 +0100 Subject: [PATCH 14/16] * No longer use any generic views, since we will need to add access checks anyway, so we will need to redo a most of the stuff that the generic view does for us. --- influences/views.py | 15 +++++++++------ urls.py | 14 +++----------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/influences/views.py b/influences/views.py index 71e69ed..ba8e280 100644 --- a/influences/views.py +++ b/influences/views.py @@ -67,15 +67,18 @@ def index(request): return render_to_response('influences/index.html', {'characters' : characters, 'influences' : influences}, RequestContext(request)) @login_required -def character_list(*args, **kwargs): - return object_list(*args, **kwargs) +def character_list(request): + os = request.user.character_set.all() + return render_to_response('influences/character_list.html', {'object_list' : os}, RequestContext(request)) @login_required -def character_detail(*args, **kwargs): - return object_detail(*args, **kwargs) +def character_detail(request, object_id): + o = Character.objects.get(pk=object_id) + return render_to_response('influences/character_detail.html', {'object' : o}, RequestContext(request)) @login_required -def influence_detail(*args, **kwargs): - return object_detail(*args, **kwargs) +def influence_detail(request, object_id): + o = Influence.objects.get(pk=object_id) + return render_to_response('influences/influence_detail.html', {'object' : o}, RequestContext(request)) # vim: set sts=4 sw=4 expandtab: diff --git a/urls.py b/urls.py index c873e1a..c96c6b1 100644 --- a/urls.py +++ b/urls.py @@ -3,14 +3,6 @@ from django.conf.urls.defaults import * from ee.influences.models import Character from ee.influences.models import Influence import os - -chars_dict = { - 'queryset': Character.objects.all(), -} - -influences_dict = { - 'queryset': Influence.objects.all(), -} urlpatterns = patterns('', url(r'^$', 'django.views.generic.simple.redirect_to', {'url' : '/influences/'}), @@ -19,10 +11,10 @@ urlpatterns = patterns('', url(r'^influences/$', 'ee.influences.views.index', name='influences_index'), url(r'^influences/influence/add/(\d+)/$', 'ee.influences.views.add', name='influences_add_influence_for_character'), url(r'^influences/influence/add/$', 'ee.influences.views.add', name='influences_add_influence'), - url(r'^influences/influence/(?P\d+)/$', 'ee.influences.views.influence_detail', influences_dict, name='influences_influence_detail'), + url(r'^influences/influence/(?P\d+)/$', 'ee.influences.views.influence_detail', name='influences_influence_detail'), - url(r'^influences/character/$', 'ee.influences.views.character_list', chars_dict, name='influences_character_list'), - url(r'^influences/character/(?P\d+)/$', 'ee.influences.views.character_detail', chars_dict, name='influences_character_detail'), + url(r'^influences/character/$', 'ee.influences.views.character_list', name='influences_character_list'), + url(r'^influences/character/(?P\d+)/$', 'ee.influences.views.character_detail', name='influences_character_detail'), url(r'^influences/character/add/$', 'ee.influences.views.addCharacter', name='influences_add_character'), url(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'base/login.html'}, name='login'), -- 2.30.2 From d482d83e3ebc9c02d6942aac09f7c697aae7ad07 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Sat, 9 Feb 2008 23:58:51 +0100 Subject: [PATCH 15/16] * Fix the approved/not approved display in the character_detail display, it always showed approved. --- templates/influences/character_detail.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/influences/character_detail.html b/templates/influences/character_detail.html index 86ddd0e..09afc68 100644 --- a/templates/influences/character_detail.html +++ b/templates/influences/character_detail.html @@ -4,7 +4,7 @@ {% block content %}

    {{ object.name }}

    -{% ifequal character.status "N" %} +{% ifequal object.status "N" %} {% trans "This character was not yet approved by the SLs" %} {% else %} {% trans "This character is approved by the SLs" %} -- 2.30.2 From 1d73f73f278e35bc1717376a7796ca1643d642b2 Mon Sep 17 00:00:00 2001 From: Matthijs Kooijman Date: Sat, 9 Feb 2008 23:59:14 +0100 Subject: [PATCH 16/16] * Don't allow people to view each other's influences and characters. --- influences/views.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/influences/views.py b/influences/views.py index ba8e280..3ff3ca8 100644 --- a/influences/views.py +++ b/influences/views.py @@ -74,11 +74,15 @@ def character_list(request): @login_required def character_detail(request, object_id): o = Character.objects.get(pk=object_id) + if (o.player != request.user): + return HttpResponseForbidden("Forbidden -- Trying to view somebody else's character") return render_to_response('influences/character_detail.html', {'object' : o}, RequestContext(request)) @login_required def influence_detail(request, object_id): o = Influence.objects.get(pk=object_id) + if (o.character.player != request.user): + return HttpResponseForbidden("Forbidden -- Trying to view influences of somebody else's character") return render_to_response('influences/influence_detail.html', {'object' : o}, RequestContext(request)) # vim: set sts=4 sw=4 expandtab: -- 2.30.2
    {% trans "Contact" %}:{{ object.contact }}
    {% trans "Character" %}:{{ object.character }}