Commit 3d46e0dc21d911da1d378c14a676cdd150f156a4

Authored by Andrew Buss
0 parents
Exists in master

init

Showing 14 changed files with 251 additions and 0 deletions Inline Diff

File was created 1 venv
2 db.sqlite3
File was created 1 #!/usr/bin/env python
2 import os
3 import sys
4
5 if __name__ == "__main__":
6 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "notes.settings")
7
notes/migrations/0001_initial.py View file @ 3d46e0d
File was created 1 # -*- coding: utf-8 -*-
2 from __future__ import unicode_literals
3
4 from django.db import models, migrations
5
6
7 class Migration(migrations.Migration):
8
9 dependencies = [
10 ]
11
12 operations = [
13 migrations.CreateModel(
14 name='Note',
15 fields=[
16 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
17 ('text', models.CharField(max_length=255)),
18 ('last_updated', models.DateTimeField(auto_now=True)),
19 ],
notes/models.py View file @ 3d46e0d
File was created 1 from django.db import models
2 from django.contrib import admin
3 from swampdragon.serializers.model_serializer import ModelSerializer
4 from swampdragon.models import SelfPublishModel
5
6 class NoteSerializer(ModelSerializer):
7 class Meta:
8 model = 'notes.Note'
9 publish_fields = ('text','last_updated')
10
11 class Note(SelfPublishModel, models.Model):
12 text = models.CharField(max_length=255)
13 last_updated = models.DateTimeField(auto_now=True)
notes/routers.py View file @ 3d46e0d
File was created 1 from swampdragon import route_handler
2 from swampdragon.route_handler import ModelRouter
3 from notes.models import Note, NoteSerializer
4
5
6 class NoteRouter(ModelRouter):
7 route_name = 'note-list'
8 serializer_class = NoteSerializer
9 model = Note
10
11 def get_object(self, **kwargs):
12 return self.model.objects.get(pk=kwargs['id'])
notes/settings.py View file @ 3d46e0d
File was created 1 """
2 Django settings for notes project.
3
4 For more information on this file, see
5 https://docs.djangoproject.com/en/1.6/topics/settings/
6
7 For the full list of settings and their values, see
8 https://docs.djangoproject.com/en/1.6/ref/settings/
9 """
10
11 # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
12 import os
13 BASE_DIR = os.path.dirname(os.path.dirname(__file__))
14
15
16 # Quick-start development settings - unsuitable for production
17 # See https://docs.djangoproject.com/en/1.6/howto/deployment/checklist/
18
19 # SECURITY WARNING: keep the secret key used in production secret!
20 SECRET_KEY = '2+u_)-dlz+&8(jrd!58ru-o&sg4_mj$97xmslmvnmxb=mnd@i@'
21 TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')]
22 STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
23 DRAGON_URL = os.environ['DRAGON_URL']
24 SWAMP_DRAGON_CONNECTION = ('swampdragon.connections.sockjs_connection.DjangoSubscriberConnection', '/data')
25
26
27 # SECURITY WARNING: don't run with debug turned on in production!
28 DEBUG = True
29
30 TEMPLATE_DEBUG = True
31
32 ALLOWED_HOSTS = []
33
34
35 # Application definition
36
37 INSTALLED_APPS = (
38 'notes',
39 'django.contrib.admin',
40 'django.contrib.auth',
41 'django.contrib.contenttypes',
42 'django.contrib.sessions',
43 'django.contrib.messages',
44 'django.contrib.staticfiles',
45 'swampdragon'
46
47 )
48
49 TEMPLATE_LOADERS = (
50 'django.template.loaders.app_directories.Loader',
51 'django.template.loaders.filesystem.Loader',
52 )
53
54
55 MIDDLEWARE_CLASSES = (
56 'django.contrib.sessions.middleware.SessionMiddleware',
57 'django.middleware.common.CommonMiddleware',
58 'django.middleware.csrf.CsrfViewMiddleware',
59 'django.contrib.auth.middleware.AuthenticationMiddleware',
60 'django.contrib.messages.middleware.MessageMiddleware',
61 'django.middleware.clickjacking.XFrameOptionsMiddleware',
62 )
63
64 ROOT_URLCONF = 'notes.urls'
65
notes/templates/add_note.html View file @ 3d46e0d
File was created 1 <form action="" method="POST">
2 {% csrf_token %}
3 <input type="text" name="text">
4 <input type="Submit" name="submit">
5 </form>
notes/templates/list_notes.html View file @ 3d46e0d
File was created 1 {% load static swampdragon_tags %}
2 {% swampdragon_settings %}
3 <h1>List of notes</h1>
4 <a href="/notes/add">Add new</a></br>
5 <ul>
6 {% for note in notes.iterator %}
7 <li>{{ note.text }} - Last updated {{ note.last_updated }}</li>
8 {% endfor %}
9 </ul>
10
11 <script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
12 <script type="text/javascript" src="{% static 'swampdragon/js/dist/swampdragon.min.js' %}"></script>
13 <script defer>
14 swampdragon.ready(function() {
15 console.log("swampdragon ready");
16 swampdragon.subscribe('note-list', 'local-channel', null, function(context, data) {
17 console.log("subscribed successfully");
18 swampdragon.onChannelMessage(function(channels, message) {
19 console.log(channels);
20 console.log(message);
21 $('ul').append($('<li>'+message.data.text+'</li>'));
22 });
23 }, function(context, data) {
24 console.log("failed to subscribe");
25 })
26 });
notes/urls.py View file @ 3d46e0d
File was created 1 from django.conf.urls import patterns, include, url
2
3 from django.contrib import admin
4 admin.autodiscover()
5
6 from notes.views import *
7 urlpatterns = patterns('',
8 # Examples:
9 # url(r'^$', 'notes.views.home', name='home'),
10 # url(r'^blog/', include('blog.urls')),
11
12 url(r'^admin/', include(admin.site.urls)),
notes/views.py View file @ 3d46e0d
File was created 1 from django.shortcuts import render, redirect
2 from notes.models import *
3
4 def list_notes(request):
5 return render(request, 'list_notes.html', {
6 'notes':Note.objects
7 })
8
9 def add_notes(request):
10 if request.method == "POST":
11 Note(text=request.POST['text']).save()
12 return redirect('/notes/')
notes/wsgi.py View file @ 3d46e0d
File was created 1 """
2 WSGI config for notes project.
3
4 It exposes the WSGI callable as a module-level variable named ``application``.
5
6 For more information on this file, see
7 https://docs.djangoproject.com/en/1.6/howto/deployment/wsgi/
8 """
9
10 import os
File was created 1 #!/usr/bin/env python
2 import os
3 import sys
4
5
6 from swampdragon.swampdragon_server import run_server
7