Compare commits
3 Commits
120c762582
...
355ea34e03
| Author | SHA1 | Date |
|---|---|---|
|
|
355ea34e03 | 2 years ago |
|
|
f009a6cfd7 | 2 years ago |
|
|
8a0147965f | 2 years ago |
19 changed files with 410 additions and 58 deletions
Binary file not shown.
@ -1,10 +1,63 @@ |
|||||||
from django import forms |
from django import forms |
||||||
|
from django.forms import DateInput |
||||||
|
|
||||||
|
from .models import * |
||||||
|
|
||||||
from django import forms |
from django import forms |
||||||
from .models import Address |
|
||||||
|
'''' |
||||||
|
class AddressForm(forms.Form): |
||||||
|
vorname = forms.CharField(max_length=255) |
||||||
|
nachname = forms.CharField(max_length=255) |
||||||
|
geburtstag = forms.DateField(widget=forms.SelectDateWidget) |
||||||
|
street = forms.CharField(max_length=255) |
||||||
|
hausnummer = forms.CharField(max_length=10) |
||||||
|
postleitzahl = forms.CharField(max_length=5) |
||||||
|
|
||||||
|
''' |
||||||
|
|
||||||
|
|
||||||
class AddressForm(forms.ModelForm): |
class AddressForm(forms.ModelForm): |
||||||
class Meta: |
class Meta: |
||||||
model = Address |
model = Address |
||||||
fields = ['vorname', 'nachname', 'geburtstag', 'street', 'hausnummer', 'postleitzahl'] |
fields = '__all__' |
||||||
|
# noinspection PyRedundantParentheses |
||||||
|
widgets = { |
||||||
|
'geburtstag': forms.DateInput( |
||||||
|
format=('%Y-%m-%d'), |
||||||
|
attrs={'class': 'form-control', |
||||||
|
'placeholder': 'Wähle ein Datum', |
||||||
|
'type': 'date' |
||||||
|
} |
||||||
|
) |
||||||
|
} |
||||||
|
|
||||||
|
def is_valid(self): |
||||||
|
return True |
||||||
|
|
||||||
|
|
||||||
|
class SummaryForm(forms.ModelForm): |
||||||
|
class Meta: |
||||||
|
model = Summary |
||||||
|
fields = '__all__' |
||||||
|
widgets = { |
||||||
|
'text': forms.Textarea(attrs={'rows': 10, 'cols': 30}) |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
class SalesAreaTypeForm(forms.ModelForm): |
||||||
|
class Meta: |
||||||
|
model = SalesAreaType |
||||||
|
fields = '__all__' |
||||||
|
|
||||||
|
|
||||||
|
class SalesAreaForm(forms.ModelForm): |
||||||
|
class Meta: |
||||||
|
model = SalesArea |
||||||
|
fields = '__all__' |
||||||
|
|
||||||
|
|
||||||
|
class CompanyDataForm(forms.ModelForm): |
||||||
|
class Meta: |
||||||
|
model = CompanyData |
||||||
|
fields = '__all__' |
||||||
|
|||||||
@ -0,0 +1,26 @@ |
|||||||
|
# Generated by Django 5.0.1 on 2024-03-06 10:00 |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
initial = True |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.CreateModel( |
||||||
|
name='Address', |
||||||
|
fields=[ |
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('vorname', models.CharField(max_length=255)), |
||||||
|
('nachname', models.CharField(max_length=255)), |
||||||
|
('geburtstag', models.DateField()), |
||||||
|
('street', models.CharField(max_length=255)), |
||||||
|
('hausnummer', models.CharField(max_length=255)), |
||||||
|
('postleitzahl', models.PositiveIntegerField()), |
||||||
|
], |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,50 @@ |
|||||||
|
# Generated by Django 5.0.1 on 2024-03-12 16:10 |
||||||
|
|
||||||
|
import django.db.models.deletion |
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('ugssim', '0001_initial'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.CreateModel( |
||||||
|
name='SalesArea', |
||||||
|
fields=[ |
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('title', models.CharField(max_length=255)), |
||||||
|
], |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='SalesAreaType', |
||||||
|
fields=[ |
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('title', models.CharField(max_length=255)), |
||||||
|
], |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='Summary', |
||||||
|
fields=[ |
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('text', models.TextField(max_length=2000)), |
||||||
|
], |
||||||
|
), |
||||||
|
migrations.CreateModel( |
||||||
|
name='CompanyData', |
||||||
|
fields=[ |
||||||
|
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||||
|
('title', models.CharField(max_length=255)), |
||||||
|
('website', models.URLField()), |
||||||
|
('startDate', models.DateField()), |
||||||
|
('salesArea', models.ManyToManyField(related_name='+', to='ugssim.salesarea')), |
||||||
|
], |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='salesarea', |
||||||
|
name='type', |
||||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, to='ugssim.salesareatype'), |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,23 @@ |
|||||||
|
# Generated by Django 5.0.1 on 2024-03-13 10:04 |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('ugssim', '0002_salesarea_salesareatype_summary_companydata_and_more'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AlterField( |
||||||
|
model_name='address', |
||||||
|
name='postleitzahl', |
||||||
|
field=models.CharField(max_length=5), |
||||||
|
), |
||||||
|
migrations.AlterField( |
||||||
|
model_name='address', |
||||||
|
name='street', |
||||||
|
field=models.CharField(max_length=10), |
||||||
|
), |
||||||
|
] |
||||||
@ -1,15 +1,40 @@ |
|||||||
|
from datetime import date |
||||||
|
|
||||||
|
from django import forms |
||||||
from django.db import models |
from django.db import models |
||||||
|
|
||||||
|
|
||||||
# Create your models here. |
# Create your models here. |
||||||
class Address(models.Model): |
class Address(models.Model): |
||||||
vorname = models.CharField(max_length=255) |
vorname = models.CharField(max_length=255) |
||||||
nachname = models.CharField(max_length=255) |
nachname = models.CharField(max_length=255) |
||||||
geburtstag = models.DateField() |
geburtstag: date = models.DateField() |
||||||
street = models.CharField(max_length=255) |
street = models.CharField(max_length=10) |
||||||
hausnummer = models.CharField(max_length=255) |
hausnummer = models.CharField(max_length=255) |
||||||
postleitzahl = models.PositiveIntegerField() |
postleitzahl = models.CharField(max_length=5) |
||||||
|
|
||||||
def __str__(self): |
def __str__(self): |
||||||
return f'{self.vorname} {self.nachname} lives at {self.street} {self.hausnummer}, {self.postleitzahl}' |
return f'{self.vorname} {self.nachname} lives at {self.street} {self.hausnummer}, {self.postleitzahl}' |
||||||
|
|
||||||
|
|
||||||
|
class Summary(models.Model): |
||||||
|
text = models.TextField(max_length=2000) |
||||||
|
|
||||||
|
def __str__(self): |
||||||
|
return self.text |
||||||
|
|
||||||
|
|
||||||
|
class SalesAreaType(models.Model): |
||||||
|
title = models.CharField(max_length=255) |
||||||
|
|
||||||
|
|
||||||
|
class SalesArea(models.Model): |
||||||
|
title = models.CharField(max_length=255) |
||||||
|
type = models.ForeignKey(SalesAreaType, on_delete=models.RESTRICT) |
||||||
|
|
||||||
|
|
||||||
|
class CompanyData(models.Model): |
||||||
|
title = models.CharField(max_length=255) |
||||||
|
website = models.URLField(max_length=200) |
||||||
|
startDate = models.DateField() |
||||||
|
#salesArea = models.ManyToManyField(SalesArea, related_name='+') |
||||||
|
|||||||
@ -0,0 +1,10 @@ |
|||||||
|
<div class="container"> |
||||||
|
{% csrf_token %} |
||||||
|
{% for field in companyDataForm %} |
||||||
|
<div class="form-group"> |
||||||
|
<label for="{{ field.id_for_label }}">{{ field.label }}</label> |
||||||
|
<input class="form-control" type="{{ field.field.widget.input_type }}" name="{{ field.html_name }}" id="{{ field.auto_id }}" value="{{ field.value|default_if_none:"" }}" > |
||||||
|
</div> |
||||||
|
{% endfor %} |
||||||
|
<button type="submit" class="btn btn-primary" name="companyDataButton">Submit</button> |
||||||
|
</div> |
||||||
@ -0,0 +1,19 @@ |
|||||||
|
<div class="container"> |
||||||
|
|
||||||
|
<!-- <form method="post" class="form-group">--> |
||||||
|
{% csrf_token %} |
||||||
|
{% for field in addressForm %} |
||||||
|
<div class="form-group"> |
||||||
|
<label for="{{ field.id_for_label }}">{{ field.label }}</label> |
||||||
|
<input class="form-control" |
||||||
|
type="{{ field.field.widget.input_type }}" |
||||||
|
name="{{ field.html_name }}" |
||||||
|
id="{{ field.auto_id }}" |
||||||
|
value="{{ field.value|default_if_none:"" }}" |
||||||
|
> |
||||||
|
</div> |
||||||
|
{% endfor %} |
||||||
|
|
||||||
|
<button type="submit" class="btn btn-primary" name="addressButton">Submit</button> |
||||||
|
<!--</form> --> |
||||||
|
</div> |
||||||
@ -0,0 +1,51 @@ |
|||||||
|
{% extends 'ugssim/ugssim.html' %} |
||||||
|
{% block content %} |
||||||
|
<form method="post" class="form-group"> |
||||||
|
<div class="accordion" id="accordionPlanning"> |
||||||
|
<div class="accordion-item"> |
||||||
|
<h2 class="accordion-header"> |
||||||
|
<button class="accordion-button" type="button" data-bs-toggle="collapse" |
||||||
|
data-bs-target="#collapseOne" |
||||||
|
aria-expanded="true" aria-controls="collapseOne"> |
||||||
|
Mandantendaten |
||||||
|
</button> |
||||||
|
</h2> |
||||||
|
<div id="collapseOne" class="accordion-collapse collapse show" data-bs-parent="#accordionPlanning"> |
||||||
|
<div class="accordion-body"> |
||||||
|
{% include 'planungsparameter/mandantendaten.html' %} |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="accordion-item"> |
||||||
|
<h2 class="accordion-header"> |
||||||
|
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" |
||||||
|
data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo"> |
||||||
|
Kurzfassung |
||||||
|
</button> |
||||||
|
</h2> |
||||||
|
|
||||||
|
|
||||||
|
<div id="collapseTwo" class="accordion-collapse collapse" data-bs-parent="#accordionPlanning"> |
||||||
|
<div class="accordion-body"> |
||||||
|
{% include 'planungsparameter/summary.html' %} |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="accordion-item"> |
||||||
|
<h2 class="accordion-header"> |
||||||
|
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" |
||||||
|
data-bs-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree"> |
||||||
|
Unternehmensdaten |
||||||
|
</button> |
||||||
|
</h2> |
||||||
|
<div id="collapseThree" class="accordion-collapse collapse" data-bs-parent="#accordionPlanning"> |
||||||
|
<div class="accordion-body"> |
||||||
|
{% include 'planungsparameter/companydata.html' %} |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</form> |
||||||
|
<!-- Add more sections here --> |
||||||
|
{% endblock content %} |
||||||
|
</div> |
||||||
@ -0,0 +1,12 @@ |
|||||||
|
<div class="container"> |
||||||
|
<form method="post" class="form-group"> |
||||||
|
{% csrf_token %} |
||||||
|
{% for field in summaryForm %} |
||||||
|
<div class="form-group"> |
||||||
|
<label for="{{ field.id_for_label }}">{{ field.label }}</label> |
||||||
|
<input class="form-control" type="{{ field.field.widget.input_type }}" name="{{ field.html_name }}" id="{{ field.auto_id }}" value="{{ field.value|default_if_none:"" }}" > |
||||||
|
</div> |
||||||
|
{% endfor %} |
||||||
|
<button type="submit" class="btn btn-primary" name="summaryButton">Submit</button> |
||||||
|
</form> |
||||||
|
</div> |
||||||
@ -1,37 +1,40 @@ |
|||||||
<nav class="navbar navbar-expand-lg bg-light"> |
<nav class="navbar navbar-expand-lg bg-light"> |
||||||
<div class="container-fluid"> |
<div class="container-fluid"> |
||||||
<!--<a class="navbar-brand" href="#">Menü</a>--> |
<!--<a class="navbar-brand" href="#">Menü</a>--> |
||||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" |
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" |
||||||
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> |
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> |
||||||
<span class="navbar-toggler-icon"></span> |
<span class="navbar-toggler-icon"></span> |
||||||
</button> |
</button> |
||||||
<div class="collapse navbar-collapse" id="navbarSupportedContent"> |
<div class="collapse navbar-collapse" id="navbarSupportedContent"> |
||||||
<ul class="navbar-nav me-auto mb-2 mb-lg-0"> |
<ul class="navbar-nav me-auto mb-2 mb-lg-0"> |
||||||
<li class="nav-item"> |
<li class="nav-item"> |
||||||
<a class="nav-link active" aria-current="page" href="/ugs/">Home</a> |
<a class="nav-link active" aria-current="page" href="/">Home</a> |
||||||
</li> |
</li> |
||||||
<li class="nav-item"> |
<li class="nav-item"> |
||||||
<a class="nav-link" href="/ugs/input/">Erfassung</a> |
<a class="nav-link" href="/planungsparameter/">Planungsparameter</a> |
||||||
</li> |
</li> |
||||||
<li class="nav-item dropdown"> |
<li class="nav-item dropdown"> |
||||||
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false"> |
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" |
||||||
Auswertung |
aria-expanded="false"> |
||||||
</a> |
Auswertung |
||||||
<ul class="dropdown-menu"> |
</a> |
||||||
<li><a class="dropdown-item" href="/mockup/tables/">Tabellen</a></li> |
<ul class="dropdown-menu"> |
||||||
<li><a class="dropdown-item" href="#">Diagramme</a></li> |
<li><a class="dropdown-item" href="/mockup/tables/">Tabellen</a></li> |
||||||
<li><hr class="dropdown-divider"></li> |
<li><a class="dropdown-item" href="#">Diagramme</a></li> |
||||||
<li><a class="dropdown-item" href="#">Export</a></li> |
<li> |
||||||
</ul> |
<hr class="dropdown-divider"> |
||||||
</li> |
</li> |
||||||
<li class="nav-item"> |
<li><a class="dropdown-item" href="#">Export</a></li> |
||||||
<a class="nav-link disabled">Pro Version Button</a> |
</ul> |
||||||
</li> |
</li> |
||||||
|
<li class="nav-item"> |
||||||
|
<a class="nav-link disabled">Pro Version Button</a> |
||||||
|
</li> |
||||||
</ul> |
</ul> |
||||||
<form class="d-flex" role="search"> |
<form class="d-flex" role="search"> |
||||||
<input class="form-control me-2" type="search" placeholder="Suche" aria-label="Search"> |
<input class="form-control me-2" type="search" placeholder="Suche" aria-label="Search"> |
||||||
<button class="btn btn-outline-success" type="submit">Suche</button> |
<button class="btn btn-outline-success" type="submit">Suche</button> |
||||||
</form> |
</form> |
||||||
</div> |
|
||||||
</div> |
</div> |
||||||
</nav> |
</div> |
||||||
|
</nav> |
||||||
|
|||||||
Loading…
Reference in new issue