Compare commits

...

3 Commits

  1. 1
      UGSdjangoProject/.idea/UGSdjangoProject.iml
  2. 6
      UGSdjangoProject/UGSdjangoProject/settings.py
  3. 2
      UGSdjangoProject/UGSdjangoProject/urls.py
  4. BIN
      UGSdjangoProject/db.sqlite3
  5. 57
      UGSdjangoProject/ugssim/form.py
  6. 43
      UGSdjangoProject/ugssim/migrations/0001_initial.py
  7. 26
      UGSdjangoProject/ugssim/migrations/0001_initial.py.org
  8. 50
      UGSdjangoProject/ugssim/migrations/0002_salesarea_salesareatype_summary_companydata_and_more.py.org
  9. 23
      UGSdjangoProject/ugssim/migrations/0003_alter_address_postleitzahl_alter_address_street.py.org
  10. 31
      UGSdjangoProject/ugssim/models.py
  11. 10
      UGSdjangoProject/ugssim/templates/planungsparameter/companydata.html
  12. 19
      UGSdjangoProject/ugssim/templates/planungsparameter/mandantendaten.html
  13. 51
      UGSdjangoProject/ugssim/templates/planungsparameter/planungsparameter.html
  14. 12
      UGSdjangoProject/ugssim/templates/planungsparameter/summary.html
  15. 3
      UGSdjangoProject/ugssim/templates/ugssim/address.html
  16. 63
      UGSdjangoProject/ugssim/templates/ugssim/navigation.html
  17. 1
      UGSdjangoProject/ugssim/templates/ugssim/ugssim.html
  18. 10
      UGSdjangoProject/ugssim/urls.py
  19. 60
      UGSdjangoProject/ugssim/views.py

@ -26,6 +26,7 @@
<option value="$MODULE_DIR$/templates" />
<option value="$MODULE_DIR$/ugssim/templates/ugssim" />
<option value="$MODULE_DIR$/ugssim/templates" />
<option value="$MODULE_DIR$/ugssim/templates/planungsparameter" />
</list>
</option>
</component>

@ -105,7 +105,7 @@ AUTH_PASSWORD_VALIDATORS = [
# Internationalization
# https://docs.djangoproject.com/en/5.0/topics/i18n/
LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'de-de'
TIME_ZONE = 'UTC'
@ -124,4 +124,6 @@ STATIC_URL = 'static/'
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]
#DATE_INPUT_FORMATS = ['%d-%m-%Y']

@ -22,5 +22,5 @@ from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('ugs/', include('ugssim.urls')),
path('', include('ugssim.urls')),
]

Binary file not shown.

@ -1,10 +1,63 @@
from django import forms
from django.forms import DateInput
from .models import *
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 Meta:
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__'

@ -1,5 +1,6 @@
# Generated by Django 5.0.1 on 2024-03-06 10:00
# Generated by Django 5.0.1 on 2024-03-13 12:59
import django.db.models.deletion
from django.db import migrations, models
@ -18,9 +19,45 @@ class Migration(migrations.Migration):
('vorname', models.CharField(max_length=255)),
('nachname', models.CharField(max_length=255)),
('geburtstag', models.DateField()),
('street', models.CharField(max_length=255)),
('street', models.CharField(max_length=10)),
('hausnummer', models.CharField(max_length=255)),
('postleitzahl', models.PositiveIntegerField()),
('postleitzahl', models.CharField(max_length=5)),
],
),
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,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
# Create your models here.
class Address(models.Model):
vorname = models.CharField(max_length=255)
nachname = models.CharField(max_length=255)
geburtstag = models.DateField()
street = models.CharField(max_length=255)
geburtstag: date = models.DateField()
street = models.CharField(max_length=10)
hausnummer = models.CharField(max_length=255)
postleitzahl = models.PositiveIntegerField()
postleitzahl = models.CharField(max_length=5)
def __str__(self):
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>

@ -12,6 +12,5 @@
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</body>
</html>
{% endblock content %}

@ -1,37 +1,40 @@
<nav class="navbar navbar-expand-lg bg-light">
<div class="container-fluid">
<!--<a class="navbar-brand" href="#">Menü</a>-->
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent"
<nav class="navbar navbar-expand-lg bg-light">
<div class="container-fluid">
<!--<a class="navbar-brand" href="#">Menü</a>-->
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="/ugs/">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/ugs/input/">Erfassung</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Auswertung
</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="/mockup/tables/">Tabellen</a></li>
<li><a class="dropdown-item" href="#">Diagramme</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">Export</a></li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link disabled">Pro Version Button</a>
</li>
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="/">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/planungsparameter/">Planungsparameter</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown"
aria-expanded="false">
Auswertung
</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="/mockup/tables/">Tabellen</a></li>
<li><a class="dropdown-item" href="#">Diagramme</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li><a class="dropdown-item" href="#">Export</a></li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link disabled">Pro Version Button</a>
</li>
</ul>
<form class="d-flex" role="search">
<input class="form-control me-2" type="search" placeholder="Suche" aria-label="Search">
<button class="btn btn-outline-success" type="submit">Suche</button>
<input class="form-control me-2" type="search" placeholder="Suche" aria-label="Search">
<button class="btn btn-outline-success" type="submit">Suche</button>
</form>
</div>
</div>
</nav>
</div>
</nav>

@ -1,4 +1,5 @@
{% load static %}
<script src="{% static 'bootstrap/js/bootstrap.bundle.js' %}"></script>
<!DOCTYPE html>
<html lang="de">
<head>

@ -2,7 +2,9 @@ from django.urls import path
from . import views
urlpatterns = [
path('',views.index, name='ugs_index'),
path('input/',views.input, name='ugs_input'),
# path('tables/',views.tables, name='ugstables'),
]
path('', views.index, name='ugs_index'),
path('input/', views.input, name='ugs_input'),
path('address/', views.address, name='ugs_address'),
path('planungsparameter/', views.planungsparameter, name='ugs_planungsparameter'),
# path('tables/',views.tables, name='ugstables'),
]

@ -2,39 +2,78 @@ from django.shortcuts import render
from django.http import HttpResponse
from django.template import loader
from django.shortcuts import render
from .form import AddressForm
from .form import *
from .models import *
from django.forms.models import model_to_dict
from django.views.generic import TemplateView
from ugssim.form import NameForm
# from ugssim.form import NameForm
# Create your views here.
def index(request):
template = loader.get_template('ugssim/home.html')
return HttpResponse(template.render())
return render(request, 'ugssim/home.html')
def planungsparameter(request):
addressForm = AddressForm()
summaryForm = SummaryForm()
companyDataForm = CompanyDataForm()
if request.method == "POST":
rp = request.POST
if 'addressButton' in rp:
addressForm = AddressForm(request.POST)
if addressForm.is_valid():
#Address.objects.create(**addressForm.cleaned_data)
addressForm.save()
elif 'summaryButton' in rp:
summaryForm = SummaryForm(request.POST)
if summaryForm.is_valid():
Summary.objects.update(**summaryForm.cleaned_data)
elif 'companyDataButton' in rp:
companyDataForm = CompanyDataForm(request.POST)
if companyDataForm.is_valid():
CompanyData.objects.update(**companyDataForm.cleaned_data)
else:
initial = model_to_dict(Address.objects.filter(id=1).first())
addressForm = AddressForm(initial=initial)
context = {
'addressForm': addressForm,
'summaryForm': summaryForm,
'companyDataForm': companyDataForm
}
return render(request, 'planungsparameter/planungsparameter.html', context)
def companydata(request):
template = loader.get_template('ugssim/companydata.html')
return HttpResponse(template.render())
return HttpResponse(template.render(request))
def input(request):
template = loader.get_template('ugssim/companydata.html')
return HttpResponse(template.render())
return HttpResponse(template.render(request))
'''
def get_name(request):
if request.method == 'POST':
form= NameForm(request.POST)
form = NameForm(request.POST)
if form.is_valid():
return HttpResponse(f"Hello, {form.your_name}!")
else:
form = NameForm()
return render(request, 'ugssim/name.html', {'form': form})
'''
from django.shortcuts import render
from .form import AddressForm
def address(request):
if request.method == 'POST':
@ -43,5 +82,4 @@ def address(request):
form.save()
else:
form = AddressForm()
return render(request, 'address.html', {'form': form})
return render(request, 'ugssim/address.html', {'form': form})

Loading…
Cancel
Save