django-debug-toolbar<1.10
django-debug-toolbar-template-timings
-Fabric
sphinx
pyinotify
-fnpdeploy>=0.2.3
jsmin
fnp-django-pagination
django-maintenancemode==0.10
-django-piston==0.2.2.1.2
jsonfield>=1.0.3,<1.1
django-picklefield>=1.0,<1.1
django-modeltranslation>=0.10,<0.11
--- /dev/null
+from django.contrib import admin
+from . import models
+
+
+admin.site.register(models.Nonce)
+admin.site.register(models.Consumer)
+admin.site.register(models.Token)
--- /dev/null
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+from django.conf import settings
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Consumer',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('name', models.CharField(max_length=255)),
+ ('description', models.TextField()),
+ ('key', models.CharField(max_length=18)),
+ ('secret', models.CharField(max_length=32)),
+ ('status', models.CharField(default=b'pending', max_length=16, choices=[(b'pending', b'Pending approval'), (b'accepted', b'Accepted'), (b'canceled', b'Canceled')])),
+ ('user', models.ForeignKey(related_name='consumers', blank=True, to=settings.AUTH_USER_MODEL, null=True)),
+ ],
+ ),
+ migrations.CreateModel(
+ name='Nonce',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('token_key', models.CharField(max_length=18)),
+ ('consumer_key', models.CharField(max_length=18)),
+ ('key', models.CharField(max_length=255)),
+ ],
+ ),
+ migrations.CreateModel(
+ name='Resource',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('name', models.CharField(max_length=255)),
+ ('url', models.TextField(max_length=2047)),
+ ('is_readonly', models.BooleanField(default=True)),
+ ],
+ ),
+ migrations.CreateModel(
+ name='Token',
+ fields=[
+ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+ ('key', models.CharField(max_length=18)),
+ ('secret', models.CharField(max_length=32)),
+ ('token_type', models.IntegerField(choices=[(1, 'Request'), (2, 'Access')])),
+ ('timestamp', models.IntegerField()),
+ ('is_approved', models.BooleanField(default=False)),
+ ('consumer', models.ForeignKey(to='piston.Consumer')),
+ ('user', models.ForeignKey(related_name='tokens', blank=True, to=settings.AUTH_USER_MODEL, null=True)),
+ ],
+ ),
+ ]
--- /dev/null
+from django.conf import settings
+from django.db import models
+
+
+KEY_SIZE = 18
+SECRET_SIZE = 32
+
+CONSUMER_STATES = (
+ ('pending', 'Pending approval'),
+ ('accepted', 'Accepted'),
+ ('canceled', 'Canceled'),
+)
+
+
+class Nonce(models.Model):
+ token_key = models.CharField(max_length=KEY_SIZE)
+ consumer_key = models.CharField(max_length=KEY_SIZE)
+ key = models.CharField(max_length=255)
+
+ def __unicode__(self):
+ return u"Nonce %s for %s" % (self.key, self.consumer_key)
+
+
+class Resource(models.Model):
+ name = models.CharField(max_length=255)
+ url = models.TextField(max_length=2047)
+ is_readonly = models.BooleanField(default=True)
+
+
+class Consumer(models.Model):
+ name = models.CharField(max_length=255)
+ description = models.TextField()
+ key = models.CharField(max_length=KEY_SIZE)
+ secret = models.CharField(max_length=SECRET_SIZE)
+ status = models.CharField(max_length=16, choices=CONSUMER_STATES, default='pending')
+ user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True, related_name='consumers')
+
+ def __unicode__(self):
+ return u"Consumer %s with key %s" % (self.name, self.key)
+
+
+class Token(models.Model):
+ REQUEST = 1
+ ACCESS = 2
+ TOKEN_TYPES = ((REQUEST, u'Request'), (ACCESS, u'Access'))
+
+ key = models.CharField(max_length=KEY_SIZE)
+ secret = models.CharField(max_length=SECRET_SIZE)
+ token_type = models.IntegerField(choices=TOKEN_TYPES)
+ timestamp = models.IntegerField()
+ is_approved = models.BooleanField(default=False)
+ user = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True, related_name='tokens')
+ consumer = models.ForeignKey(Consumer)
+
+ def __unicode__(self):
+ return u"%s Token %s for %s" % (self.get_token_type_display(), self.key, self.consumer)
#
import time
from oauthlib.oauth1 import RequestValidator
-from piston.models import Consumer, Nonce, Token
+from api.piston.models import Consumer, Nonce, Token
class PistonRequestValidator(RequestValidator):
from django.test import TestCase
from django.test.utils import override_settings
from mock import patch
-from piston.models import Consumer, Token
+from api.piston.models import Consumer, Token
from catalogue.models import Book, Tag
from picture.forms import PictureImportForm
from django.views.generic.base import View
from oauthlib.common import urlencode
from oauthlib.oauth1 import RequestTokenEndpoint, AccessTokenEndpoint
-from piston.models import KEY_SIZE, SECRET_SIZE
+from api.piston.models import KEY_SIZE, SECRET_SIZE
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
+++ /dev/null
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import migrations, models
-from django.conf import settings
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- migrations.swappable_dependency(settings.AUTH_USER_MODEL),
- ]
-
- operations = [
- migrations.CreateModel(
- name='Consumer',
- fields=[
- ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
- ('name', models.CharField(max_length=255)),
- ('description', models.TextField()),
- ('key', models.CharField(max_length=18)),
- ('secret', models.CharField(max_length=32)),
- ('status', models.CharField(default=b'pending', max_length=16, choices=[(b'pending', b'Pending approval'), (b'accepted', b'Accepted'), (b'canceled', b'Canceled')])),
- ('user', models.ForeignKey(related_name='consumers', blank=True, to=settings.AUTH_USER_MODEL, null=True)),
- ],
- ),
- migrations.CreateModel(
- name='Nonce',
- fields=[
- ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
- ('token_key', models.CharField(max_length=18)),
- ('consumer_key', models.CharField(max_length=18)),
- ('key', models.CharField(max_length=255)),
- ],
- ),
- migrations.CreateModel(
- name='Resource',
- fields=[
- ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
- ('name', models.CharField(max_length=255)),
- ('url', models.TextField(max_length=2047)),
- ('is_readonly', models.BooleanField(default=True)),
- ],
- ),
- migrations.CreateModel(
- name='Token',
- fields=[
- ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
- ('key', models.CharField(max_length=18)),
- ('secret', models.CharField(max_length=32)),
- ('token_type', models.IntegerField(choices=[(1, 'Request'), (2, 'Access')])),
- ('timestamp', models.IntegerField()),
- ('is_approved', models.BooleanField(default=False)),
- ('consumer', models.ForeignKey(to='piston.Consumer')),
- ('user', models.ForeignKey(related_name='tokens', blank=True, to=settings.AUTH_USER_MODEL, null=True)),
- ],
- ),
- ]
'rest_framework',
'fnp_django_pagination',
'pipeline',
- 'piston',
+ 'api.piston',
'piwik',
'sorl.thumbnail',
'kombu.transport.django',
MIGRATION_MODULES = {
'getpaid': 'wolnelektury.migrations.getpaid',
- 'piston': 'wolnelektury.migrations.piston',
}
GETPAID_ORDER_DESCRIPTION = "{% load funding_tags %}{{ order|sanitize_payment_title }}"