Move MinecraftProfile from the profiles app into the minecraft app, and stop using the auth profiles feature.
Might go back to auth profiles if a suitable use can be found.
This commit is contained in:
@@ -34,7 +34,7 @@ class MOTDHandler(AnonymousBaseHandler):
|
||||
class BalanceHandler(BaseHandler):
|
||||
def read(self, request):
|
||||
user = request.user
|
||||
return {"balance":user.get_profile().currencyaccount.balance}
|
||||
return {"balance":user.minecraftprofile.currencyaccount.balance}
|
||||
|
||||
class ServerHandler(AnonymousBaseHandler):
|
||||
allowed_methods = ('GET',)
|
||||
|
@@ -1,5 +1,5 @@
|
||||
from django.db import models
|
||||
from profiles.models import MinecraftProfile
|
||||
from minecraft.models import MinecraftProfile
|
||||
from django.db.models.signals import post_save
|
||||
|
||||
class CurrencyAccount(models.Model):
|
||||
|
@@ -1,5 +1,6 @@
|
||||
import models
|
||||
from django.contrib import admin
|
||||
|
||||
admin.site.register(models.MinecraftProfile)
|
||||
admin.site.register(models.Server)
|
||||
admin.site.register(models.MOTD)
|
||||
|
9
minecraft/forms.py
Normal file
9
minecraft/forms.py
Normal file
@@ -0,0 +1,9 @@
|
||||
from django import forms
|
||||
from django.contrib.auth.models import User
|
||||
import models
|
||||
|
||||
class ProfileForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = models.MinecraftProfile
|
||||
exclude = ('user',)
|
||||
|
@@ -37,7 +37,7 @@ class Command(BaseCommand):
|
||||
djangoUser.save()
|
||||
djangoUser.groups.add(importGroup)
|
||||
djangoUser.save()
|
||||
profile = djangoUser.get_profile()
|
||||
profile = djangoUser.minecraftprofile
|
||||
profile.mc_username = u[6]
|
||||
profile.save()
|
||||
print "Imported %s <%s>"%(u[0], u[6])
|
||||
|
86
minecraft/migrations/0003_auto__add_minecraftprofile.py
Normal file
86
minecraft/migrations/0003_auto__add_minecraftprofile.py
Normal file
@@ -0,0 +1,86 @@
|
||||
# encoding: utf-8
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
from django.db.utils import DatabaseError
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
|
||||
try:
|
||||
db.rename_table('profiles_minecraftprofile', 'minecraft_minecraftprofile')
|
||||
except DatabaseError, e:
|
||||
# Adding model 'MinecraftProfile'
|
||||
db.create_table('minecraft_minecraftprofile', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('user', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['auth.User'], unique=True)),
|
||||
('mc_username', self.gf('django.db.models.fields.CharField')(unique=True, max_length=30)),
|
||||
))
|
||||
db.send_create_signal('minecraft', ['MinecraftProfile'])
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
db.rename_table('minecraft_minecraftprofile', 'profiles_minecraftprofile')
|
||||
|
||||
|
||||
models = {
|
||||
'auth.group': {
|
||||
'Meta': {'object_name': 'Group'},
|
||||
'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': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
||||
},
|
||||
'auth.permission': {
|
||||
'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
|
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
'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', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
||||
'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', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
||||
},
|
||||
'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'})
|
||||
},
|
||||
'minecraft.minecraftprofile': {
|
||||
'Meta': {'object_name': 'MinecraftProfile'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'mc_username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}),
|
||||
'user': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True'})
|
||||
},
|
||||
'minecraft.motd': {
|
||||
'Meta': {'object_name': 'MOTD'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'server': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['minecraft.Server']"}),
|
||||
'text': ('django.db.models.fields.TextField', [], {})
|
||||
},
|
||||
'minecraft.server': {
|
||||
'Meta': {'object_name': 'Server'},
|
||||
'hostname': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'port': ('django.db.models.fields.IntegerField', [], {'default': '25565'}),
|
||||
'query_port': ('django.db.models.fields.IntegerField', [], {'default': '25565'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['minecraft']
|
@@ -1,10 +1,18 @@
|
||||
from django.db import models
|
||||
from django.contrib.auth.models import User
|
||||
from django.db.models.signals import post_save
|
||||
import pyspy
|
||||
from django.core.cache import cache
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
from profiles.models import MinecraftProfile
|
||||
import socket
|
||||
|
||||
class MinecraftProfile(models.Model):
|
||||
user = models.OneToOneField(User)
|
||||
mc_username = models.CharField(max_length=30, verbose_name="Minecraft.net Username", unique=True)
|
||||
|
||||
def __unicode__(self):
|
||||
return self.mc_username
|
||||
|
||||
class Server(models.Model):
|
||||
hostname = models.CharField(max_length=100)
|
||||
port = models.IntegerField(default=25565)
|
||||
@@ -43,3 +51,9 @@ class MOTD(models.Model):
|
||||
|
||||
def __unicode__(self):
|
||||
return self.text
|
||||
|
||||
def create_profile(sender, instance, created, **kwargs):
|
||||
if created:
|
||||
MinecraftProfile.objects.create(user=instance)
|
||||
|
||||
post_save.connect(create_profile, sender=User)
|
||||
|
@@ -1,4 +1,3 @@
|
||||
import models
|
||||
from django.contrib import admin
|
||||
admin.site.register(models.MinecraftProfile)
|
||||
admin.site.register(models.Quote)
|
||||
|
@@ -2,11 +2,6 @@ from django import forms
|
||||
from django.contrib.auth.models import User
|
||||
import models
|
||||
|
||||
class ProfileForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = models.MinecraftProfile
|
||||
exclude = ('user',)
|
||||
|
||||
class LoginForm(forms.Form):
|
||||
username = forms.CharField()
|
||||
password = forms.CharField(widget=forms.PasswordInput)
|
||||
|
@@ -2,14 +2,6 @@ from django.db import models
|
||||
from django.contrib.auth.models import User
|
||||
from django.db.models.signals import post_save
|
||||
|
||||
class MinecraftProfile(models.Model):
|
||||
user = models.OneToOneField(User)
|
||||
mc_username = models.CharField(max_length=30, verbose_name="Minecraft.net Username", unique=True)
|
||||
|
||||
def __unicode__(self):
|
||||
return self.mc_username
|
||||
|
||||
|
||||
class Invite(models.Model):
|
||||
code = models.CharField(max_length=30)
|
||||
creator = models.ForeignKey(User, related_name='invites')
|
||||
@@ -28,9 +20,3 @@ class Quote(models.Model):
|
||||
|
||||
def __unicode__(self):
|
||||
return self.text
|
||||
|
||||
def create_profile(sender, instance, created, **kwargs):
|
||||
if created:
|
||||
MinecraftProfile.objects.create(user=instance)
|
||||
|
||||
post_save.connect(create_profile, sender=User)
|
||||
|
@@ -10,6 +10,7 @@ from django.contrib.auth import authenticate, login
|
||||
import forms
|
||||
import models
|
||||
import shortuuid
|
||||
from minecraft.forms import ProfileForm
|
||||
|
||||
@login_required
|
||||
def profile(request):
|
||||
@@ -18,11 +19,11 @@ def profile(request):
|
||||
@login_required
|
||||
def edit(request):
|
||||
if request.method == 'POST':
|
||||
form = forms.ProfileForm(request.POST, instance=request.user.get_profile())
|
||||
form = ProfileForm(request.POST, instance=request.user.minecraftprofile)
|
||||
else:
|
||||
form = forms.ProfileForm(instance=request.user.get_profile())
|
||||
form = ProfileForm(instance=request.user.minecraftprofile)
|
||||
if form.is_valid():
|
||||
profile = request.user.get_profile()
|
||||
profile = request.user.minecraftprofile
|
||||
profile.mc_username = form.cleaned_data['mc_username']
|
||||
profile.save()
|
||||
return HttpResponseRedirect(reverse('profiles.views.profile'))
|
||||
@@ -66,10 +67,10 @@ def register(request):
|
||||
invite = request.session['profile-invite']
|
||||
if request.method == 'POST':
|
||||
userForm = forms.UserForm(request.POST, prefix='user')
|
||||
profileForm = forms.ProfileForm(request.POST, prefix='profile')
|
||||
profileForm = ProfileForm(request.POST, prefix='profile')
|
||||
else:
|
||||
userForm = forms.UserForm(prefix='user')
|
||||
profileForm = forms.ProfileForm(prefix='profile')
|
||||
profileForm = ProfileForm(prefix='profile')
|
||||
if userForm.is_valid() and profileForm.is_valid():
|
||||
user = User()
|
||||
user.username = userForm.cleaned_data['username']
|
||||
@@ -78,7 +79,7 @@ def register(request):
|
||||
user.save()
|
||||
invite.claimer = user
|
||||
invite.save()
|
||||
profile = user.get_profile()
|
||||
profile = user.minecraftprofile
|
||||
profile.mc_username = profileForm.cleaned_data['mc_username']
|
||||
profile.save()
|
||||
del request.session['profile-invite']
|
||||
|
@@ -160,8 +160,6 @@ LOGGING = {
|
||||
}
|
||||
}
|
||||
|
||||
AUTH_PROFILE_MODULE = 'profiles.MinecraftProfile'
|
||||
|
||||
TEMPLATE_CONTEXT_PROCESSORS = (
|
||||
"django.contrib.auth.context_processors.auth",
|
||||
"django.core.context_processors.debug",
|
||||
|
@@ -35,10 +35,10 @@
|
||||
<h2 class="title">{{user.username}}</h2>
|
||||
<div class="userbox">
|
||||
<div class="avatar">
|
||||
{% avatar user.get_profile.mc_username %}
|
||||
{% avatar user.minecraftprofile.mc_username %}
|
||||
</div>
|
||||
<div class="balance">
|
||||
<span id="balance-display">{{ user.get_profile.currencyaccount.balance|floatformat:2 }}</span> grist
|
||||
<span id="balance-display">{{ user.minecraftprofile.currencyaccount.balance|floatformat:2 }}</span> grist
|
||||
</div>
|
||||
<div class="time">
|
||||
<span id="time-display"></span>
|
||||
|
Reference in New Issue
Block a user