diff --git a/minecraftcodex/database/migrations/0009_auto__add_item.py b/minecraftcodex/database/migrations/0009_auto__add_item.py new file mode 100644 index 0000000..e7f9bb0 --- /dev/null +++ b/minecraftcodex/database/migrations/0009_auto__add_item.py @@ -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'] \ No newline at end of file diff --git a/minecraftcodex/database/models.py b/minecraftcodex/database/models.py index 96b2fde..cd3477d 100644 --- a/minecraftcodex/database/models.py +++ b/minecraftcodex/database/models.py @@ -135,6 +135,7 @@ class Texture(models.Model): path = path.replace('.png', '_x%d.png' % size) return path + class TextureAdmin(admin.ModelAdmin): list_display = ('name', 'type', 'image_html', ) list_display_links = ('name', ) @@ -147,3 +148,30 @@ class TextureAdmin(admin.ModelAdmin): image_html.allow_tags = True admin.site.register(Texture, TextureAdmin) + + +### +# ITEM +### +class Item(models.Model): + internal_name = models.CharField(max_length=128) + main_texture = models.ForeignKey('Texture', null=True) + data_value = models.IntegerField() + + +class ItemAdmin(admin.ModelAdmin): + list_display = ('internal_name', 'data_value', 'main_texture_html') + list_display_links = ('internal_name', ) + #list_filter = ('type', ) + search_fields = ('internal_name', 'data_value', ) + + def main_texture_html(self, obj): + if obj.main_texture: + return( + '' % \ + obj.main_texture.get_image(2) + ) + main_texture_html.short_description = 'Image' + main_texture_html.allow_tags = True + +admin.site.register(Item, ItemAdmin) diff --git a/minecraftcodex/database/templates/items.html b/minecraftcodex/database/templates/items.html new file mode 100644 index 0000000..36d6ee7 --- /dev/null +++ b/minecraftcodex/database/templates/items.html @@ -0,0 +1,43 @@ +{% extends "layout.html" %} + +{% block content %} +
Data value |
+ Texture |
+ Name |
+
---|---|---|
+ {{ item.data_value }}
+ |
+
+
+ {% if item.main_texture %}
+
+ {% endif %}
+
+ |
+ + {{ item.internal_name }} + | +