Compare commits
89 Commits
Author | SHA1 | Date |
---|---|---|
Felipe | 94d51dac79 | |
Felipe | d4edfdb2bc | |
Felipe | dc54252660 | |
Felipe | b93544fc58 | |
Felipe Martín | 7ad3c3e675 | |
Felipe Martín | 41e6549742 | |
Felipe Martín | aba1fa1dc0 | |
Felipe Martín | ffd32c9fc8 | |
Felipe Martín | cb025ee214 | |
Felipe Martín | d89bd44f8b | |
Felipe Martín | 676cd2bf65 | |
Felipe Martín | 68d1611c60 | |
Felipe Martín | 463b7f4a83 | |
Felipe Martín | a449af2fdc | |
Felipe Martín | 0f73dcb540 | |
Felipe Martín | 503a0f2cd6 | |
Felipe Martín | 718c3729f6 | |
Felipe Martín | 46244b9add | |
Felipe Martín | c0bc749213 | |
Felipe Martín | afcd702cec | |
Felipe Martin | 4d41db4192 | |
Felipe Martin | 89b405d49a | |
Felipe Martin | 40e8fec52b | |
Felipe Martin | 217dcf79a3 | |
Felipe Martín | 45f37ecf2a | |
Felipe Martín | 680de44cdf | |
Felipe Martín | 24c54e50e5 | |
Felipe Martín | 199dae3695 | |
Felipe Martín | b9ab39991c | |
Felipe Martín | c2f2588331 | |
Felipe Martín | 9017bbcb31 | |
Felipe Martín | 0302aa73e1 | |
Felipe Martín | ade7ec2284 | |
Felipe Martín | b8a1aa33d5 | |
Felipe Martín | ba908ba0e9 | |
Felipe Martín | c007605f1f | |
Felipe Martín | 13a44293e5 | |
Felipe Martín | 19db8c9f7d | |
Felipe Martín | 21624f14b8 | |
Felipe Martín | c9eeb45025 | |
Felipe Martín | 6260faf47b | |
Felipe Martín | 6b78bf286a | |
Felipe Martín | 4be098dd2d | |
Felipe Martín | 92fe0f6ba8 | |
Felipe Martín | f3c034efb9 | |
Felipe Martín | a19b8501be | |
Felipe Martín | 301686a7f3 | |
Felipe Martín | 5b0d0601fc | |
Felipe Martín | 60b867cf9c | |
Felipe Martín | ae7843f9c2 | |
Felipe Martín | ffea80c049 | |
Felipe Martín | 513946e6fe | |
Felipe Martín | ae475f0dcd | |
Felipe Martín | 57a9cee9ba | |
Felipe Martín | e89dd7c12d | |
Felipe Martín | d63c07efd8 | |
Felipe Martín | 15a39dbbe8 | |
Felipe Martín | 53f6fb2281 | |
Felipe Martín | 828fffc589 | |
Felipe Martín | 3087443dc8 | |
Felipe Martín | 9e87367acb | |
Felipe Martín | 2b588786fe | |
Felipe Martín | 270bf8ee30 | |
Felipe Martín | 1c94d6883e | |
Felipe Martín | d2e0fb1f4e | |
Felipe Martín | 95fe6a55d0 | |
Felipe Martín | 1c27064369 | |
Felipe Martín | 5fa96a08bb | |
Felipe Martín | 85a52f23c1 | |
Felipe Martín | c87e5028b0 | |
Felipe Martín | e659a7c762 | |
Felipe Martin | aa28fdc965 | |
Felipe Martin | d4f45fac07 | |
Felipe Martín | c5b9517573 | |
Felipe Martín | cdacd63508 | |
Felipe Martín | 8beacd688a | |
Felipe Martín | 6c81aee115 | |
Felipe Martín | 9190ff5fdd | |
Felipe Martín | 0d43f0b3c7 | |
Felipe Martín | db2a9ab0a6 | |
Felipe Martín | 9f6ee806af | |
Felipe Martín | 829332c930 | |
Felipe Martín | d6fe24b3fc | |
Felipe Martín | 1d8f89799a | |
Felipe Martín | 16a270c9ef | |
Felipe Martín | 1d63c5c39c | |
Felipe Martín | 71411af9bf | |
Felipe Martín | e92e43bd32 | |
Felipe Martín | b84551f78b |
|
@ -9,3 +9,9 @@
|
|||
/utils/miner/jarfile
|
||||
/utils/miner/*.jar
|
||||
/utils/miner/*.json
|
||||
/minecraftcodex/database/static/css/*.css
|
||||
/minecraftcodex/database/static/js/*.js
|
||||
/minecraftcodex/blog/static/js/*.js
|
||||
/*.json
|
||||
/dev_ddbb.sqlite
|
||||
.sass-cache
|
||||
|
|
|
@ -4,6 +4,11 @@ from settings import *
|
|||
DEBUG = True
|
||||
TEMPLATE_DEBUG = DEBUG
|
||||
|
||||
ALLOWED_HOSTS = [
|
||||
'localhost',
|
||||
'127.0.0.1'
|
||||
]
|
||||
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.sqlite3',
|
||||
|
@ -11,3 +16,16 @@ DATABASES = {
|
|||
}
|
||||
}
|
||||
|
||||
TEMPLATE_CONTEXT = [
|
||||
('app_version', '[local development]'),
|
||||
]
|
||||
|
||||
INSTALLED_APPS = INSTALLED_APPS + ('debug_toolbar', )
|
||||
|
||||
MIDDLEWARE_CLASSES = MIDDLEWARE_CLASSES + ('debug_toolbar.middleware.DebugToolbarMiddleware',)
|
||||
|
||||
INTERNAL_IPS = ('127.0.0.1',)
|
||||
|
||||
DEBUG_TOOLBAR_CONFIG = {
|
||||
'INTERCEPT_REDIRECTS': False
|
||||
}
|
||||
|
|
|
@ -1 +1,2 @@
|
|||
django-debug-toolbar==0.9.4
|
||||
-r ../requirements.pip
|
||||
|
|
|
@ -7,7 +7,7 @@ from shutil import copytree
|
|||
# Config
|
||||
APP_DIRECTORY = './app'
|
||||
|
||||
GIT_REPOSITORY = 'git@bitbucket.org:fmartingr/minecraftcodex.git'
|
||||
GIT_REPOSITORY = 'git@github.com:fmartingr/minecraftcodex.git'
|
||||
GIT_DOWNLOAD_DIR = './src'
|
||||
GIT_APP_PATH = 'minecraftcodex'
|
||||
GIT_PATH_THIS = '%s/config/production/deploy.py' % GIT_DOWNLOAD_DIR
|
||||
|
@ -50,14 +50,14 @@ FIXTURES = [
|
|||
]
|
||||
|
||||
REQUIREMENTS = [
|
||||
'git', 'coffee', 'lessc', 'uglifyjs'
|
||||
'git', 'coffee', 'lessc', 'sass', 'uglifyjs'
|
||||
]
|
||||
|
||||
# Paths relatives to APP DIR
|
||||
PREPROCESSORS = {
|
||||
'coffee': {
|
||||
'items': [
|
||||
#('shoes/static/coffee/usc.coffee', 'shoes/static/js/usc.big.js'),
|
||||
('blog/static/coffee/load_redactor.coffee', 'blog/static/js/load_redactor.big.js'),
|
||||
],
|
||||
'params': ''
|
||||
},
|
||||
|
@ -68,9 +68,15 @@ PREPROCESSORS = {
|
|||
],
|
||||
'params': '-s -x'
|
||||
},
|
||||
'sass': {
|
||||
'items': [
|
||||
('database/static/sass/style.sass', 'database/static/css/style.css'),
|
||||
],
|
||||
'params': '--style compressed'
|
||||
},
|
||||
'uglify': {
|
||||
'items': [
|
||||
#('shoes/static/js/usc.big.js', 'shoes/static/js/usc.js'),
|
||||
('blog/static/js/load_redactor.big.js', 'blog/static/js/load_redactor.js'),
|
||||
],
|
||||
'params': '-c warnings=false'
|
||||
}
|
||||
|
@ -400,6 +406,18 @@ if PREPROCESSORS['less']['items']:
|
|||
shell=True)
|
||||
check_status(status, words=[os.path.basename(path_to), 'failed'])
|
||||
|
||||
if PREPROCESSORS['sass']['items']:
|
||||
title('SASS compiling and CSS compressing')
|
||||
for item in PREPROCESSORS['sass']['items']:
|
||||
sub("%s:" % item[0])
|
||||
path = "%s/%s" % (APP_DIRECTORY, item[0])
|
||||
path_to = "%s/%s" % (APP_DIRECTORY, item[1])
|
||||
params = ['sass', PREPROCESSORS['sass']['params'], path, '>', path_to]
|
||||
status = call(" ".join(params),
|
||||
stdout=open(os.devnull, 'wb'),
|
||||
shell=True)
|
||||
check_status(status, words=[os.path.basename(path_to), 'failed'])
|
||||
|
||||
title('Collecting all staticfiles')
|
||||
sub('manage.py ollectstatic:')
|
||||
status = call(
|
||||
|
|
|
@ -3,6 +3,15 @@
|
|||
echo "=> Updating system"
|
||||
pacman -Syu --noconfirm
|
||||
|
||||
echo "=> Creating user APP with its requirements"
|
||||
useradd app
|
||||
mkdir /home/app
|
||||
chown app:app /home/app
|
||||
su - app -c "mkdir conf"
|
||||
su - app -c "touch ./conf/app_version"
|
||||
su - app -c "touch .environment"
|
||||
su - app -c "echo 'source .environment' > .bash_profile"
|
||||
|
||||
echo "=> Installing python"
|
||||
pacman -S python2 python2-pip python2-virtualenv --noconfirm
|
||||
|
||||
|
@ -34,14 +43,9 @@ npm install -g coffee-script
|
|||
npm install -g uglify-js
|
||||
npm install -g less
|
||||
|
||||
echo "=> Creating user APP with its requirements"
|
||||
useradd app
|
||||
mkdir /home/app
|
||||
chown app:app /home/app
|
||||
su - app -c "mkdir conf"
|
||||
su - app -c "touch ./conf/app_version"
|
||||
su - app -c "touch .environment"
|
||||
su - app -c "echo 'source .environment' > .bash_profile"
|
||||
echo "=> Installing ruby and dependencies"
|
||||
pacman -S ruby --noconfirm
|
||||
su - app -c "gem install sass"
|
||||
|
||||
# Reminders
|
||||
echo "[REMEMBER!]"
|
||||
|
@ -49,3 +53,4 @@ echo " - Create ssh keypair for the app user."
|
|||
echo " - Configure sudo to let app user execute the maintenance scripts."
|
||||
echo " - Configure supervisor to include the app configuration."
|
||||
echo " - Configure nginx to include the app configuration."
|
||||
echo " - Add ruby PATH to .environment on app user!"
|
||||
|
|
|
@ -32,13 +32,21 @@ MEDIA_ROOT = 'media'
|
|||
MEDIA_URL = '/media/'
|
||||
|
||||
# Sentry
|
||||
SENTRY_CLIENT = 'raven.contrib.django.raven_compat.DjangoClient'
|
||||
RAVEN_CONFIG = {
|
||||
'dsn': 'http://809b0824b821462db7902f96cf5ad2c9:bf82b9625be84d9fb2f2a15af1009176@sentry.fmartingr.com/4',
|
||||
}
|
||||
|
||||
MIDDLEWARE_CLASSES = MIDDLEWARE_CLASSES + (
|
||||
MIDDLEWARE_CLASSES = (
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
'raven.contrib.django.raven_compat.middleware.SentryResponseErrorIdMiddleware',
|
||||
'raven.contrib.django.raven_compat.middleware.Sentry404CatchMiddleware',
|
||||
'django.middleware.csrf.CsrfViewMiddleware',
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
'django.contrib.messages.middleware.MessageMiddleware',
|
||||
'herobrine.middleware.HTMLCleanerMiddleware',
|
||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||
)
|
||||
|
||||
INSTALLED_APPS = INSTALLED_APPS + (
|
||||
|
@ -51,7 +59,7 @@ LOGGING = {
|
|||
'version': 1,
|
||||
'disable_existing_loggers': True,
|
||||
'root': {
|
||||
'level': 'DEBUG',
|
||||
'level': 'WARNING',
|
||||
'handlers': ['sentry'],
|
||||
},
|
||||
'formatters': {
|
||||
|
@ -61,30 +69,35 @@ LOGGING = {
|
|||
},
|
||||
'handlers': {
|
||||
'sentry': {
|
||||
'level': 'DEBUG',
|
||||
'level': 'WARNING',
|
||||
'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler',
|
||||
},
|
||||
'console': {
|
||||
'level': 'DEBUG',
|
||||
'level': 'WARNING',
|
||||
'class': 'logging.StreamHandler',
|
||||
'formatter': 'verbose'
|
||||
}
|
||||
},
|
||||
'loggers': {
|
||||
'django.db.backends': {
|
||||
'level': 'ERROR',
|
||||
'level': 'WARNING',
|
||||
'handlers': ['console', 'sentry'],
|
||||
'propagate': False,
|
||||
},
|
||||
'raven': {
|
||||
'level': 'DEBUG',
|
||||
'level': 'WARNING',
|
||||
'handlers': ['console', 'sentry'],
|
||||
'propagate': False,
|
||||
},
|
||||
'sentry.errors': {
|
||||
'level': 'DEBUG',
|
||||
'level': 'WARNING',
|
||||
'handlers': ['console', 'sentry'],
|
||||
'propagate': False,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
TEMPLATE_CONTEXT = [
|
||||
('google_analytics', 'UA-41178753-1'),
|
||||
('app_version', environ['APP_VERSION']),
|
||||
]
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
server {
|
||||
listen 80;
|
||||
server_name www.minecraftcodex.com minecraftcodex.com;
|
||||
#access_log logs/domain2.access.log main;
|
||||
access_log /home/app/logs/nginx.access.log;
|
||||
error_log /home/app/logs/nginx.error.log;
|
||||
|
||||
server_tokens off;
|
||||
|
||||
|
@ -14,8 +15,10 @@ server {
|
|||
# pass requests for dynamic content to rails/turbogears/zope, et al
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:8000;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_redirect off;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
Django==1.5.1
|
||||
Django==1.5.4
|
||||
jingo==0.6.1
|
||||
django-grappelli==2.4.4
|
||||
South==0.7.6
|
||||
django-grappelli==2.4.6
|
||||
South==0.8.2
|
||||
pytz==2013d
|
||||
|
|
|
@ -1,2 +1,4 @@
|
|||
#!/bin/bash
|
||||
free -h
|
||||
echo 3 > /proc/sys/vm/drop_caches
|
||||
free -h
|
||||
|
|
|
@ -175,9 +175,9 @@ def run():
|
|||
path = getcwd()
|
||||
with settings(hide('warnings', 'running'),
|
||||
warn_only=True):
|
||||
local('rm ./minecraftcodex/herobrine/local_settings.py')
|
||||
local('ln -s %s/config/development/local_settings.py %s/minecraftcodex/herobrine/local_settings.py' % (path, path))
|
||||
local('python minecraftcodex/manage.py runserver')
|
||||
local('rm ./minecraftcodex/herobrine/local_settings.py')
|
||||
|
||||
def test():
|
||||
if not active_virtualenv():
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
# -*- 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 'BlogEntry'
|
||||
db.create_table(u'blog_blogentry', (
|
||||
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('title', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
||||
('date', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime(2013, 5, 28, 0, 0))),
|
||||
('content', self.gf('django.db.models.fields.TextField')()),
|
||||
('slug', self.gf('django.db.models.fields.SlugField')(max_length=128)),
|
||||
))
|
||||
db.send_create_signal('blog', ['BlogEntry'])
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting model 'BlogEntry'
|
||||
db.delete_table(u'blog_blogentry')
|
||||
|
||||
|
||||
models = {
|
||||
'blog.blogentry': {
|
||||
'Meta': {'ordering': "['date']", 'object_name': 'BlogEntry'},
|
||||
'content': ('django.db.models.fields.TextField', [], {}),
|
||||
'date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2013, 5, 28, 0, 0)'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '128'}),
|
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['blog']
|
|
@ -0,0 +1,85 @@
|
|||
# -*- 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 field 'BlogEntry.draft'
|
||||
db.add_column(u'blog_blogentry', 'draft',
|
||||
self.gf('django.db.models.fields.BooleanField')(default=True),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'BlogEntry.user'
|
||||
db.add_column(u'blog_blogentry', 'user',
|
||||
self.gf('django.db.models.fields.related.ForeignKey')(default=1, to=orm['auth.User']),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
# Changing field 'BlogEntry.date'
|
||||
db.alter_column(u'blog_blogentry', 'date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True))
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting field 'BlogEntry.draft'
|
||||
db.delete_column(u'blog_blogentry', 'draft')
|
||||
|
||||
# Deleting field 'BlogEntry.user'
|
||||
db.delete_column(u'blog_blogentry', 'user_id')
|
||||
|
||||
|
||||
# Changing field 'BlogEntry.date'
|
||||
db.alter_column(u'blog_blogentry', 'date', self.gf('django.db.models.fields.DateTimeField')())
|
||||
|
||||
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', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
||||
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', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
|
||||
},
|
||||
'blog.blogentry': {
|
||||
'Meta': {'ordering': "['-date']", 'object_name': 'BlogEntry'},
|
||||
'content': ('django.db.models.fields.TextField', [], {}),
|
||||
'date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
|
||||
'draft': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'max_length': '128'}),
|
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'user': ('django.db.models.fields.related.ForeignKey', [], {'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 = ['blog']
|
|
@ -0,0 +1,48 @@
|
|||
from django.db import models
|
||||
from django.contrib import admin
|
||||
import datetime
|
||||
from django.utils.timezone import utc
|
||||
from django import forms
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
|
||||
# Create your models here.
|
||||
class BlogEntry(models.Model):
|
||||
title = models.CharField(max_length=128)
|
||||
date = models.DateTimeField(auto_now_add=True)
|
||||
content = models.TextField()
|
||||
slug = models.SlugField(max_length=128)
|
||||
draft = models.BooleanField(default=True)
|
||||
user = models.ForeignKey(User)
|
||||
|
||||
class Meta:
|
||||
app_label = 'blog'
|
||||
ordering = ['-date']
|
||||
|
||||
|
||||
class BlogEntryAdmin(admin.ModelAdmin):
|
||||
list_display = ('title', 'date', )
|
||||
list_display_links = ('title', )
|
||||
|
||||
list_filter = ('date', )
|
||||
search_fields = ('title', 'content', )
|
||||
|
||||
prepopulated_fields = {"slug": ("title",)}
|
||||
|
||||
formfield_overrides = {
|
||||
models.TextField: {
|
||||
'widget': forms.Textarea(attrs={'class': 'redactor-editor'})
|
||||
},
|
||||
}
|
||||
|
||||
class Media:
|
||||
css = {
|
||||
"all": ("lib/redactor.css",)
|
||||
}
|
||||
js = (
|
||||
"lib/jquery.2.0.0.js",
|
||||
"lib/redactor.8.2.5.js",
|
||||
"js/load_redactor.js",
|
||||
)
|
||||
|
||||
admin.site.register(BlogEntry, BlogEntryAdmin)
|
|
@ -0,0 +1,4 @@
|
|||
window.onload = ->
|
||||
items = document.querySelectorAll '.redactor-editor'
|
||||
for item in items
|
||||
$(item).redactor()
|
|
@ -0,0 +1,39 @@
|
|||
{% extends "layout.html" %}
|
||||
|
||||
{% block head_title %}
|
||||
{{ super() }} | Blog
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container">
|
||||
<h1>Blog</h1>
|
||||
{% for item in page.object_list %}
|
||||
<hr />
|
||||
<article class="blog-entry">
|
||||
<h2><a href="/blog/{{ item.date.year }}/{{ item.date.month }}/{{ item.date.day }}/{{ item.slug }}">{{ item.title }}</a></h2>
|
||||
<div>
|
||||
<i class="icon-calendar"></i> {{ item.date|dt('%B %e, %Y') }}
|
||||
|
||||
<i class="icon-user"></i> {{ item.user.first_name }}
|
||||
{% if item.draft %}
|
||||
<span class="badge badge-warning">
|
||||
This post is a draft
|
||||
</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="content">{{ item.content|safe }}</div>
|
||||
</article>
|
||||
{% endfor %}
|
||||
{% if paginator.num_pages > 1 %}
|
||||
<div class="pagination pagination-centered">
|
||||
<ul>
|
||||
{% for p in range(1, paginator.num_pages+1) %}
|
||||
<li {% if p == page_number %}class="active"{% endif %}>
|
||||
<a href="{{ url('blocks_list') }}?page={{ p }}">{{ p }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -0,0 +1,22 @@
|
|||
{% extends "layout.html" %}
|
||||
|
||||
{% block head_title %}
|
||||
{{ super() }} | Blog | {{ item.title }}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container">
|
||||
<p><a href="{{ url('blog_list') }}"><i class="icon-arrow-left"></i> Go back</a></p>
|
||||
<article class="blog-entry">
|
||||
<h1>{{ item.title }}</h1>
|
||||
<div>
|
||||
<i class="icon-calendar"></i> {{ item.date|dt('%B %e, %Y') }}
|
||||
|
||||
<i class="icon-user"></i> {{ item.user.first_name }}
|
||||
</div>
|
||||
<div class="content">
|
||||
{{ item.content|safe }}
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -0,0 +1,16 @@
|
|||
"""
|
||||
This file demonstrates writing tests using the unittest module. These will pass
|
||||
when you run "manage.py test".
|
||||
|
||||
Replace this with more appropriate tests for your application.
|
||||
"""
|
||||
|
||||
from django.test import TestCase
|
||||
|
||||
|
||||
class SimpleTest(TestCase):
|
||||
def test_basic_addition(self):
|
||||
"""
|
||||
Tests that 1 + 1 always equals 2.
|
||||
"""
|
||||
self.assertEqual(1 + 1, 2)
|
|
@ -0,0 +1,55 @@
|
|||
from blog.models import BlogEntry
|
||||
from django.core.paginator import Paginator
|
||||
from django.shortcuts import render_to_response
|
||||
from django.template import RequestContext
|
||||
|
||||
|
||||
def blog(request):
|
||||
section = 'blog'
|
||||
|
||||
if request.user.is_authenticated():
|
||||
items = BlogEntry.objects.all()
|
||||
else:
|
||||
items = BlogEntry.objects.filter(draft=False)
|
||||
|
||||
paginator = Paginator(items, 4)
|
||||
page_number = 1
|
||||
|
||||
if 'page' in request.GET:
|
||||
page_number = int(request.GET['page'])
|
||||
|
||||
page = paginator.page(page_number)
|
||||
|
||||
data = {
|
||||
'section': section,
|
||||
'page': page,
|
||||
'page_number': page_number,
|
||||
'paginator': paginator,
|
||||
}
|
||||
context = RequestContext(request, data)
|
||||
return render_to_response('blog.html', context_instance=context)
|
||||
|
||||
|
||||
def blog_item(request, year, month, day, slug):
|
||||
|
||||
if request.user.is_authenticated():
|
||||
item = BlogEntry.objects.get(
|
||||
slug=slug,
|
||||
date__year=int(year),
|
||||
date__month=int(month),
|
||||
date__day=int(day)
|
||||
)
|
||||
else:
|
||||
item = BlogEntry.objects.get(
|
||||
slug=slug,
|
||||
date__year=int(year),
|
||||
date__month=int(month),
|
||||
date__day=int(day),
|
||||
draft=False
|
||||
)
|
||||
|
||||
data = {
|
||||
'item': item
|
||||
}
|
||||
context = RequestContext(request, data)
|
||||
return render_to_response('blog_entry.html', context_instance=context)
|
|
@ -0,0 +1,51 @@
|
|||
# -*- 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 'JarFile'
|
||||
db.create_table(u'database_jarfile', (
|
||||
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('version', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['database.Version'])),
|
||||
('url', self.gf('django.db.models.fields.URLField')(max_length=200)),
|
||||
))
|
||||
db.send_create_signal('database', ['JarFile'])
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting model 'JarFile'
|
||||
db.delete_table(u'database_jarfile')
|
||||
|
||||
|
||||
models = {
|
||||
'database.jarfile': {
|
||||
'Meta': {'object_name': 'JarFile'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
|
||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Version']"})
|
||||
},
|
||||
'database.mod': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Mod'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
|
||||
},
|
||||
'database.version': {
|
||||
'Meta': {'ordering': "['date']", 'object_name': 'Version'},
|
||||
'changelog': ('django.db.models.fields.TextField', [], {}),
|
||||
'date': ('django.db.models.fields.DateField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'mod': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Mod']"}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
||||
'status': ('django.db.models.fields.CharField', [], {'default': "'release'", 'max_length': '10', 'blank': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||
'version_number': ('django.db.models.fields.CharField', [], {'default': "'0.1.0'", 'max_length': '256'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['database']
|
|
@ -0,0 +1,49 @@
|
|||
# -*- 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 field 'JarFile.description'
|
||||
db.add_column(u'database_jarfile', 'description',
|
||||
self.gf('django.db.models.fields.CharField')(default='client', max_length=256),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting field 'JarFile.description'
|
||||
db.delete_column(u'database_jarfile', 'description')
|
||||
|
||||
|
||||
models = {
|
||||
'database.jarfile': {
|
||||
'Meta': {'object_name': 'JarFile'},
|
||||
'description': ('django.db.models.fields.CharField', [], {'default': "'client'", 'max_length': '256'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
|
||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Version']"})
|
||||
},
|
||||
'database.mod': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Mod'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
|
||||
},
|
||||
'database.version': {
|
||||
'Meta': {'ordering': "['date']", 'object_name': 'Version'},
|
||||
'changelog': ('django.db.models.fields.TextField', [], {}),
|
||||
'date': ('django.db.models.fields.DateField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'mod': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Mod']"}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
||||
'status': ('django.db.models.fields.CharField', [], {'default': "'release'", 'max_length': '10', 'blank': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||
'version_number': ('django.db.models.fields.CharField', [], {'default': "'0.1.0'", 'max_length': '256'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['database']
|
|
@ -0,0 +1,50 @@
|
|||
# -*- 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 field 'Version.snapshot'
|
||||
db.add_column(u'database_version', 'snapshot',
|
||||
self.gf('django.db.models.fields.BooleanField')(default=False),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting field 'Version.snapshot'
|
||||
db.delete_column(u'database_version', 'snapshot')
|
||||
|
||||
|
||||
models = {
|
||||
'database.jarfile': {
|
||||
'Meta': {'object_name': 'JarFile'},
|
||||
'description': ('django.db.models.fields.CharField', [], {'default': "'client'", 'max_length': '256'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
|
||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Version']"})
|
||||
},
|
||||
'database.mod': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Mod'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
|
||||
},
|
||||
'database.version': {
|
||||
'Meta': {'ordering': "['date']", 'object_name': 'Version'},
|
||||
'changelog': ('django.db.models.fields.TextField', [], {}),
|
||||
'date': ('django.db.models.fields.DateField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'mod': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Mod']"}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
||||
'snapshot': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'status': ('django.db.models.fields.CharField', [], {'default': "'release'", 'max_length': '10', 'blank': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||
'version_number': ('django.db.models.fields.CharField', [], {'default': "'0.1.0'", 'max_length': '256'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['database']
|
|
@ -0,0 +1,59 @@
|
|||
# -*- 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 'Texture'
|
||||
db.create_table(u'database_texture', (
|
||||
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('name', self.gf('django.db.models.fields.CharField')(max_length=32)),
|
||||
('image', self.gf('django.db.models.fields.CharField')(max_length=64)),
|
||||
))
|
||||
db.send_create_signal(u'database', ['Texture'])
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting model 'Texture'
|
||||
db.delete_table(u'database_texture')
|
||||
|
||||
|
||||
models = {
|
||||
'database.jarfile': {
|
||||
'Meta': {'object_name': 'JarFile'},
|
||||
'description': ('django.db.models.fields.CharField', [], {'default': "'client'", 'max_length': '256'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
|
||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Version']"})
|
||||
},
|
||||
'database.mod': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Mod'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
|
||||
},
|
||||
u'database.texture': {
|
||||
'Meta': {'object_name': 'Texture'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'image': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '32'})
|
||||
},
|
||||
'database.version': {
|
||||
'Meta': {'ordering': "['date']", 'object_name': 'Version'},
|
||||
'changelog': ('django.db.models.fields.TextField', [], {}),
|
||||
'date': ('django.db.models.fields.DateField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'mod': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Mod']"}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
||||
'snapshot': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'status': ('django.db.models.fields.CharField', [], {'default': "'release'", 'max_length': '10', 'blank': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||
'version_number': ('django.db.models.fields.CharField', [], {'default': "'0.1.0'", 'max_length': '256'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['database']
|
|
@ -0,0 +1,57 @@
|
|||
# -*- 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 field 'Texture.type'
|
||||
db.add_column(u'database_texture', 'type',
|
||||
self.gf('django.db.models.fields.CharField')(default='items', max_length=16),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting field 'Texture.type'
|
||||
db.delete_column(u'database_texture', 'type')
|
||||
|
||||
|
||||
models = {
|
||||
'database.jarfile': {
|
||||
'Meta': {'object_name': 'JarFile'},
|
||||
'description': ('django.db.models.fields.CharField', [], {'default': "'client'", 'max_length': '256'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
|
||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Version']"})
|
||||
},
|
||||
'database.mod': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Mod'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
|
||||
},
|
||||
u'database.texture': {
|
||||
'Meta': {'object_name': 'Texture'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'image': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
|
||||
'type': ('django.db.models.fields.CharField', [], {'default': "'items'", 'max_length': '16'})
|
||||
},
|
||||
'database.version': {
|
||||
'Meta': {'ordering': "['date']", 'object_name': 'Version'},
|
||||
'changelog': ('django.db.models.fields.TextField', [], {}),
|
||||
'date': ('django.db.models.fields.DateField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'mod': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Mod']"}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
||||
'snapshot': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'status': ('django.db.models.fields.CharField', [], {'default': "'release'", 'max_length': '10', 'blank': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||
'version_number': ('django.db.models.fields.CharField', [], {'default': "'0.1.0'", 'max_length': '256'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['database']
|
|
@ -0,0 +1,68 @@
|
|||
# -*- 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 'Item'
|
||||
db.create_table(u'database_item', (
|
||||
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('internal_name', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
||||
('main_texture', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['database.Texture'], null=True)),
|
||||
('data_value', self.gf('django.db.models.fields.IntegerField')()),
|
||||
))
|
||||
db.send_create_signal(u'database', ['Item'])
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting model 'Item'
|
||||
db.delete_table(u'database_item')
|
||||
|
||||
|
||||
models = {
|
||||
u'database.item': {
|
||||
'Meta': {'object_name': 'Item'},
|
||||
'data_value': ('django.db.models.fields.IntegerField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'internal_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'main_texture': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Texture']", 'null': 'True'})
|
||||
},
|
||||
'database.jarfile': {
|
||||
'Meta': {'object_name': 'JarFile'},
|
||||
'description': ('django.db.models.fields.CharField', [], {'default': "'client'", 'max_length': '256'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
|
||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Version']"})
|
||||
},
|
||||
'database.mod': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Mod'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
|
||||
},
|
||||
u'database.texture': {
|
||||
'Meta': {'object_name': 'Texture'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'image': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
|
||||
'type': ('django.db.models.fields.CharField', [], {'default': "'items'", 'max_length': '16'})
|
||||
},
|
||||
'database.version': {
|
||||
'Meta': {'ordering': "['date']", 'object_name': 'Version'},
|
||||
'changelog': ('django.db.models.fields.TextField', [], {}),
|
||||
'date': ('django.db.models.fields.DateField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'mod': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Mod']"}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
||||
'snapshot': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'status': ('django.db.models.fields.CharField', [], {'default': "'release'", 'max_length': '10', 'blank': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||
'version_number': ('django.db.models.fields.CharField', [], {'default': "'0.1.0'", 'max_length': '256'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['database']
|
|
@ -0,0 +1,75 @@
|
|||
# -*- 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 'Block'
|
||||
db.create_table(u'database_block', (
|
||||
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('internal_name', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
||||
('main_texture', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['database.Texture'], null=True)),
|
||||
('data_value', self.gf('django.db.models.fields.IntegerField')()),
|
||||
))
|
||||
db.send_create_signal(u'database', ['Block'])
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting model 'Block'
|
||||
db.delete_table(u'database_block')
|
||||
|
||||
|
||||
models = {
|
||||
u'database.block': {
|
||||
'Meta': {'object_name': 'Block'},
|
||||
'data_value': ('django.db.models.fields.IntegerField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'internal_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'main_texture': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Texture']", 'null': 'True'})
|
||||
},
|
||||
u'database.item': {
|
||||
'Meta': {'object_name': 'Item'},
|
||||
'data_value': ('django.db.models.fields.IntegerField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'internal_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'main_texture': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Texture']", 'null': 'True'})
|
||||
},
|
||||
'database.jarfile': {
|
||||
'Meta': {'object_name': 'JarFile'},
|
||||
'description': ('django.db.models.fields.CharField', [], {'default': "'client'", 'max_length': '256'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
|
||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Version']"})
|
||||
},
|
||||
'database.mod': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Mod'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
|
||||
},
|
||||
u'database.texture': {
|
||||
'Meta': {'object_name': 'Texture'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'image': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
|
||||
'type': ('django.db.models.fields.CharField', [], {'default': "'items'", 'max_length': '16'})
|
||||
},
|
||||
'database.version': {
|
||||
'Meta': {'ordering': "['date']", 'object_name': 'Version'},
|
||||
'changelog': ('django.db.models.fields.TextField', [], {}),
|
||||
'date': ('django.db.models.fields.DateField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'mod': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Mod']"}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
||||
'snapshot': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'status': ('django.db.models.fields.CharField', [], {'default': "'release'", 'max_length': '10', 'blank': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||
'version_number': ('django.db.models.fields.CharField', [], {'default': "'0.1.0'", 'max_length': '256'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['database']
|
|
@ -0,0 +1,101 @@
|
|||
# -*- 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 'Language'
|
||||
db.create_table(u'database_language', (
|
||||
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('name', self.gf('django.db.models.fields.CharField')(max_length=64)),
|
||||
('region', self.gf('django.db.models.fields.CharField')(max_length=32)),
|
||||
('code', self.gf('django.db.models.fields.CharField')(max_length=12)),
|
||||
))
|
||||
db.send_create_signal(u'database', ['Language'])
|
||||
|
||||
# Adding model 'LanguageString'
|
||||
db.create_table(u'database_languagestring', (
|
||||
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('language', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['database.Language'])),
|
||||
('key', self.gf('django.db.models.fields.CharField')(max_length=256)),
|
||||
('value', self.gf('django.db.models.fields.CharField')(max_length=512)),
|
||||
))
|
||||
db.send_create_signal(u'database', ['LanguageString'])
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting model 'Language'
|
||||
db.delete_table(u'database_language')
|
||||
|
||||
# Deleting model 'LanguageString'
|
||||
db.delete_table(u'database_languagestring')
|
||||
|
||||
|
||||
models = {
|
||||
u'database.block': {
|
||||
'Meta': {'object_name': 'Block'},
|
||||
'data_value': ('django.db.models.fields.IntegerField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'internal_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'main_texture': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Texture']", 'null': 'True'})
|
||||
},
|
||||
u'database.item': {
|
||||
'Meta': {'object_name': 'Item'},
|
||||
'data_value': ('django.db.models.fields.IntegerField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'internal_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'main_texture': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Texture']", 'null': 'True'})
|
||||
},
|
||||
'database.jarfile': {
|
||||
'Meta': {'object_name': 'JarFile'},
|
||||
'description': ('django.db.models.fields.CharField', [], {'default': "'client'", 'max_length': '256'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
|
||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Version']"})
|
||||
},
|
||||
u'database.language': {
|
||||
'Meta': {'object_name': 'Language'},
|
||||
'code': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
|
||||
'region': ('django.db.models.fields.CharField', [], {'max_length': '32'})
|
||||
},
|
||||
u'database.languagestring': {
|
||||
'Meta': {'object_name': 'LanguageString'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'key': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
|
||||
'language': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Language']"}),
|
||||
'value': ('django.db.models.fields.CharField', [], {'max_length': '512'})
|
||||
},
|
||||
'database.mod': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Mod'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
|
||||
},
|
||||
u'database.texture': {
|
||||
'Meta': {'object_name': 'Texture'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'image': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
|
||||
'type': ('django.db.models.fields.CharField', [], {'default': "'items'", 'max_length': '16'})
|
||||
},
|
||||
'database.version': {
|
||||
'Meta': {'ordering': "['date']", 'object_name': 'Version'},
|
||||
'changelog': ('django.db.models.fields.TextField', [], {}),
|
||||
'date': ('django.db.models.fields.DateField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'mod': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Mod']"}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
||||
'snapshot': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'status': ('django.db.models.fields.CharField', [], {'default': "'release'", 'max_length': '10', 'blank': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||
'version_number': ('django.db.models.fields.CharField', [], {'default': "'0.1.0'", 'max_length': '256'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['database']
|
|
@ -0,0 +1,89 @@
|
|||
# -*- 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 index on 'Language', fields ['name']
|
||||
db.create_index(u'database_language', ['name'])
|
||||
|
||||
# Adding index on 'LanguageString', fields ['key']
|
||||
db.create_index(u'database_languagestring', ['key'])
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Removing index on 'LanguageString', fields ['key']
|
||||
db.delete_index(u'database_languagestring', ['key'])
|
||||
|
||||
# Removing index on 'Language', fields ['name']
|
||||
db.delete_index(u'database_language', ['name'])
|
||||
|
||||
|
||||
models = {
|
||||
u'database.block': {
|
||||
'Meta': {'object_name': 'Block'},
|
||||
'data_value': ('django.db.models.fields.IntegerField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'internal_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'main_texture': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Texture']", 'null': 'True'})
|
||||
},
|
||||
u'database.item': {
|
||||
'Meta': {'object_name': 'Item'},
|
||||
'data_value': ('django.db.models.fields.IntegerField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'internal_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'main_texture': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Texture']", 'null': 'True'})
|
||||
},
|
||||
'database.jarfile': {
|
||||
'Meta': {'object_name': 'JarFile'},
|
||||
'description': ('django.db.models.fields.CharField', [], {'default': "'client'", 'max_length': '256'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
|
||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Version']"})
|
||||
},
|
||||
u'database.language': {
|
||||
'Meta': {'object_name': 'Language'},
|
||||
'code': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '64', 'db_index': 'True'}),
|
||||
'region': ('django.db.models.fields.CharField', [], {'max_length': '32'})
|
||||
},
|
||||
u'database.languagestring': {
|
||||
'Meta': {'object_name': 'LanguageString'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'key': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}),
|
||||
'language': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Language']"}),
|
||||
'value': ('django.db.models.fields.CharField', [], {'max_length': '512'})
|
||||
},
|
||||
'database.mod': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Mod'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
|
||||
},
|
||||
u'database.texture': {
|
||||
'Meta': {'object_name': 'Texture'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'image': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
|
||||
'type': ('django.db.models.fields.CharField', [], {'default': "'items'", 'max_length': '16'})
|
||||
},
|
||||
'database.version': {
|
||||
'Meta': {'ordering': "['date']", 'object_name': 'Version'},
|
||||
'changelog': ('django.db.models.fields.TextField', [], {}),
|
||||
'date': ('django.db.models.fields.DateField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'mod': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Mod']"}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
||||
'snapshot': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'status': ('django.db.models.fields.CharField', [], {'default': "'release'", 'max_length': '10', 'blank': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||
'version_number': ('django.db.models.fields.CharField', [], {'default': "'0.1.0'", 'max_length': '256'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['database']
|
|
@ -0,0 +1,83 @@
|
|||
# -*- 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):
|
||||
|
||||
# Changing field 'LanguageString.value'
|
||||
db.alter_column(u'database_languagestring', 'value', self.gf('django.db.models.fields.TextField')())
|
||||
|
||||
def backwards(self, orm):
|
||||
|
||||
# Changing field 'LanguageString.value'
|
||||
db.alter_column(u'database_languagestring', 'value', self.gf('django.db.models.fields.CharField')(max_length=512))
|
||||
|
||||
models = {
|
||||
u'database.block': {
|
||||
'Meta': {'object_name': 'Block'},
|
||||
'data_value': ('django.db.models.fields.IntegerField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'internal_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'main_texture': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Texture']", 'null': 'True'})
|
||||
},
|
||||
u'database.item': {
|
||||
'Meta': {'object_name': 'Item'},
|
||||
'data_value': ('django.db.models.fields.IntegerField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'internal_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'main_texture': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Texture']", 'null': 'True'})
|
||||
},
|
||||
'database.jarfile': {
|
||||
'Meta': {'object_name': 'JarFile'},
|
||||
'description': ('django.db.models.fields.CharField', [], {'default': "'client'", 'max_length': '256'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
|
||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Version']"})
|
||||
},
|
||||
u'database.language': {
|
||||
'Meta': {'object_name': 'Language'},
|
||||
'code': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '64', 'db_index': 'True'}),
|
||||
'region': ('django.db.models.fields.CharField', [], {'max_length': '32'})
|
||||
},
|
||||
u'database.languagestring': {
|
||||
'Meta': {'object_name': 'LanguageString'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'key': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}),
|
||||
'language': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Language']"}),
|
||||
'value': ('django.db.models.fields.TextField', [], {})
|
||||
},
|
||||
'database.mod': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Mod'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
|
||||
},
|
||||
u'database.texture': {
|
||||
'Meta': {'object_name': 'Texture'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'image': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
|
||||
'type': ('django.db.models.fields.CharField', [], {'default': "'items'", 'max_length': '16'})
|
||||
},
|
||||
'database.version': {
|
||||
'Meta': {'ordering': "['date']", 'object_name': 'Version'},
|
||||
'changelog': ('django.db.models.fields.TextField', [], {}),
|
||||
'date': ('django.db.models.fields.DateField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'mod': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Mod']"}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
||||
'snapshot': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'status': ('django.db.models.fields.CharField', [], {'default': "'release'", 'max_length': '10', 'blank': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||
'version_number': ('django.db.models.fields.CharField', [], {'default': "'0.1.0'", 'max_length': '256'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['database']
|
|
@ -0,0 +1,105 @@
|
|||
# -*- 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 'ModelAttribute'
|
||||
db.create_table(u'database_modelattribute', (
|
||||
(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')()),
|
||||
('key', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
||||
('value', self.gf('django.db.models.fields.TextField')()),
|
||||
))
|
||||
db.send_create_signal(u'database', ['ModelAttribute'])
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting model 'ModelAttribute'
|
||||
db.delete_table(u'database_modelattribute')
|
||||
|
||||
|
||||
models = {
|
||||
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'})
|
||||
},
|
||||
u'database.block': {
|
||||
'Meta': {'object_name': 'Block'},
|
||||
'data_value': ('django.db.models.fields.IntegerField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'internal_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'main_texture': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Texture']", 'null': 'True'})
|
||||
},
|
||||
u'database.item': {
|
||||
'Meta': {'object_name': 'Item'},
|
||||
'data_value': ('django.db.models.fields.IntegerField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'internal_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'main_texture': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Texture']", 'null': 'True'})
|
||||
},
|
||||
'database.jarfile': {
|
||||
'Meta': {'object_name': 'JarFile'},
|
||||
'description': ('django.db.models.fields.CharField', [], {'default': "'client'", 'max_length': '256'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
|
||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Version']"})
|
||||
},
|
||||
u'database.language': {
|
||||
'Meta': {'object_name': 'Language'},
|
||||
'code': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '64', 'db_index': 'True'}),
|
||||
'region': ('django.db.models.fields.CharField', [], {'max_length': '32'})
|
||||
},
|
||||
u'database.languagestring': {
|
||||
'Meta': {'object_name': 'LanguageString'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'key': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}),
|
||||
'language': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Language']"}),
|
||||
'value': ('django.db.models.fields.TextField', [], {})
|
||||
},
|
||||
'database.mod': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Mod'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
|
||||
},
|
||||
u'database.modelattribute': {
|
||||
'Meta': {'object_name': 'ModelAttribute'},
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'key': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
|
||||
'value': ('django.db.models.fields.TextField', [], {})
|
||||
},
|
||||
u'database.texture': {
|
||||
'Meta': {'object_name': 'Texture'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'image': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
|
||||
'type': ('django.db.models.fields.CharField', [], {'default': "'items'", 'max_length': '16'})
|
||||
},
|
||||
'database.version': {
|
||||
'Meta': {'ordering': "['date']", 'object_name': 'Version'},
|
||||
'changelog': ('django.db.models.fields.TextField', [], {}),
|
||||
'date': ('django.db.models.fields.DateField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'mod': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Mod']"}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
||||
'snapshot': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'status': ('django.db.models.fields.CharField', [], {'default': "'release'", 'max_length': '10', 'blank': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||
'version_number': ('django.db.models.fields.CharField', [], {'default': "'0.1.0'", 'max_length': '256'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['database']
|
|
@ -0,0 +1,119 @@
|
|||
# -*- 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 field 'Version.upcoming'
|
||||
db.add_column(u'database_version', 'upcoming',
|
||||
self.gf('django.db.models.fields.BooleanField')(default=False),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'Item.version'
|
||||
db.add_column(u'database_item', 'version',
|
||||
self.gf('django.db.models.fields.related.ForeignKey')(to=orm['database.Version'], null=True),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'Block.version'
|
||||
db.add_column(u'database_block', 'version',
|
||||
self.gf('django.db.models.fields.related.ForeignKey')(to=orm['database.Version'], null=True),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting field 'Version.upcoming'
|
||||
db.delete_column(u'database_version', 'upcoming')
|
||||
|
||||
# Deleting field 'Item.version'
|
||||
db.delete_column(u'database_item', 'version_id')
|
||||
|
||||
# Deleting field 'Block.version'
|
||||
db.delete_column(u'database_block', 'version_id')
|
||||
|
||||
|
||||
models = {
|
||||
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'})
|
||||
},
|
||||
u'database.block': {
|
||||
'Meta': {'object_name': 'Block'},
|
||||
'data_value': ('django.db.models.fields.IntegerField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'internal_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'main_texture': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Texture']", 'null': 'True'}),
|
||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Version']", 'null': 'True'})
|
||||
},
|
||||
u'database.item': {
|
||||
'Meta': {'object_name': 'Item'},
|
||||
'data_value': ('django.db.models.fields.IntegerField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'internal_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'main_texture': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Texture']", 'null': 'True'}),
|
||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Version']", 'null': 'True'})
|
||||
},
|
||||
'database.jarfile': {
|
||||
'Meta': {'object_name': 'JarFile'},
|
||||
'description': ('django.db.models.fields.CharField', [], {'default': "'client'", 'max_length': '256'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
|
||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Version']"})
|
||||
},
|
||||
u'database.language': {
|
||||
'Meta': {'object_name': 'Language'},
|
||||
'code': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '64', 'db_index': 'True'}),
|
||||
'region': ('django.db.models.fields.CharField', [], {'max_length': '32'})
|
||||
},
|
||||
u'database.languagestring': {
|
||||
'Meta': {'object_name': 'LanguageString'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'key': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}),
|
||||
'language': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Language']"}),
|
||||
'value': ('django.db.models.fields.TextField', [], {})
|
||||
},
|
||||
'database.mod': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Mod'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
|
||||
},
|
||||
u'database.modelattribute': {
|
||||
'Meta': {'object_name': 'ModelAttribute'},
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'key': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
|
||||
'value': ('django.db.models.fields.TextField', [], {})
|
||||
},
|
||||
u'database.texture': {
|
||||
'Meta': {'object_name': 'Texture'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'image': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
|
||||
'type': ('django.db.models.fields.CharField', [], {'default': "'items'", 'max_length': '16'})
|
||||
},
|
||||
'database.version': {
|
||||
'Meta': {'ordering': "['date']", 'object_name': 'Version'},
|
||||
'changelog': ('django.db.models.fields.TextField', [], {}),
|
||||
'date': ('django.db.models.fields.DateField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'mod': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Mod']"}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
||||
'snapshot': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'status': ('django.db.models.fields.CharField', [], {'default': "'release'", 'max_length': '10', 'blank': 'True'}),
|
||||
'upcoming': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||
'version_number': ('django.db.models.fields.CharField', [], {'default': "'0.1.0'", 'max_length': '256'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['database']
|
|
@ -0,0 +1,113 @@
|
|||
# -*- 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 field 'Item.internal_id'
|
||||
db.add_column(u'database_item', 'internal_id',
|
||||
self.gf('django.db.models.fields.IntegerField')(default=0),
|
||||
keep_default=False)
|
||||
|
||||
# Adding field 'Block.internal_id'
|
||||
db.add_column(u'database_block', 'internal_id',
|
||||
self.gf('django.db.models.fields.IntegerField')(default=0),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting field 'Item.internal_id'
|
||||
db.delete_column(u'database_item', 'internal_id')
|
||||
|
||||
# Deleting field 'Block.internal_id'
|
||||
db.delete_column(u'database_block', 'internal_id')
|
||||
|
||||
|
||||
models = {
|
||||
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'})
|
||||
},
|
||||
u'database.block': {
|
||||
'Meta': {'object_name': 'Block'},
|
||||
'data_value': ('django.db.models.fields.IntegerField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'internal_id': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
||||
'internal_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'main_texture': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Texture']", 'null': 'True', 'blank': 'True'}),
|
||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Version']", 'null': 'True', 'blank': 'True'})
|
||||
},
|
||||
u'database.item': {
|
||||
'Meta': {'object_name': 'Item'},
|
||||
'data_value': ('django.db.models.fields.IntegerField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'internal_id': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
||||
'internal_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'main_texture': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Texture']", 'null': 'True', 'blank': 'True'}),
|
||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Version']", 'null': 'True', 'blank': 'True'})
|
||||
},
|
||||
'database.jarfile': {
|
||||
'Meta': {'object_name': 'JarFile'},
|
||||
'description': ('django.db.models.fields.CharField', [], {'default': "'client'", 'max_length': '256'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
|
||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Version']"})
|
||||
},
|
||||
u'database.language': {
|
||||
'Meta': {'object_name': 'Language'},
|
||||
'code': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '64', 'db_index': 'True'}),
|
||||
'region': ('django.db.models.fields.CharField', [], {'max_length': '32'})
|
||||
},
|
||||
u'database.languagestring': {
|
||||
'Meta': {'object_name': 'LanguageString'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'key': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}),
|
||||
'language': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Language']"}),
|
||||
'value': ('django.db.models.fields.TextField', [], {})
|
||||
},
|
||||
'database.mod': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Mod'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
|
||||
},
|
||||
u'database.modelattribute': {
|
||||
'Meta': {'object_name': 'ModelAttribute'},
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'key': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
|
||||
'value': ('django.db.models.fields.TextField', [], {})
|
||||
},
|
||||
u'database.texture': {
|
||||
'Meta': {'object_name': 'Texture'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'image': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
|
||||
'type': ('django.db.models.fields.CharField', [], {'default': "'items'", 'max_length': '16'})
|
||||
},
|
||||
'database.version': {
|
||||
'Meta': {'ordering': "['date']", 'object_name': 'Version'},
|
||||
'changelog': ('django.db.models.fields.TextField', [], {}),
|
||||
'date': ('django.db.models.fields.DateField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'mod': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Mod']"}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
||||
'snapshot': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'status': ('django.db.models.fields.CharField', [], {'default': "'release'", 'max_length': '10', 'blank': 'True'}),
|
||||
'upcoming': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||
'version_number': ('django.db.models.fields.CharField', [], {'default': "'0.1.0'", 'max_length': '256'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['database']
|
|
@ -0,0 +1,114 @@
|
|||
# -*- 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 'Achievement'
|
||||
db.create_table(u'database_achievement', (
|
||||
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('internal_name', self.gf('django.db.models.fields.CharField')(max_length=128)),
|
||||
('internal_id', self.gf('django.db.models.fields.IntegerField')(default=0)),
|
||||
))
|
||||
db.send_create_signal(u'database', ['Achievement'])
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting model 'Achievement'
|
||||
db.delete_table(u'database_achievement')
|
||||
|
||||
|
||||
models = {
|
||||
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'})
|
||||
},
|
||||
u'database.achievement': {
|
||||
'Meta': {'object_name': 'Achievement'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'internal_id': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
||||
'internal_name': ('django.db.models.fields.CharField', [], {'max_length': '128'})
|
||||
},
|
||||
u'database.block': {
|
||||
'Meta': {'object_name': 'Block'},
|
||||
'data_value': ('django.db.models.fields.IntegerField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'internal_id': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
||||
'internal_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'main_texture': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Texture']", 'null': 'True', 'blank': 'True'}),
|
||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Version']", 'null': 'True', 'blank': 'True'})
|
||||
},
|
||||
u'database.item': {
|
||||
'Meta': {'object_name': 'Item'},
|
||||
'data_value': ('django.db.models.fields.IntegerField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'internal_id': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
||||
'internal_name': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'main_texture': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Texture']", 'null': 'True', 'blank': 'True'}),
|
||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Version']", 'null': 'True', 'blank': 'True'})
|
||||
},
|
||||
'database.jarfile': {
|
||||
'Meta': {'object_name': 'JarFile'},
|
||||
'description': ('django.db.models.fields.CharField', [], {'default': "'client'", 'max_length': '256'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200'}),
|
||||
'version': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Version']"})
|
||||
},
|
||||
u'database.language': {
|
||||
'Meta': {'object_name': 'Language'},
|
||||
'code': ('django.db.models.fields.CharField', [], {'max_length': '12'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '64', 'db_index': 'True'}),
|
||||
'region': ('django.db.models.fields.CharField', [], {'max_length': '32'})
|
||||
},
|
||||
u'database.languagestring': {
|
||||
'Meta': {'object_name': 'LanguageString'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'key': ('django.db.models.fields.CharField', [], {'max_length': '256', 'db_index': 'True'}),
|
||||
'language': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['database.Language']"}),
|
||||
'value': ('django.db.models.fields.TextField', [], {})
|
||||
},
|
||||
'database.mod': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Mod'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
|
||||
},
|
||||
u'database.modelattribute': {
|
||||
'Meta': {'object_name': 'ModelAttribute'},
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'key': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
|
||||
'value': ('django.db.models.fields.TextField', [], {})
|
||||
},
|
||||
u'database.texture': {
|
||||
'Meta': {'object_name': 'Texture'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'image': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '32'}),
|
||||
'type': ('django.db.models.fields.CharField', [], {'default': "'items'", 'max_length': '16'})
|
||||
},
|
||||
'database.version': {
|
||||
'Meta': {'ordering': "['date']", 'object_name': 'Version'},
|
||||
'changelog': ('django.db.models.fields.TextField', [], {}),
|
||||
'date': ('django.db.models.fields.DateField', [], {}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'mod': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['database.Mod']"}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
||||
'snapshot': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'status': ('django.db.models.fields.CharField', [], {'default': "'release'", 'max_length': '10', 'blank': 'True'}),
|
||||
'upcoming': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
|
||||
'version_number': ('django.db.models.fields.CharField', [], {'default': "'0.1.0'", 'max_length': '256'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['database']
|
|
@ -1,5 +1,90 @@
|
|||
from django.db import models
|
||||
from django.contrib import admin
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.contrib.contenttypes import generic
|
||||
|
||||
|
||||
###
|
||||
# Custom actions
|
||||
###
|
||||
def fix_icons(modeladmin, request, queryset):
|
||||
for item in queryset:
|
||||
try:
|
||||
class_name = "%ss" % item.__class__.__name__.lower()
|
||||
icon = Texture.objects.get(
|
||||
name__exact=item.internal_name,
|
||||
type=class_name
|
||||
)
|
||||
item.main_texture = icon
|
||||
item.save()
|
||||
except:
|
||||
item.main_texture = None
|
||||
item.save()
|
||||
|
||||
fix_icons.short_description = "Fix icons for the selected items"
|
||||
|
||||
|
||||
def fix_item_data_values(modeladmin, request, queryset):
|
||||
for item in queryset:
|
||||
if item.internal_id == 0:
|
||||
item.internal_id = item.data_value
|
||||
if item.__class__.__name__ == 'Item':
|
||||
item.data_value += 256
|
||||
item.save()
|
||||
fix_item_data_values.short_description = "Fix data values"
|
||||
|
||||
|
||||
def match_with_minecraftwiki(modeladmin, request, queryset):
|
||||
import httplib
|
||||
for item in queryset:
|
||||
try:
|
||||
attr = ModelAttribute.objects.get(
|
||||
content_type=ContentType.objects.get_for_model(item),
|
||||
object_id=item.pk,
|
||||
key='minecraftwiki'
|
||||
)
|
||||
except:
|
||||
name = item.name().replace(' ', '_')
|
||||
conn = httplib.HTTPConnection('www.minecraftwiki.net')
|
||||
conn.request("HEAD", '/wiki/%s' % name)
|
||||
response = conn.getresponse()
|
||||
if response.status == 200:
|
||||
url = 'http://www.minecraftwiki.net/wiki/%s' % name
|
||||
attr = ModelAttribute(
|
||||
content_type=ContentType.objects.get_for_model(item),
|
||||
object_id=item.pk,
|
||||
key='minecraftwiki',
|
||||
value=url
|
||||
)
|
||||
attr.save()
|
||||
|
||||
match_with_minecraftwiki.short_description = "Match MinecraftWiki URLs"
|
||||
|
||||
|
||||
###
|
||||
# ATTRIBUTE
|
||||
###
|
||||
class ModelAttribute(models.Model):
|
||||
content_type = models.ForeignKey(ContentType)
|
||||
object_id = models.PositiveIntegerField()
|
||||
content_object = generic.GenericForeignKey('content_type', 'object_id')
|
||||
key = models.CharField(max_length=128)
|
||||
value = models.TextField()
|
||||
|
||||
def __unicode__(self):
|
||||
return self.key
|
||||
|
||||
|
||||
class ModelAttributeAdmin(admin.ModelAdmin):
|
||||
list_display = ('content_object', 'key', 'value', )
|
||||
list_filter = ('key', )
|
||||
search_fields = ('key', 'value', )
|
||||
|
||||
admin.site.register(ModelAttribute, ModelAttributeAdmin)
|
||||
|
||||
class ModelAttributeAdminInline(generic.GenericTabularInline):
|
||||
model = ModelAttribute
|
||||
|
||||
|
||||
###
|
||||
# MOD
|
||||
|
@ -38,6 +123,31 @@ class ModAdmin(admin.ModelAdmin):
|
|||
|
||||
admin.site.register(Mod, ModAdmin)
|
||||
|
||||
###
|
||||
# JARFILE
|
||||
###
|
||||
class JarFile(models.Model):
|
||||
version = models.ForeignKey('Version')
|
||||
description = models.CharField(max_length=256, default='client')
|
||||
url = models.URLField()
|
||||
|
||||
class Meta:
|
||||
app_label = 'database'
|
||||
|
||||
|
||||
class JarFileAdmin(admin.ModelAdmin):
|
||||
list_display = ('version', 'description', 'url_html', )
|
||||
|
||||
def url_html(self, obj):
|
||||
if obj.url != '':
|
||||
return ('<a href="%s">%s</a>' % (obj.url, obj.url))
|
||||
else:
|
||||
return "--"
|
||||
url_html.short_description = 'URL'
|
||||
url_html.allow_tags = True
|
||||
|
||||
admin.site.register(JarFile, JarFileAdmin)
|
||||
|
||||
###
|
||||
# VERSION
|
||||
###
|
||||
|
@ -51,6 +161,8 @@ class Version(models.Model):
|
|||
blank=True,
|
||||
default='release'
|
||||
)
|
||||
upcoming = models.BooleanField(default=False)
|
||||
snapshot = models.BooleanField(default=False)
|
||||
date = models.DateField()
|
||||
url = models.URLField(blank=True, null=True)
|
||||
name = models.CharField(max_length=128,
|
||||
|
@ -59,6 +171,13 @@ class Version(models.Model):
|
|||
)
|
||||
changelog = models.TextField('changelog')
|
||||
|
||||
def get_jarfiles(self):
|
||||
self.jarfiles = JarFile.objects.filter(version=self)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(self.__class__, self).__init__(*args, **kwargs)
|
||||
self.get_jarfiles()
|
||||
|
||||
def __unicode__(self):
|
||||
return "%s %s" % (
|
||||
self.mod,
|
||||
|
@ -71,14 +190,14 @@ class Version(models.Model):
|
|||
|
||||
|
||||
class VersionAdmin(admin.ModelAdmin):
|
||||
list_display = ('mod', 'status', 'version_number', 'name', 'url_html', 'date')
|
||||
list_display = ('mod', 'status', 'snapshot', 'version_number', 'name', 'url_html', 'date')
|
||||
list_display_links = ('version_number',)
|
||||
list_filter = ('mod', 'date', 'status')
|
||||
search_fields = ['version_number', 'name', 'changelog']
|
||||
ordering = ('-date', '-version_number')
|
||||
|
||||
def url_html(self, obj):
|
||||
if obj.url != '':
|
||||
if obj.url:
|
||||
return ('<a href="%s">%s</a>' % (obj.url, obj.url))
|
||||
else:
|
||||
return "--"
|
||||
|
@ -86,3 +205,215 @@ class VersionAdmin(admin.ModelAdmin):
|
|||
url_html.allow_tags = True
|
||||
|
||||
admin.site.register(Version, VersionAdmin)
|
||||
|
||||
|
||||
###
|
||||
# TEXTURE
|
||||
###
|
||||
class Texture(models.Model):
|
||||
name = models.CharField(max_length=32)
|
||||
type = models.CharField(max_length=16, default="items")
|
||||
image = models.CharField(max_length=64)
|
||||
|
||||
def __unicode__(self):
|
||||
return self.name
|
||||
|
||||
def get_image(self, size='original'):
|
||||
path = self.image
|
||||
if size != 'original' and size in [2, 4, 6, 8]:
|
||||
path = path.replace('.png', '_x%d.png' % size)
|
||||
return path
|
||||
|
||||
|
||||
class TextureAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'type', 'image_html', )
|
||||
list_display_links = ('name', )
|
||||
list_filter = ('type', )
|
||||
search_fields = ('name', 'image', )
|
||||
|
||||
def image_html(self, obj):
|
||||
return('<img src="/static/textures/%s" height="32" />' % obj.get_image(2))
|
||||
image_html.short_description = 'Image'
|
||||
image_html.allow_tags = True
|
||||
|
||||
admin.site.register(Texture, TextureAdmin)
|
||||
|
||||
|
||||
###
|
||||
# ITEM
|
||||
###
|
||||
class Item(models.Model):
|
||||
version = models.ForeignKey('Version', null=True, blank=True)
|
||||
internal_name = models.CharField(max_length=128)
|
||||
main_texture = models.ForeignKey('Texture', null=True, blank=True)
|
||||
data_value = models.IntegerField()
|
||||
internal_id = models.IntegerField(default=0)
|
||||
|
||||
def __unicode__(self):
|
||||
return self.name()
|
||||
|
||||
def name(self):
|
||||
result = self.internal_name
|
||||
try:
|
||||
string = LanguageString.objects.get(
|
||||
language=14,
|
||||
key='item.%s.name' % self.internal_name
|
||||
)
|
||||
result = string.value
|
||||
except:
|
||||
pass
|
||||
return result
|
||||
|
||||
|
||||
class ItemAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'internal_id', 'data_value', 'main_texture_html')
|
||||
#list_filter = ('type', )
|
||||
search_fields = ('internal_name', 'data_value', )
|
||||
|
||||
inlines = [
|
||||
ModelAttributeAdminInline
|
||||
]
|
||||
|
||||
actions = [
|
||||
fix_icons,
|
||||
fix_item_data_values,
|
||||
match_with_minecraftwiki
|
||||
]
|
||||
|
||||
def main_texture_html(self, obj):
|
||||
if obj.main_texture:
|
||||
return(
|
||||
'<img src="/static/textures/%s" height="32" />' % \
|
||||
obj.main_texture.get_image(2)
|
||||
)
|
||||
main_texture_html.short_description = 'Image'
|
||||
main_texture_html.allow_tags = True
|
||||
|
||||
admin.site.register(Item, ItemAdmin)
|
||||
|
||||
|
||||
###
|
||||
# BLOCK
|
||||
###
|
||||
class Block(models.Model):
|
||||
version = models.ForeignKey('Version', null=True, blank=True)
|
||||
internal_name = models.CharField(max_length=128)
|
||||
main_texture = models.ForeignKey('Texture', null=True, blank=True)
|
||||
data_value = models.IntegerField()
|
||||
internal_id = models.IntegerField(default=0)
|
||||
|
||||
def __unicode__(self):
|
||||
return self.name()
|
||||
|
||||
def name(self):
|
||||
result = self.internal_name
|
||||
try:
|
||||
string = LanguageString.objects.get(
|
||||
language=14,
|
||||
key='tile.%s.name' % self.internal_name
|
||||
)
|
||||
result = string.value
|
||||
except:
|
||||
pass
|
||||
return result
|
||||
|
||||
|
||||
class BlockAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'internal_id', 'data_value', 'main_texture_html')
|
||||
#list_filter = ('type', )
|
||||
search_fields = ('internal_name', 'data_value', )
|
||||
|
||||
inlines = [
|
||||
ModelAttributeAdminInline
|
||||
]
|
||||
|
||||
actions = [
|
||||
fix_icons,
|
||||
fix_item_data_values,
|
||||
match_with_minecraftwiki
|
||||
]
|
||||
|
||||
def main_texture_html(self, obj):
|
||||
if obj.main_texture:
|
||||
return(
|
||||
'<img src="/static/textures/%s" height="32" />' % \
|
||||
obj.main_texture.get_image(2)
|
||||
)
|
||||
main_texture_html.short_description = 'Image'
|
||||
main_texture_html.allow_tags = True
|
||||
|
||||
admin.site.register(Block, BlockAdmin)
|
||||
|
||||
|
||||
###
|
||||
# LANGUAGES
|
||||
###
|
||||
class Language(models.Model):
|
||||
name = models.CharField(max_length=64, db_index=True)
|
||||
region = models.CharField(max_length=32)
|
||||
code = models.CharField(max_length=12)
|
||||
|
||||
def __unicode__(self):
|
||||
return "%s (%s)" % (self.name, self.region)
|
||||
|
||||
|
||||
class LanguageAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'region', )
|
||||
list_display_links = ('name', )
|
||||
search_fields = ('name', )
|
||||
|
||||
admin.site.register(Language, LanguageAdmin)
|
||||
|
||||
|
||||
class LanguageString(models.Model):
|
||||
language = models.ForeignKey('Language', db_index=True)
|
||||
key = models.CharField(max_length=256, db_index=True)
|
||||
value = models.TextField()
|
||||
|
||||
|
||||
class LanguageStringAdmin(admin.ModelAdmin):
|
||||
list_display = ('language', 'key', 'value', )
|
||||
list_display_links = ('language', 'key', )
|
||||
|
||||
list_filter = ('language', )
|
||||
search_fields = ('key', 'value', )
|
||||
|
||||
admin.site.register(LanguageString, LanguageStringAdmin)
|
||||
|
||||
|
||||
###
|
||||
# ACHIEVEMENTS
|
||||
###
|
||||
class Achievement(models.Model):
|
||||
internal_name = models.CharField(max_length=128)
|
||||
internal_id = models.IntegerField(default=0)
|
||||
|
||||
def name(self):
|
||||
result = self.internal_name
|
||||
try:
|
||||
string = LanguageString.objects.get(
|
||||
language=14,
|
||||
key='achievement.%s' % self.internal_name
|
||||
)
|
||||
result = string.value
|
||||
except:
|
||||
pass
|
||||
return result
|
||||
|
||||
def description(self):
|
||||
result = self.internal_name
|
||||
try:
|
||||
string = LanguageString.objects.get(
|
||||
language=14,
|
||||
key='achievement.%s.desc' % self.internal_name
|
||||
)
|
||||
result = string.value
|
||||
except:
|
||||
pass
|
||||
return result
|
||||
|
||||
class AchievementAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'description', )
|
||||
search_fields = ('internalName', 'description', )
|
||||
|
||||
admin.site.register(Achievement, AchievementAdmin)
|
||||
|
|
|
@ -0,0 +1,146 @@
|
|||
window.BlockRenderer = (model, textures, dom, width, height) ->
|
||||
# Globals
|
||||
_modelList = ['block']
|
||||
_renderer = null
|
||||
_scene = null
|
||||
_object = null
|
||||
_camera = null
|
||||
_cameraType = 'isometric'
|
||||
_lights = []
|
||||
|
||||
# Set and check variables!
|
||||
_model = model
|
||||
if model not in _modelList
|
||||
return false
|
||||
|
||||
# TODO CHECK TEXTURES!
|
||||
_textures = textures
|
||||
|
||||
_domElement = document.querySelector dom
|
||||
if not _domElement
|
||||
return false
|
||||
|
||||
_width = parseInt width
|
||||
_height = parseInt height
|
||||
|
||||
if width == 'auto'
|
||||
_width = 'auto'
|
||||
_height = 'auto'
|
||||
else
|
||||
if not (_width > 0 and _height > 0)
|
||||
return false
|
||||
|
||||
# Helpers
|
||||
# Checks for webgl support on the browser
|
||||
@checkWebGLsupport = ->
|
||||
return !!window.WebGLRenderingContext;
|
||||
|
||||
@getWidth = ->
|
||||
return _domElement.clientWidth
|
||||
|
||||
@setRendererSize = ->
|
||||
if _width == 'auto'
|
||||
width = @getWidth()
|
||||
height = width
|
||||
else
|
||||
width = _width
|
||||
height = _height
|
||||
_renderer.setSize width, height
|
||||
|
||||
if _camera
|
||||
_camera.position.z = ( width / height ) * 40
|
||||
|
||||
@setObjectScale = ->
|
||||
if _cameraType == 'isometric'
|
||||
scale = 7.5
|
||||
_object.scale.x = scale
|
||||
_object.scale.y = scale
|
||||
_object.scale.z = scale
|
||||
else
|
||||
scale = 0
|
||||
_object.scale.x = scale
|
||||
_object.scale.y = scale
|
||||
_object.scale.z = scale
|
||||
|
||||
#
|
||||
# WEBGL
|
||||
#
|
||||
|
||||
@prepareCanvas = ->
|
||||
_renderer = new THREE.WebGLRenderer()
|
||||
@setRendererSize()
|
||||
#_renderer.domElement.id = 'webgl-canvas'
|
||||
_domElement.appendChild _renderer.domElement
|
||||
|
||||
@prepareScene = ->
|
||||
_scene = new THREE.Scene()
|
||||
|
||||
@prepareObject = ->
|
||||
_object = @models[_model].call()
|
||||
_object.overdraw = true
|
||||
_scene.add _object
|
||||
|
||||
@prepareCamera = ->
|
||||
if _cameraType == 'isometric'
|
||||
_camera = new THREE.OrthographicCamera width / -2, width / 2, height / 2, height / -2, width * -2, width * 2
|
||||
_camera.lookAt _object.position
|
||||
else
|
||||
_camera = new THREE.PerspectiveCamera 45, width / height, 1, 1000
|
||||
_camera.position.z = ( width / height ) * 40
|
||||
|
||||
|
||||
@prepareLight = ->
|
||||
light = new THREE.DirectionalLight 0xffffff
|
||||
light.position.set(1, 20, 60).normalize()
|
||||
light.intensity = 1.6
|
||||
|
||||
_scene.add light
|
||||
|
||||
|
||||
@animate = ->
|
||||
@setRendererSize()
|
||||
@setObjectScale()
|
||||
_renderer.render _scene, _camera
|
||||
|
||||
requestAnimationFrame =>
|
||||
@animate()
|
||||
|
||||
#
|
||||
# MODELS
|
||||
#
|
||||
|
||||
@models =
|
||||
block: ->
|
||||
if not 'side' in _textures
|
||||
false
|
||||
else
|
||||
texture = new THREE.ImageUtils.loadTexture _textures['side']
|
||||
# We do not want blurry textures ;D
|
||||
texture.minFilter = THREE.NearestFilter
|
||||
texture.magFilter = THREE.NearestFilter
|
||||
|
||||
material = new THREE.MeshLambertMaterial map: texture
|
||||
|
||||
object = new THREE.Mesh new THREE.CubeGeometry(16, 16, 16), material
|
||||
object.rotation.set Math.PI/6, (Math.PI/4)*-1, 0
|
||||
|
||||
object
|
||||
|
||||
#
|
||||
# INIT
|
||||
#
|
||||
|
||||
@init = ->
|
||||
if @checkWebGLsupport()
|
||||
_domElement.style.width = "#{_width}px"
|
||||
_domElement.style.height = "#{_height}px"
|
||||
_domElement.innerHTML = ''
|
||||
@prepareCanvas()
|
||||
@prepareScene()
|
||||
@prepareObject()
|
||||
@prepareCamera()
|
||||
@prepareLight()
|
||||
@animate()
|
||||
|
||||
|
||||
@init()
|
After Width: | Height: | Size: 314 KiB |
|
@ -69,7 +69,7 @@
|
|||
@paddingSmall: 2px 12px; // 26px
|
||||
@paddingMini: 1px 8px; // 24px
|
||||
|
||||
@baseBorderRadius: 3px;
|
||||
@baseBorderRadius: 0px;
|
||||
@borderRadiusLarge: 10px;
|
||||
@borderRadiusSmall: 3px;
|
||||
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
div.codexicon
|
||||
height: 16px
|
||||
overflow: hidden
|
||||
width: 16px
|
||||
|
||||
&.x2
|
||||
height: 32px
|
||||
width: 32px
|
||||
|
||||
&.x4
|
||||
height: 64px
|
||||
width: 64px
|
||||
|
||||
&.x6
|
||||
height: 96px
|
||||
width: 96px
|
||||
|
||||
&.x8
|
||||
height: 128px
|
||||
width: 128px
|
|
@ -0,0 +1,2 @@
|
|||
.text-black
|
||||
color: $textColor
|
|
@ -0,0 +1,5 @@
|
|||
.margin-none
|
||||
margin: 0
|
||||
|
||||
.margin-auto
|
||||
margin: 0 auto
|
|
@ -0,0 +1,6 @@
|
|||
@import "variables.sass"
|
||||
@import "oocss.sass"
|
||||
@import "blog.sass"
|
||||
@import "fixes.sass"
|
||||
@import "helpers.sass"
|
||||
@import "shame.sass"
|
|
@ -0,0 +1 @@
|
|||
$textColor: #2C3E50
|
After Width: | Height: | Size: 254 B |
After Width: | Height: | Size: 300 B |
After Width: | Height: | Size: 327 B |
After Width: | Height: | Size: 367 B |
After Width: | Height: | Size: 411 B |
After Width: | Height: | Size: 448 B |
After Width: | Height: | Size: 283 B |
After Width: | Height: | Size: 323 B |
After Width: | Height: | Size: 364 B |
After Width: | Height: | Size: 399 B |
After Width: | Height: | Size: 221 B |
After Width: | Height: | Size: 299 B |
After Width: | Height: | Size: 364 B |
After Width: | Height: | Size: 447 B |
After Width: | Height: | Size: 465 B |
After Width: | Height: | Size: 302 B |
After Width: | Height: | Size: 358 B |
After Width: | Height: | Size: 412 B |
After Width: | Height: | Size: 455 B |
After Width: | Height: | Size: 523 B |
After Width: | Height: | Size: 592 B |
After Width: | Height: | Size: 399 B |
After Width: | Height: | Size: 454 B |
After Width: | Height: | Size: 483 B |
After Width: | Height: | Size: 559 B |
After Width: | Height: | Size: 633 B |
After Width: | Height: | Size: 359 B |
After Width: | Height: | Size: 382 B |
After Width: | Height: | Size: 449 B |
After Width: | Height: | Size: 511 B |
After Width: | Height: | Size: 199 B |
After Width: | Height: | Size: 217 B |
After Width: | Height: | Size: 238 B |
After Width: | Height: | Size: 292 B |
After Width: | Height: | Size: 273 B |
After Width: | Height: | Size: 464 B |
After Width: | Height: | Size: 523 B |
After Width: | Height: | Size: 582 B |
After Width: | Height: | Size: 677 B |
After Width: | Height: | Size: 690 B |
After Width: | Height: | Size: 434 B |
After Width: | Height: | Size: 477 B |
After Width: | Height: | Size: 546 B |
After Width: | Height: | Size: 644 B |
After Width: | Height: | Size: 652 B |
After Width: | Height: | Size: 521 B |
After Width: | Height: | Size: 835 B |
After Width: | Height: | Size: 989 B |
After Width: | Height: | Size: 1.1 KiB |