Job stuff.

master
Nick Sergeant 2013-09-05 23:35:49 -04:00
parent 21023b6781
commit 7329cef618
12 changed files with 164 additions and 8 deletions

View File

@ -3,6 +3,7 @@ from jobs.models import Job
class JobAdmin(admin.ModelAdmin):
list_display = ('title', 'company', 'location', 'url',)
list_display = ('title', 'created', 'company', 'url',)
ordering = ('-created',)
admin.site.register(Job, JobAdmin)

View File

View File

View File

@ -0,0 +1,48 @@
from django.conf import settings
from django.core.management.base import BaseCommand
from jobs.models import Job
import json
import requests
class Command(BaseCommand):
help = 'Import jobs'
listings = []
def get_for_page(self, page):
r = requests.get('{}&page={}'.format(settings.JOBS_BASE_URL, page))
obj = r.json()
self.listings.extend(obj['listings']['listing'])
if page < obj['listings']['pages']:
return self.get_for_page(page + 1)
return self.listings
def handle(self, *args, **options):
listings = self.get_for_page(1)
jobs = Job.objects.all()
for job in jobs:
job.delete()
for listing in listings:
try:
location = listing['company']['location']['city']
except:
location = ''
try:
company = str(listing['company']['name'])
except:
company = ''
newjob = Job(title=listing['title'],
company=company,
location=location,
url=listing['url'],
data=json.dumps(listing),
created=listing['post_date'])
newjob.save()

View File

@ -0,0 +1,36 @@
# -*- coding: utf-8 -*-
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding field 'Job.data'
db.add_column(u'jobs_job', 'data',
self.gf('django.db.models.fields.TextField')(null=True, blank=True),
keep_default=False)
def backwards(self, orm):
# Deleting field 'Job.data'
db.delete_column(u'jobs_job', 'data')
models = {
u'jobs.job': {
'Meta': {'object_name': 'Job'},
'company': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'data': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'location': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'url': ('django.db.models.fields.CharField', [], {'max_length': '255'})
}
}
complete_apps = ['jobs']

View File

@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Deleting field 'Job.modified'
db.delete_column(u'jobs_job', 'modified')
def backwards(self, orm):
# User chose to not deal with backwards NULL issues for 'Job.modified'
raise RuntimeError("Cannot reverse this migration. 'Job.modified' and its values cannot be restored.")
models = {
u'jobs.job': {
'Meta': {'object_name': 'Job'},
'company': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'data': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'location': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'url': ('django.db.models.fields.CharField', [], {'max_length': '255'})
}
}
complete_apps = ['jobs']

View File

@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
import datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Changing field 'Job.created'
db.alter_column(u'jobs_job', 'created', self.gf('django.db.models.fields.DateTimeField')())
def backwards(self, orm):
# Changing field 'Job.created'
db.alter_column(u'jobs_job', 'created', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True))
models = {
u'jobs.job': {
'Meta': {'object_name': 'Job'},
'company': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'created': ('django.db.models.fields.DateTimeField', [], {}),
'data': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'location': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'url': ('django.db.models.fields.CharField', [], {'max_length': '255'})
}
}
complete_apps = ['jobs']

View File

@ -8,9 +8,9 @@ class Job(models.Model):
company = models.CharField(max_length=255)
location = models.CharField(max_length=255)
url = models.CharField(max_length=255)
data = models.TextField(blank=True, null=True)
created = models.DateTimeField(auto_now_add=True, editable=False)
modified = models.DateTimeField(auto_now=True, editable=False)
created = models.DateTimeField()
def __unicode__(self):
return self.title

View File

@ -1,5 +1,6 @@
{% extends "base.html" %}
{% load humanize %}
{% load pagination_tags %}
{% block page-title %}Snipt Jobs{% endblock %}
@ -15,13 +16,14 @@
<ul>
{% for job in jobs %}
<li>
<a href="{{ job.url }}" class="group">
<a href="{{ job.url }}?aff=dbe7e" class="group">
<span class="left">
<span class="job">{{ job.title }}</span>
<span class="company">{{ job.company }}</span>
</span>
<span class="right">
<span class="location">{{ job.location }}</span>
<span class="date">{{ job.created|naturalday }}</span>
</span>
</a>
</li>
@ -36,9 +38,9 @@
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
</div>
<div class="post-job">
<strong>Want to post a job?</strong>
<a href="http://www.authenticjobs.com/post/?aff=dbe7e" class="btn btn-large btn-success">Post a job</a>
<p>
Job posts are currently <i>invite only</i>. If you'd like to be considered for future posts, please email <a href="mailto:jobs@snipt.net">jobs@snipt.net</a>.
We use <a href="http://www.authenticjobs.com?aff=dbe7e">Authentic Jobs</a> for our job board provider. Once you post your ad, it will appear on Snipt within 24 hours.
</p>
</div>
{% endblock %}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1857,6 +1857,9 @@ body.jobs {
margin-bottom: 0;
margin-top: 15px;
}
a {
width: 103px;
}
}
}
body.pro {