Skip to content
Snippets Groups Projects
Commit 948ddfa0 authored by Chris Heitkamp / SuperVirus's avatar Chris Heitkamp / SuperVirus Committed by Chris Heitkamp
Browse files

warpshop_server: Zwischenstand

parent f75fa895
No related branches found
No related tags found
No related merge requests found
Showing
with 273 additions and 5 deletions
from __future__ import absolute_import
from django.contrib import admin
from .models import Artikel
admin.site.register(Artikel)
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
]
operations = [
migrations.CreateModel(
name='Artikel',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('aktiv', models.BooleanField(default=True)),
('barcode', models.CharField(max_length=200)),
('name', models.CharField(max_length=200)),
('ek', models.DecimalField(max_digits=8, decimal_places=2)),
('vk', models.DecimalField(max_digits=8, decimal_places=2)),
('bestand', models.IntegerField(default=0)),
],
options={
'db_table': b'artikel',
'verbose_name': b'Artikel',
'verbose_name_plural': b'Artikel',
},
bases=(models.Model,),
),
]
from __future__ import absolute_import
from django.db import models
class Artikel(models.Model):
aktiv = models.BooleanField()
aktiv = models.BooleanField(default=True)
barcode = models.CharField(max_length=200)
name = models.CharField(max_length=200)
ek = models.DecimalField(max_digits=8, decimal_places=2)
......@@ -10,3 +12,11 @@ class Artikel(models.Model):
def __str__(self):
return '%s [%s]' % (self.name, self.barcode)
def __unicode__(self):
return u'%s [%s]' % (self.name, self.barcode)
class Meta:
db_table = "artikel"
verbose_name = "Artikel"
verbose_name_plural = "Artikel"
{{ artikel }}
{% if artikel_list %}
<ul>
{% for artikel in artikel_list %}
<li><a href="{% url 'artikel:detail' artikel.id %}">{{ artikel.name }} [{{ artikel.barcode }}]</a></li>
{% endfor %}
</ul>
{% else %}
<p>Keine Artikel vorhanden.</p>
{% endif %}
from __future__ import absolute_import
from django.conf.urls import patterns, url
from . import views
urlpatterns = patterns('',
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^(?P<pk>\d+)/$', views.DetailView.as_view(), name='detail'),
url(r'^(?P<pk>\d+)/results/$', views.ResultsView.as_view(), name='results'),
url(r'^barcode/(?P<barcode>\w+)/$', views.barcode, name='barcode'),
)
from django.shortcuts import render
from django.shortcuts import get_object_or_404, render
from django.http import HttpResponseRedirect, HttpResponse
from django.core.urlresolvers import reverse
from django.views import generic
# Create your views here.
from . models import Artikel
class IndexView(generic.ListView):
template_name = 'artikel/index.html'
context_object_name = 'artikel_list'
def get_queryset(self):
return Artikel.objects.order_by('name')
class DetailView(generic.DetailView):
model = Artikel
template_name = 'artikel/detail.html'
class ResultsView(generic.DetailView):
model = Artikel
template_name = 'artikel/results.html'
def barcode(request, barcode):
try:
a = Artikel.objects.get(barcode=barcode)
except Artikel.DoesNotExist:
a = Artikel(aktiv=False, barcode=barcode, name=barcode, ek=0.0, vk=0.0)
a.save()
return HttpResponseRedirect(reverse('artikel:detail', args=(a.id,)))
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
]
operations = [
migrations.CreateModel(
name='Benutzer',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('aktiv', models.BooleanField(default=True)),
('barcode', models.CharField(max_length=200)),
('name', models.CharField(max_length=200)),
('saldo', models.DecimalField(max_digits=8, decimal_places=2)),
],
options={
'db_table': b'benutzer',
'verbose_name': b'Benutzer',
'verbose_name_plural': b'Benutzer',
},
bases=(models.Model,),
),
]
from __future__ import absolute_import
from django.db import models
class Benutzer(models.Model):
aktiv = models.BooleanField()
aktiv = models.BooleanField(default=True)
barcode = models.CharField(max_length=200)
name = models.CharField(max_length=200)
saldo = models.DecimalField(max_digits=8, decimal_places=2)
def __str__(self):
return '%s [%s]' % (self.name, self.barcode)
class Meta:
db_table = "benutzer"
verbose_name = "Benutzer"
verbose_name_plural = "Benutzer"
from __future__ import absolute_import
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
]
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse("Benutzer index.")
from __future__ import absolute_import
from django.contrib import admin
from .models import Transaktion, Position
class PositionInline(admin.StackedInline):
model = Position
extra = 3
class TransaktionAdmin(admin.ModelAdmin):
# fieldsets = [
# (None, {'fields': ['question_text']}),
# ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
# ]
inlines = [PositionInline]
admin.site.register(Transaktion, TransaktionAdmin)
#admin.site.register(Position)
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
('benutzer', '0001_initial'),
('artikel', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='Position',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('anzahl', models.IntegerField(default=0)),
('ek', models.DecimalField(max_digits=8, decimal_places=2)),
('vk', models.DecimalField(max_digits=8, decimal_places=2)),
('artikel', models.ForeignKey(to='artikel.Artikel')),
],
options={
'db_table': b'position',
'verbose_name': b'Position',
'verbose_name_plural': b'Positionen',
},
bases=(models.Model,),
),
migrations.CreateModel(
name='Transaktion',
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('timestamp', models.DateTimeField(auto_now_add=True)),
('benutzer', models.ForeignKey(to='benutzer.Benutzer')),
],
options={
'db_table': b'transaktion',
'verbose_name': b'Transaktion',
'verbose_name_plural': b'Transaktionen',
},
bases=(models.Model,),
),
migrations.AddField(
model_name='position',
name='transaktion',
field=models.ForeignKey(to='transaktion.Transaktion'),
preserve_default=True,
),
]
from __future__ import absolute_import
from django.db import models
from artikel.models import Artikel
from benutzer.models import Benutzer
class Transaktion(models.Model):
timestamp = models.DateTimeField(auto_now_add=True)
benutzer = models.ForeignKey(Benutzer)
def __str__(self):
return '%s [%s] [%s]' % (self.id, self.timestamp, self.benutzer)
class Meta:
db_table = "transaktion"
verbose_name = "Transaktion"
verbose_name_plural = "Transaktionen"
class Position(models.Model):
transaktion = models.ForeignKey(Transaktion)
artikel = models.ForeignKey(Artikel)
anzahl = models.IntegerField(default=0)
ek = models.DecimalField(max_digits=8, decimal_places=2)
vk = models.DecimalField(max_digits=8, decimal_places=2)
def __str__(self):
return '%d-%08d: %s * %s' % (self.transaktion.id, self.id, self.anzahl, self.artikel)
class Meta:
db_table = "position"
verbose_name = "Position"
verbose_name_plural = "Positionen"
from django.test import TestCase
# Create your tests here.
from __future__ import absolute_import
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
]
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse("Transaktion index.")
......@@ -194,6 +194,9 @@ DJANGO_APPS = (
# Apps specific for this project go here.
LOCAL_APPS = (
'artikel',
'benutzer',
'transaktion',
)
# See: https://docs.djangoproject.com/en/dev/ref/settings/#installed-apps
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment