From 05cc898e8ee8e5359b35aa6cbddec769f126a1ed Mon Sep 17 00:00:00 2001 From: Steadman Date: Tue, 26 May 2015 16:44:05 +0100 Subject: [PATCH] Get ready for Django 1.8 --- bambu_buffer/__init__.py | 3 +- bambu_buffer/apps.py | 5 + bambu_buffer/migrations/0001_initial.py | 213 +++++++++--------------- bambu_buffer/models.py | 2 +- bambu_buffer/views.py | 2 +- setup.py | 2 +- 6 files changed, 85 insertions(+), 142 deletions(-) create mode 100644 bambu_buffer/apps.py diff --git a/bambu_buffer/__init__.py b/bambu_buffer/__init__.py index 5b343a0..e106f78 100644 --- a/bambu_buffer/__init__.py +++ b/bambu_buffer/__init__.py @@ -8,7 +8,8 @@ from datetime import datetime, date from threading import Thread import requests -__version__ = '2.1.1' +__version__ = '3.0' +default_app_config = 'bambu_buffer.apps.BufferConfig' class BufferThread(Thread): def __init__(self, token, data, *args, **kwargs): diff --git a/bambu_buffer/apps.py b/bambu_buffer/apps.py new file mode 100644 index 0000000..b933f8c --- /dev/null +++ b/bambu_buffer/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + +class BufferConfig(AppConfig): + name = 'bambu_buffer' + verbose_name = 'Buffer' diff --git a/bambu_buffer/migrations/0001_initial.py b/bambu_buffer/migrations/0001_initial.py index 55a12b0..e27d9a2 100644 --- a/bambu_buffer/migrations/0001_initial.py +++ b/bambu_buffer/migrations/0001_initial.py @@ -1,143 +1,80 @@ # -*- coding: utf-8 -*- -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models +from __future__ import unicode_literals + +from django.db import models, migrations +from django.conf import settings -class Migration(SchemaMigration): +class Migration(migrations.Migration): - def forwards(self, orm): - # Adding model 'BufferToken' - db.create_table('buffer_token', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('user', self.gf('django.db.models.fields.related.ForeignKey')(related_name='buffer_tokens', unique=True, to=orm['auth.User'])), - ('token', self.gf('django.db.models.fields.CharField')(max_length=36)), - )) - db.send_create_signal('bambu_buffer', ['BufferToken']) + dependencies = [ + ('contenttypes', '0002_remove_content_type_name'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] - # Adding model 'BufferService' - db.create_table('buffer_service', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('token', self.gf('django.db.models.fields.related.ForeignKey')(related_name='services', to=orm['bambu_buffer.BufferToken'])), - ('name', self.gf('django.db.models.fields.CharField')(max_length=30)), - ('remote_id', self.gf('django.db.models.fields.CharField')(max_length=36)), - ('username', self.gf('django.db.models.fields.CharField')(max_length=30)), - )) - db.send_create_signal('bambu_buffer', ['BufferService']) - - # Adding model 'BufferProfile' - db.create_table('buffer_profile', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('service', self.gf('django.db.models.fields.related.ForeignKey')(related_name='profiles', to=orm['bambu_buffer.BufferService'])), - ('avatar', self.gf('django.db.models.fields.URLField')(max_length=255)), - ('created_at', self.gf('django.db.models.fields.DateTimeField')()), - ('default', self.gf('django.db.models.fields.BooleanField')(default=True)), - ('formatted_username', self.gf('django.db.models.fields.CharField')(max_length=100)), - ('remote_id', self.gf('django.db.models.fields.CharField')(unique=True, max_length=36)), - ('schedules', self.gf('django.db.models.fields.TextField')()), - ('selected', self.gf('django.db.models.fields.BooleanField')()), - )) - db.send_create_signal('bambu_buffer', ['BufferProfile']) - - # Adding model 'BufferedItem' - db.create_table('buffer_buffereditem', ( - (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('content_type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['contenttypes.ContentType'])), - ('object_id', self.gf('django.db.models.fields.PositiveIntegerField')()), - )) - db.send_create_signal('bambu_buffer', ['BufferedItem']) - - # Adding unique constraint on 'BufferedItem', fields ['content_type', 'object_id'] - db.create_unique('buffer_buffereditem', ['content_type_id', 'object_id']) - - - def backwards(self, orm): - # Removing unique constraint on 'BufferedItem', fields ['content_type', 'object_id'] - db.delete_unique('buffer_buffereditem', ['content_type_id', 'object_id']) - - # Deleting model 'BufferToken' - db.delete_table('buffer_token') - - # Deleting model 'BufferService' - db.delete_table('buffer_service') - - # Deleting model 'BufferProfile' - db.delete_table('buffer_profile') - - # Deleting model 'BufferedItem' - db.delete_table('buffer_buffereditem') - - - models = { - u'auth.group': { - 'Meta': {'object_name': 'Group'}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), - 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - u'auth.permission': { - 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - u'auth.user': { - 'Meta': {'object_name': 'User'}, - 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), - 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), - 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), - 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), - 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), - 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - 'bambu_buffer.buffereditem': { - 'Meta': {'unique_together': "(('content_type', 'object_id'),)", 'object_name': 'BufferedItem', 'db_table': "'buffer_buffereditem'"}, - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}) - }, - 'bambu_buffer.bufferprofile': { - 'Meta': {'object_name': 'BufferProfile', 'db_table': "'buffer_profile'"}, - 'avatar': ('django.db.models.fields.URLField', [], {'max_length': '255'}), - 'created_at': ('django.db.models.fields.DateTimeField', [], {}), - 'default': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), - 'formatted_username': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'remote_id': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '36'}), - 'schedules': ('django.db.models.fields.TextField', [], {}), - 'selected': ('django.db.models.fields.BooleanField', [], {}), - 'service': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'profiles'", 'to': "orm['bambu_buffer.BufferService']"}) - }, - 'bambu_buffer.bufferservice': { - 'Meta': {'object_name': 'BufferService', 'db_table': "'buffer_service'"}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}), - 'remote_id': ('django.db.models.fields.CharField', [], {'max_length': '36'}), - 'token': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'services'", 'to': "orm['bambu_buffer.BufferToken']"}), - 'username': ('django.db.models.fields.CharField', [], {'max_length': '30'}) - }, - 'bambu_buffer.buffertoken': { - 'Meta': {'object_name': 'BufferToken', 'db_table': "'buffer_token'"}, - u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'token': ('django.db.models.fields.CharField', [], {'max_length': '36'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'buffer_tokens'", 'unique': 'True', 'to': u"orm['auth.User']"}) - }, - u'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'}), - u'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'}) - } - } - - complete_apps = ['bambu_buffer'] \ No newline at end of file + operations = [ + migrations.CreateModel( + name='BufferedItem', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('object_id', models.PositiveIntegerField()), + ('content_type', models.ForeignKey(to='contenttypes.ContentType')), + ], + options={ + 'db_table': 'buffer_buffereditem', + }, + ), + migrations.CreateModel( + name='BufferProfile', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('avatar', models.URLField(max_length=255)), + ('created_at', models.DateTimeField()), + ('default', models.BooleanField(default=True)), + ('formatted_username', models.CharField(max_length=100)), + ('remote_id', models.CharField(unique=True, max_length=36)), + ('schedules', models.TextField()), + ('selected', models.BooleanField()), + ], + options={ + 'db_table': 'buffer_profile', + }, + ), + migrations.CreateModel( + name='BufferService', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=30)), + ('remote_id', models.CharField(max_length=36)), + ('username', models.CharField(max_length=30)), + ], + options={ + 'db_table': 'buffer_service', + }, + ), + migrations.CreateModel( + name='BufferToken', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('token', models.CharField(max_length=36)), + ('user', models.OneToOneField(related_name='buffer_tokens', to=settings.AUTH_USER_MODEL)), + ], + options={ + 'db_table': 'buffer_token', + }, + ), + migrations.AddField( + model_name='bufferservice', + name='token', + field=models.ForeignKey(related_name='services', to='bambu_buffer.BufferToken'), + ), + migrations.AddField( + model_name='bufferprofile', + name='service', + field=models.ForeignKey(related_name='profiles', to='bambu_buffer.BufferService'), + ), + migrations.AlterUniqueTogether( + name='buffereditem', + unique_together=set([('content_type', 'object_id')]), + ), + ] diff --git a/bambu_buffer/models.py b/bambu_buffer/models.py index d07fee0..0b60be7 100644 --- a/bambu_buffer/models.py +++ b/bambu_buffer/models.py @@ -7,7 +7,7 @@ from datetime import datetime, timedelta import requests, json class BufferToken(models.Model): - user = models.ForeignKey('auth.User', related_name = 'buffer_tokens', unique = True) + user = models.OneToOneField('auth.User', related_name = 'buffer_tokens') token = models.CharField(max_length = 36) def __unicode__(self): diff --git a/bambu_buffer/views.py b/bambu_buffer/views.py index 0706606..c02a584 100644 --- a/bambu_buffer/views.py +++ b/bambu_buffer/views.py @@ -58,7 +58,7 @@ def callback(request): data = response.json() token = data.get('access_token') - with transaction.commit_on_success(): + with transaction.atomic(): request.user.buffer_tokens.all().delete() request.user.buffer_tokens.create( token = token diff --git a/setup.py b/setup.py index f75141f..f284498 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ from os import path setup( name = 'bambu-buffer', - version = '2.1.1', + version = '3.0, description = 'Post to Buffer and manage profile settings through a Django-powered site', author = 'Steadman', author_email = 'mark@steadman.io',