| @@ -1,6 +1,6 @@ | |||||
| from django.contrib import admin | from django.contrib import admin | ||||
| from .models import Betrieb, Partei, PresidentCandidate, Question, Angestellter,\ | from .models import Betrieb, Partei, PresidentCandidate, Question, Angestellter,\ | ||||
| Aufsicht, Betriebsaufsicht | |||||
| Aufsicht, Betriebsaufsicht, Betriebsabrechnung | |||||
| from startpage.models import Banned | from startpage.models import Banned | ||||
| from django.contrib.admin import helpers | from django.contrib.admin import helpers | ||||
| from django.shortcuts import render | from django.shortcuts import render | ||||
| @@ -95,6 +95,16 @@ class AufsichtInline(admin.TabularInline): | |||||
| } | } | ||||
| class BetriebsabrechnungInline(admin.TabularInline): | |||||
| model = Betriebsabrechnung | |||||
| extra = 0 | |||||
| formfield_overrides = { | |||||
| models.ManyToManyField: {'widget': forms.CheckboxSelectMultiple}, | |||||
| models.ForeignKey: {'widget': apply_select2(forms.Select)} | |||||
| } | |||||
| template = "meingoethopia/betriebsabrechnung.html" | |||||
| # Register your models here. | # Register your models here. | ||||
| class BetriebAdmin(admin.ModelAdmin): | class BetriebAdmin(admin.ModelAdmin): | ||||
| list_display = ('name', 'manager', 'show_aufsichten', 'raum', | list_display = ('name', 'manager', 'show_aufsichten', 'raum', | ||||
| @@ -108,7 +118,7 @@ class BetriebAdmin(admin.ModelAdmin): | |||||
| } | } | ||||
| actions = [ban_ip, create_overview] | actions = [ban_ip, create_overview] | ||||
| filter_horizontal = ('angestellte',) | filter_horizontal = ('angestellte',) | ||||
| inlines = [AufsichtInline] | |||||
| inlines = [AufsichtInline, BetriebsabrechnungInline] | |||||
| class ParteiAdmin(admin.ModelAdmin): | class ParteiAdmin(admin.ModelAdmin): | ||||
| @@ -62,6 +62,8 @@ class Betrieb(models.Model): | |||||
| raum = models.IntegerField('Raum', default=102) | raum = models.IntegerField('Raum', default=102) | ||||
| aufsicht = models.CharField('Aufsicht', max_length=100, default='keine') | aufsicht = models.CharField('Aufsicht', max_length=100, default='keine') | ||||
| kredit = models.IntegerField('Kreditwunsch', default=0) | kredit = models.IntegerField('Kreditwunsch', default=0) | ||||
| kredit_ausgezahlt = models.BooleanField('Kredit ausgezahlt', default=False) | |||||
| kredit_bezahlt = models.BooleanField('Kredit zurückgezahlt', default=False) | |||||
| business_idea = models.TextField('Idee') | business_idea = models.TextField('Idee') | ||||
| ip_address = models.CharField('IP Adresse', max_length=50, blank=True) | ip_address = models.CharField('IP Adresse', max_length=50, blank=True) | ||||
| confirmed = models.BooleanField('Bestätigt', default=False) | confirmed = models.BooleanField('Bestätigt', default=False) | ||||
| @@ -123,6 +125,20 @@ class Betriebsaufsicht(models.Model): | |||||
| return self.aufsicht.name | return self.aufsicht.name | ||||
| class Betriebsabrechnung(models.Model): | |||||
| betrieb = models.ForeignKey(Betrieb) | |||||
| datum = models.DateField('Datum') | |||||
| umsatz = models.IntegerField('Umsatz') | |||||
| lohnkosten = models.IntegerField('Lohnkosten') | |||||
| ausgaben = models.IntegerField('Ausgaben') | |||||
| gewinn = models.IntegerField('Gewinn') | |||||
| steuer = models.IntegerField('Steuer') | |||||
| erledigt = models.BooleanField('Erledigt') | |||||
| def __str__(self): | |||||
| return self.betrieb.name + " " + str(self.datum) | |||||
| class Partei(models.Model): | class Partei(models.Model): | ||||
| name = models.CharField('Name', max_length=100) | name = models.CharField('Name', max_length=100) | ||||
| abbreviation = models.CharField('Abkürzung', max_length=5) | abbreviation = models.CharField('Abkürzung', max_length=5) | ||||
| @@ -0,0 +1,77 @@ | |||||
| {% load i18n admin_urls static admin_modify %} | |||||
| <div class="js-inline-admin-formset inline-group" id="{{ inline_admin_formset.formset.prefix }}-group" | |||||
| data-inline-type="tabular" | |||||
| data-inline-formset="{{ inline_admin_formset.inline_formset_data }}"> | |||||
| <div class="tabular inline-related {% if forloop.last %}last-related{% endif %}"> | |||||
| {{ inline_admin_formset.formset.management_form }} | |||||
| <fieldset class="module {{ inline_admin_formset.classes }}"> | |||||
| <h2>{{ inline_admin_formset.opts.verbose_name_plural|capfirst }}</h2> | |||||
| {{ inline_admin_formset.formset.non_form_errors }} | |||||
| <table> | |||||
| <thead><tr> | |||||
| <th class="original"></th> | |||||
| {% for field in inline_admin_formset.fields %} | |||||
| {% if not field.widget.is_hidden %} | |||||
| <th{% if field.required %} class="required"{% endif %}>{{ field.label|capfirst }} | |||||
| {% if field.help_text %} <img src="{% static "admin/img/icon-unknown.svg" %}" class="help help-tooltip" width="10" height="10" alt="({{ field.help_text|striptags }})" title="{{ field.help_text|striptags }}" />{% endif %} | |||||
| </th> | |||||
| {% endif %} | |||||
| {% endfor %} | |||||
| {% if inline_admin_formset.formset.can_delete %}<th>{% trans "Delete?" %}</th>{% endif %} | |||||
| </tr></thead> | |||||
| <tbody> | |||||
| {% for inline_admin_form in inline_admin_formset %} | |||||
| {% if inline_admin_form.form.non_field_errors %} | |||||
| <tr><td colspan="{{ inline_admin_form|cell_count }}">{{ inline_admin_form.form.non_field_errors }}</td></tr> | |||||
| {% endif %} | |||||
| <tr class="form-row {% cycle "row1" "row2" %} {% if inline_admin_form.original or inline_admin_form.show_url %}has_original{% endif %}{% if forloop.last %} empty-form{% endif %}" | |||||
| id="{{ inline_admin_formset.formset.prefix }}-{% if not forloop.last %}{{ forloop.counter0 }}{% else %}empty{% endif %}"> | |||||
| <td class="original"> | |||||
| {% if inline_admin_form.original or inline_admin_form.show_url %}<p> | |||||
| {% if inline_admin_form.original %} | |||||
| {{ inline_admin_form.original }} | |||||
| {% if inline_admin_form.model_admin.show_change_link and inline_admin_form.model_admin.has_registered_model %}<a href="{% url inline_admin_form.model_admin.opts|admin_urlname:'change' inline_admin_form.original.pk|admin_urlquote %}" class="inlinechangelink">{% trans "Change" %}</a>{% endif %} | |||||
| {% endif %} | |||||
| {% if inline_admin_form.show_url %}<a href="{{ inline_admin_form.absolute_url }}">{% trans "View on site" %}</a>{% endif %} | |||||
| </p>{% endif %} | |||||
| {% if inline_admin_form.needs_explicit_pk_field %}{{ inline_admin_form.pk_field.field }}{% endif %} | |||||
| {{ inline_admin_form.fk_field.field }} | |||||
| {% spaceless %} | |||||
| {% for fieldset in inline_admin_form %} | |||||
| {% for line in fieldset %} | |||||
| {% for field in line %} | |||||
| {% if field.field.is_hidden %} {{ field.field }} {% endif %} | |||||
| {% endfor %} | |||||
| {% endfor %} | |||||
| {% endfor %} | |||||
| {% endspaceless %} | |||||
| </td> | |||||
| {% for fieldset in inline_admin_form %} | |||||
| {% for line in fieldset %} | |||||
| {% for field in line %} | |||||
| {% if not field.field.is_hidden %} | |||||
| <td{% if field.field.name %} class="field-{{ field.field.name }}"{% endif %}> | |||||
| {% if field.is_readonly %} | |||||
| <p>{{ field.contents }}</p> | |||||
| {% else %} | |||||
| {{ field.field.errors.as_ul }} | |||||
| {{ field.field }} | |||||
| {% endif %} | |||||
| </td> | |||||
| {% endif %} | |||||
| {% endfor %} | |||||
| {% endfor %} | |||||
| {% endfor %} | |||||
| {% if inline_admin_formset.formset.can_delete %} | |||||
| <td class="delete">{% if inline_admin_form.original %}{{ inline_admin_form.deletion_field.field }}{% endif %}</td> | |||||
| {% endif %} | |||||
| </tr> | |||||
| {% endfor %} | |||||
| </tbody> | |||||
| </table> | |||||
| </fieldset> | |||||
| </div> | |||||
| </div> | |||||