Skip to content

Commit 9eada0e

Browse files
Merge pull request #12 from dnaranjo89/job_board
Add Job Board section to the site
2 parents d84f16b + 4ef195e commit 9eada0e

File tree

13 files changed

+165
-0
lines changed

13 files changed

+165
-0
lines changed

config/settings/common.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@
191191
'pycones.reviewers',
192192
'pycones.speakers',
193193
'pycones.schedules',
194+
'pycones.jobboard',
194195
)
195196

196197
# See: https://docs.djangoproject.com/en/dev/ref/settings/#installed-apps

config/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
url(r'^proposals/', include('pycones.proposals.urls', namespace="proposals")),
2525
url(r'^reviewers/', include('pycones.reviewers.urls', namespace="reviewers")),
2626
url(r'^schedule/', include('pycones.schedules.urls', namespace="schedule")),
27+
url(r'^jobboard/', include('pycones.jobboard.urls', namespace="jobboard")),
2728
)
2829

2930
# URLs without i18n

pycones/jobboard/__init__.py

Whitespace-only changes.

pycones/jobboard/admin.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# -*- coding: utf-8 -*-
2+
from __future__ import unicode_literals
3+
4+
from django.contrib import admin
5+
from pycones.jobboard.models import JobOffer
6+
from pycones.utils.actions import export_as_csv_action
7+
8+
9+
@admin.register(JobOffer)
10+
class JobOfferAdmin(admin.ModelAdmin):
11+
list_display = [
12+
"id",
13+
"title",
14+
"employer"
15+
]
16+
list_filter = []
17+
actions = [
18+
export_as_csv_action("CSV Export", fields=[
19+
"id",
20+
"title",
21+
"employer",
22+
"description"
23+
]),
24+
]
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# -*- coding: utf-8 -*-
2+
# Generated by Django 1.10.5 on 2017-08-10 18:59
3+
from __future__ import unicode_literals
4+
5+
from django.db import migrations, models
6+
import django.db.models.deletion
7+
import django.utils.timezone
8+
import markupfield.fields
9+
import model_utils.fields
10+
11+
12+
class Migration(migrations.Migration):
13+
14+
initial = True
15+
16+
dependencies = [
17+
('sponsorships', '0003_auto_20170209_1025'),
18+
]
19+
20+
operations = [
21+
migrations.CreateModel(
22+
name='JobOffer',
23+
fields=[
24+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
25+
('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')),
26+
('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')),
27+
('title', models.CharField(max_length=100, verbose_name='Título')),
28+
('description', markupfield.fields.MarkupField(blank=True, default='', help_text='Describe de job offer', rendered_field=True, verbose_name='Descripción')),
29+
('description_markup_type', models.CharField(choices=[('', '--'), ('markdown', 'markdown')], default='markdown', max_length=30)),
30+
('application_url', models.URLField(verbose_name='Application URL')),
31+
('_description_rendered', models.TextField(editable=False)),
32+
('employer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='employer', to='sponsorships.Sponsor')),
33+
],
34+
options={
35+
'abstract': False,
36+
},
37+
),
38+
]

pycones/jobboard/migrations/__init__.py

Whitespace-only changes.

pycones/jobboard/models.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# -*- coding: utf-8 -*-
2+
from __future__ import unicode_literals, print_function, absolute_import
3+
4+
from django.db import models
5+
from django.utils.translation import ugettext_lazy as _
6+
from model_utils.models import TimeStampedModel
7+
from markupfield.fields import MarkupField
8+
9+
10+
class JobOffer(TimeStampedModel):
11+
"""A job offer published by a sponsor"""
12+
13+
employer = models.ForeignKey("sponsorships.Sponsor", related_name="employer")
14+
title = models.CharField(max_length=100, verbose_name=_("Título"))
15+
description = MarkupField(
16+
_("Descripción"),
17+
blank=True,
18+
default="",
19+
default_markup_type='markdown',
20+
help_text=_("Describe de job offer")
21+
)
22+
application_url = models.URLField(_("Application URL"))
23+

pycones/jobboard/urls.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# -*- coding: utf-8 -*-
2+
from __future__ import unicode_literals
3+
4+
from django.conf.urls import url
5+
from pycones.jobboard.views import JobBoardView, JobOfferView
6+
7+
urlpatterns = [
8+
url(r'^(?P<pk>\d+)/$', JobOfferView.as_view(), name="details"),
9+
url(r'^$', JobBoardView.as_view(), name="list"),
10+
]

pycones/jobboard/views.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
from django.shortcuts import render, get_object_or_404
2+
from django.views.generic import View
3+
4+
from pycones.jobboard.models import JobOffer
5+
6+
7+
class JobBoardView(View):
8+
template_name = "jobboard/list.html"
9+
10+
def get(self, request):
11+
data = {
12+
"job_offers": JobOffer.objects.all()
13+
}
14+
return render(request, self.template_name, data)
15+
16+
17+
class JobOfferView(View):
18+
template_name = "jobboard/details.html"
19+
20+
def get(self, request, pk):
21+
job_offer = get_object_or_404(JobOffer, pk=pk)
22+
data = {
23+
"job_offer": job_offer,
24+
}
25+
return render(request, self.template_name, data)

pycones/static/sass/sponsors.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,8 @@
22
&-img {
33
max-height: 150px;
44
}
5+
6+
&-img-small {
7+
max-height: 80px;
8+
}
59
}

0 commit comments

Comments
 (0)