Mercurial > hg > savane-forge
changeset 273:62f8e93ade0e
Project jobs list
author | Sylvain Beucler <beuc@beuc.net> |
---|---|
date | Fri, 13 Aug 2010 00:13:58 +0200 |
parents | f62ff36b62c1 |
children | 5422c973575d |
files | TODO savane/svmain/templatetags/svtopmenu.py savane/svpeople/urls.py savane/svpeople/views.py templates/svpeople/job_detail.html templates/svpeople/job_list.inc templates/svpeople/job_list_by_category.html templates/svpeople/job_list_by_group.html templates/svpeople/job_list_by_type.html |
diffstat | 9 files changed, 55 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/TODO +++ b/TODO @@ -141,7 +141,7 @@ [X] View a job (by category & group type) - [ ] Project jobs list + [X] Project jobs list [ ] Edit job
--- a/savane/svmain/templatetags/svtopmenu.py +++ b/savane/svmain/templatetags/svtopmenu.py @@ -150,11 +150,23 @@ entry_sourcecode['children'].append({'text' : _("Browse web pages repository"), 'href' : group.svgroupinfo.get_url_homepage_vcs_browser() }) + # Jobs + entry_job = {'text' : _("Jobs"), + 'href' : reverse('savane:svpeople:job_list_by_group', args=[group.name]) } + entry_job['children'] = [] + entry_job['children'].append({'text' : _("Browse"), + 'href' : reverse('savane:svpeople:job_list_by_group', args=[group.name]) }) + if (svmain_models.Membership.is_admin(context['user'], group)): + entry_job['children'].append({'separator' : True }) + entry_job['children'].append({'text' : _("Add:") + " (TODO)", 'strong': True, + 'href' : '' }) + # Add 'em all! entries.append(entry_home) entries.append(entry_homepage) entries.append(entry_download) entries.append(entry_mailinglist) + entries.append(entry_job) if len(entry_sourcecode['children']) > 0: entries.append(entry_sourcecode) elif menu_name == 'my':
--- a/savane/svpeople/urls.py +++ b/savane/svpeople/urls.py @@ -35,6 +35,9 @@ url(r'^type/(?P<type_id>\d+)/$', views.job_list_by_type, { 'extra_context' : { 'title' : _("Project help wanted"), }, }, name='job_list_by_type'), + url(r'^group/(?P<slug>[-\w]+)/$', views.job_list_by_group, + { 'extra_context' : { 'title' : _("Looking for a job to edit"), }, }, + name='job_list_by_group'), url(r'^job/(?P<object_id>\d+)/$', object_detail, { 'queryset' : svpeople_models.Job.objects.all(), 'extra_context' : { 'title' : _("View a job"), }, },
--- a/savane/svpeople/views.py +++ b/savane/svpeople/views.py @@ -23,6 +23,7 @@ from django.contrib import messages from django.utils.translation import ugettext as _, ungettext from django.db import models +import django.contrib.auth.models as auth_models from annoying.decorators import render_to from savane.middleware.exception import HttpAppException import savane.svmain.models as svmain_models @@ -70,3 +71,16 @@ } context.update(extra_context) return context + +@render_to('svpeople/job_list_by_group.html', mimetype=None) +def job_list_by_group(request, slug, extra_context={}): + group = get_object_or_404(auth_models.Group, name=slug) + object_list = svpeople_models.Job.open_objects \ + .filter(group=group).order_by('-date') \ + .select_related('category', 'group__svgroupinfo__type') + context = { + 'type' : type, + 'object_list' : object_list, + } + context.update(extra_context) + return context
--- a/templates/svpeople/job_detail.html +++ b/templates/svpeople/job_detail.html @@ -1,6 +1,5 @@ {% extends "base.html" %} {% load i18n %} -{% load svtopmenu %} {% load svmarkup %} {% block title %}
--- a/templates/svpeople/job_list.inc +++ b/templates/svpeople/job_list.inc @@ -12,7 +12,7 @@ <td><a href="{% url savane:svpeople:job_detail object.pk %}">{{object.title}}</a></td> <td>{{object.category.label}}</td> <td>{{object.date}}</td> - <td><a href="{% url savane:svmain:group_detail object.group.pk %}">{{object.group.svgroupinfo.full_name}}</a></td> + <td><a href="{% url savane:svmain:group_detail object.group.name %}">{{object.group.svgroupinfo.full_name}}</a></td> <td>{{object.group.svgroupinfo.type.name}}</td> </tr> {% endfor %}
--- a/templates/svpeople/job_list_by_category.html +++ b/templates/svpeople/job_list_by_category.html @@ -1,6 +1,5 @@ {% extends "base.html" %} {% load i18n %} -{% load svtopmenu %} {% block title %} {% blocktrans %}People at {{site_name}}{% endblocktrans %}{% trans ": " %}
new file mode 100644 --- /dev/null +++ b/templates/svpeople/job_list_by_group.html @@ -0,0 +1,24 @@ +{% extends "base.html" %} +{% load i18n %} + +{% block title %} +{% blocktrans %}People at {{site_name}}{% endblocktrans %}{% trans ": " %}{{title}} +{% endblock %} + +{% block icon %}people{% endblock %} + +{% block content %} + +<p>{% trans "Here is a list of positions available for this project." %}</p> + +{% include "svpeople/job_list.inc" %} + +{% endblock %} + +{% comment %} +Local Variables: ** +mode: django-html ** +tab-width: 4 ** +indent-tabs-mode: nil ** +End: ** +{% endcomment %}