Added Items mining and saving, views, urls and templates (start work)
This commit is contained in:
parent
d63c07efd8
commit
e89dd7c12d
|
@ -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']
|
|
@ -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(
|
||||
'<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)
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
{% extends "layout.html" %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Items</h1>
|
||||
<hr />
|
||||
<table class="table table-condensed table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="20" nowrap="nowrap"><div class="text-center">Data value</div></th>
|
||||
<th nowrap="nowrap"><div class="text-center">Texture</div></th>
|
||||
<th><div class="text-center">Name</div></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in page.object_list %}
|
||||
<tr>
|
||||
<td>
|
||||
<div class="text-center">{{ item.data_value }}</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="text-center">
|
||||
{% if item.main_texture %}
|
||||
<img src="/static/textures/{{ item.main_texture.get_image(2) }}" />
|
||||
{% endif %}
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
{{ item.internal_name }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
<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('items_list') }}?page={{ p }}">{{ p }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -57,6 +57,9 @@ Thank you!
|
|||
<li class="{% if section == 'home' %}active{% endif %}">
|
||||
<a href="{{ url('homepage') }}">Home</a>
|
||||
</li>
|
||||
<li class="{% if section == 'items' %}active{% endif %}">
|
||||
<a href="{{ url('items_list') }}">Items</a>
|
||||
</li>
|
||||
<li class="{% if section == 'versions' %}active{% endif %}">
|
||||
<a href="{{ url('version_list') }}">Versions</a>
|
||||
</li>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
from django.shortcuts import render_to_response
|
||||
from database.models import Version
|
||||
from database.models import Version, Item
|
||||
from django.core.paginator import Paginator
|
||||
from django.template import RequestContext
|
||||
|
||||
|
@ -47,6 +47,27 @@ def version(request, version, status='release'):
|
|||
return render_to_response('version.html', context_instance=context)
|
||||
|
||||
|
||||
def items(request):
|
||||
section = 'items'
|
||||
|
||||
items = Item.objects.all().order_by('data_value')
|
||||
paginator = Paginator(items, 50)
|
||||
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('items.html', context_instance=context)
|
||||
|
||||
def about(request):
|
||||
context = RequestContext(request, {'section': 'about'})
|
||||
return render_to_response('about.html', context_instance=context)
|
||||
|
|
|
@ -35,6 +35,9 @@ urlpatterns = patterns('',
|
|||
),
|
||||
url(r'^versions/', 'database.views.versions', name='version_list'),
|
||||
|
||||
# Items
|
||||
url(r'^items/', 'database.views.items', name='items_list'),
|
||||
|
||||
# Robots
|
||||
(r'^robots\.txt$', lambda r: HttpResponse("", mimetype="text/plain")),
|
||||
|
||||
|
|
|
@ -14,6 +14,10 @@ from objects import GameItem
|
|||
|
||||
print("=> Phase: items")
|
||||
|
||||
if conf.SAVE:
|
||||
sys.path.append('../../minecraftcodex')
|
||||
os.environ['DJANGO_SETTINGS_MODULE'] = 'local_settings'
|
||||
from database.models import Item, Texture
|
||||
|
||||
###
|
||||
# GLOBALS
|
||||
|
@ -82,6 +86,27 @@ for java_file in conf.ITEMS_FILES:
|
|||
|
||||
ITEMS.append(obj)
|
||||
|
||||
if conf.SAVE:
|
||||
for item in ITEMS:
|
||||
try:
|
||||
obj = Item.objects.get(
|
||||
internal_name=item.name,
|
||||
data_value=item.id
|
||||
)
|
||||
except Item.DoesNotExist:
|
||||
obj = Item(
|
||||
internal_name=item.name,
|
||||
data_value=item.id
|
||||
)
|
||||
try:
|
||||
texture = Texture.objects.get(name__exact=obj.internal_name)
|
||||
obj.main_texture = texture
|
||||
except Exception as error:
|
||||
print(error)
|
||||
pass
|
||||
obj.save()
|
||||
|
||||
|
||||
# Print the miner summary and compile the new old data
|
||||
print(' => Summary')
|
||||
new_old_data = {}
|
||||
|
|
|
@ -13,9 +13,10 @@ from objects import GameTexture
|
|||
|
||||
print("=> Phase: textures")
|
||||
|
||||
path.append('../../minecraftcodex')
|
||||
environ['DJANGO_SETTINGS_MODULE'] = 'local_settings'
|
||||
from database.models import Texture
|
||||
if conf.SAVE:
|
||||
path.append('../../minecraftcodex')
|
||||
environ['DJANGO_SETTINGS_MODULE'] = 'local_settings'
|
||||
from database.models import Texture
|
||||
|
||||
TEXTURES = []
|
||||
|
||||
|
|
Loading…
Reference in New Issue