placeholder code

master
eric 2016-03-30 15:34:09 -04:00
parent ab677b43fb
commit 4097567fcc
12 changed files with 142 additions and 0 deletions

View File

@ -1,2 +1,4 @@
# ItemOrientedSurvey
A django module for presenting a survey linked to a model object
Just a placeholder for now.

0
survey/__init__.py Normal file
View File

8
survey/admin.py Normal file
View File

@ -0,0 +1,8 @@
from django.contrib import admin
from .models import Landing
# new in dj1.7
# @admin.register(Landing)
class LandingAdmin(admin.ModelAdmin):
pass

View File

View File

View File

@ -0,0 +1,16 @@
import string
from django.core.management.base import BaseCommand
from ...models import Landing
class Command(BaseCommand):
help = "make survey nonces with the specified label"
args = "<how_many> <label>"
def handle(self, how_many=1, label="no label yet", **options):
how_many=int(how_many)
while how_many>0:
landing = Landing.objects.create(label=label)
print landing.nonce
how_many -= 1

View File

@ -0,0 +1,45 @@
# -*- 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 model 'Landing'
db.create_table('survey_landing', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('nonce', self.gf('django.db.models.fields.CharField')(max_length=32, null=True)),
('content_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'], null=True)),
('object_id', self.gf('django.db.models.fields.PositiveIntegerField')(null=True)),
('label', self.gf('django.db.models.fields.CharField')(max_length=64, null=True)),
))
db.send_create_signal('survey', ['Landing'])
def backwards(self, orm):
# Deleting model 'Landing'
db.delete_table('survey_landing')
models = {
'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
'survey.landing': {
'Meta': {'object_name': 'Landing'},
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']", 'null': 'True'}),
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'label': ('django.db.models.fields.CharField', [], {'max_length': '64', 'null': 'True'}),
'nonce': ('django.db.models.fields.CharField', [], {'max_length': '32', 'null': 'True'}),
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True'})
}
}
complete_apps = ['survey']

View File

30
survey/models.py Normal file
View File

@ -0,0 +1,30 @@
import hashlib
import uuid
from datetime import datetime
from django.conf import settings
from django.contrib.contenttypes.generic import GenericForeignKey
from django.contrib.contenttypes.models import ContentType
from django.db import models
from django.db.models.signals import post_save
class Landing(models.Model):
# defines an entry point to a Feedback session
nonce = models.CharField(max_length=32, null=True,blank=True)
content_type = models.ForeignKey(ContentType, null=True,blank=True)
object_id = models.PositiveIntegerField(null=True,blank=True)
content_object = GenericForeignKey('content_type', 'object_id')
label = models.CharField(max_length=64, blank=True)
def _hash(self):
return uuid.uuid4().hex
def __str__(self):
return self.label
def config_landing(sender, instance, created, **kwargs):
if created:
instance.nonce=instance._hash()
instance.save()
post_save.connect(config_landing,sender=Landing)

View File

@ -0,0 +1,14 @@
{% extends 'basedocumentation.html' %}
{% load url from future %}
{% block title %}Tell us Stuff!{% endblock %}
{% block doccontent %}
<h2>Tell us stuff!</h2>
<p>We are excited that this is Open Access book and really hope that it will be shared around, read by lots of people all over the world, and used in lots of exciting new ways. We would love to hear about you and how you are using it - please would you share your story with us using this link: (it will only take about 3 minutes - and you could just get a free book as well ….)</p>
<p>But comeback again, our survey for {{landing.label}} isn't ready yet.</p>
{% endblock %}

7
survey/urls.py Normal file
View File

@ -0,0 +1,7 @@
from django.conf.urls.defaults import *
from .views import SurveyView
urlpatterns = patterns('',
url(r'^landing/(?P<nonce>\w+)/$', SurveyView.as_view(), name="landing"),
)

20
survey/views.py Normal file
View File

@ -0,0 +1,20 @@
import logging
from django.shortcuts import get_object_or_404
from django.views.generic.base import TemplateView
from .models import Landing
class SurveyView(TemplateView):
template_name = "survey/generic.html"
def get_context_data(self, **kwargs):
context = super(SurveyView, self).get_context_data(**kwargs)
nonce = self.kwargs['nonce']
landing = get_object_or_404(Landing, nonce=nonce)
context["landing"] = landing
return context