add workplace option

This commit is contained in:
Alicja Cięciwa
2020-12-28 19:05:08 +01:00
parent 884e877933
commit 3503eb94e8
15 changed files with 128 additions and 23 deletions

View File

@@ -1,5 +1,5 @@
from django import forms
from work.models import HoursInput
from work.models import HoursInput, WorkplaceInput
from datetime import datetime
@@ -25,6 +25,28 @@ class HoursInputForm(forms.ModelForm):
error_messages={
'required': 'Wprowadź liczbę godzin',
})
# self.fields['workplace'] = forms.CharField(
# widget=forms.TextInput(attrs={
# 'placeholder': 'Miejsce pracy'
# }),
# error_messages={
# 'required': 'Wprowadź miejsce pracy',
# })
self.fields['workplace'] = forms.ModelChoiceField(queryset=WorkplaceInput.objects.all().order_by('id'))
for field in ['date', 'hours_number', 'workplace']:
self.fields[field].help_text = None
self.fields[field].label = ''
class WorkplaceInputForm(forms.ModelForm):
class Meta:
model = WorkplaceInput
fields = ['workplace']
def __init__(self, *args, **kwargs):
super(WorkplaceInputForm, self).__init__(*args, **kwargs)
self.fields['workplace'] = forms.CharField(
widget=forms.TextInput(attrs={
'placeholder': 'Miejsce pracy'
@@ -32,8 +54,5 @@ class HoursInputForm(forms.ModelForm):
error_messages={
'required': 'Wprowadź miejsce pracy',
})
for field in ['date', 'hours_number', 'workplace']:
self.fields[field].help_text = None
self.fields[field].label = ''
self.fields['workplace'].help_text = None
self.fields['workplace'].label = ''

View File

@@ -0,0 +1,27 @@
# Generated by Django 3.1.2 on 2020-12-28 16:44
from django.conf import settings
import django.core.validators
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('work', '0002_hoursinput_date'),
]
operations = [
migrations.AddField(
model_name='hoursinput',
name='user',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
migrations.AlterField(
model_name='hoursinput',
name='hours_number',
field=models.IntegerField(validators=[django.core.validators.MaxValueValidator(15, 'Niemożliwe, że tyle pracowałeś'), django.core.validators.MinValueValidator(0, 'Wprowadź liczbę dodatnią 0-15')]),
),
]

View File

@@ -0,0 +1,20 @@
# Generated by Django 3.1.2 on 2020-12-28 17:31
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('work', '0003_auto_20201228_1744'),
]
operations = [
migrations.CreateModel(
name='WorkplaceInput',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('workplace', models.CharField(max_length=100)),
],
),
]

View File

@@ -1,9 +1,12 @@
from django.db import models
import datetime
from django.core.validators import MaxValueValidator, MinValueValidator
from django.conf import settings
class HoursInput(models.Model):
User = settings.AUTH_USER_MODEL
user = models.ForeignKey(User, null=True, on_delete=models.CASCADE)
date = models.DateField(default=datetime.date.today)
hours_number = models.IntegerField(validators=[
MaxValueValidator(15, "Niemożliwe, że tyle pracowałeś"),
@@ -11,3 +14,9 @@ class HoursInput(models.Model):
])
workplace = models.CharField(max_length=100)
class WorkplaceInput(models.Model):
workplace = models.CharField(max_length=100)
def __str__(self):
return self.workplace

View File

@@ -1,12 +1,8 @@
from django.http import HttpResponseRedirect
from django.shortcuts import render
from work.forms import HoursInputForm
from work.forms import *
from django.contrib.auth.decorators import login_required
#
# @login_required
# def index(request):
# return render(request,'registration/login.html')
@login_required
def get_basic_workdata(request):
@@ -14,10 +10,25 @@ def get_basic_workdata(request):
if request.method == 'POST':
form = HoursInputForm(request.POST)
if form.is_valid():
form.save()
fs = form.save(commit=False)
fs.user = request.user
fs.save()
return HttpResponseRedirect('/')
else:
form = HoursInputForm()
return render(request, 'inputhours.html', {'form': form, 'title': title})
@login_required
def addworkplace_view(request):
title = "Prace"
if request.method == 'POST':
form = WorkplaceInputForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/')
else:
form = WorkplaceInputForm()
return render(request, 'addworkplace.html', {'form': form, 'title': title})