Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for supervisor in forms #38

Merged
merged 7 commits into from
Sep 2, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 33 additions & 34 deletions requirements/dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,83 +8,82 @@
appdirs==1.4.4 # via black, virtualenv
asgiref==3.2.10 # via django
astroid==2.4.2 # via pylint
attrs==19.3.0 # via black
autopep8==1.5.3
babel==2.8.0 # via django-phonenumber-field
autopep8==1.5.4
backcall==0.2.0 # via ipython
black==19.10b0
cfgv==3.1.0 # via pre-commit
black==20.8b1
cfgv==3.2.0 # via pre-commit
click==7.1.2 # via black
coverage==5.1
coverage==5.2.1
dataclasses==0.6 # via black
decorator==4.4.2 # via ipython, traitlets
distlib==0.3.0 # via virtualenv
distlib==0.3.1 # via virtualenv
django-braces==1.14.0 # via django-model-reviews
django-contrib-comments==1.9.2 # via django-model-reviews
django-crispy-forms==1.9.1
django-crispy-forms==1.9.2
django-js-asset==1.2.2 # via django-mptt
django-model-reviews==1.0.2
django-mptt==0.11.0
django-phonenumber-field==4.0.0
django-phonenumber-field==5.0.0
django-private-storage==2.2.2
django==3.0.7 # via django-braces, django-contrib-comments, django-model-reviews, django-mptt, django-phonenumber-field, djangorestframework, model-mommy
djangorestframework==3.11.0
django==3.1.1 # via django-braces, django-contrib-comments, django-model-reviews, django-mptt, django-phonenumber-field, djangorestframework, model-mommy
djangorestframework==3.11.1
fastdiff==0.2.0 # via snapshottest
filelock==3.0.12 # via tox, virtualenv
flake8==3.8.3
freezegun==0.3.15
identify==1.4.20 # via pre-commit
importlib-metadata==1.6.1 # via flake8, importlib-resources, pluggy, pre-commit, tox, virtualenv
importlib-resources==2.0.1 # via pre-commit, virtualenv
identify==1.4.30 # via pre-commit
importlib-metadata==1.7.0 # via flake8, pluggy, pre-commit, tox, virtualenv
importlib-resources==3.0.0 # via pre-commit, virtualenv
ipdb==0.13.3
ipython-genutils==0.2.0 # via traitlets
ipython==7.15.0 # via ipdb
isort==4.3.21
jedi==0.17.1 # via ipython
ipython==7.16.1 # via ipdb
isort==5.4.2
jedi==0.17.2 # via ipython
lazy-object-proxy==1.4.3 # via astroid
mccabe==0.6.1 # via flake8, pylint
model-mommy==2.0.0
mypy-extensions==0.4.3 # via mypy
mypy-extensions==0.4.3 # via black, mypy
mypy==0.782
nodeenv==1.4.0 # via pre-commit
nodeenv==1.5.0 # via pre-commit
packaging==20.4 # via tox
parso==0.7.0 # via jedi
parso==0.7.1 # via jedi
pathspec==0.8.0 # via black
pep8==1.7.1
pexpect==4.8.0 # via ipython
phonenumberslite==8.12.6
phonenumberslite==8.12.9
pickleshare==0.7.5 # via ipython
pillow==7.1.2
pillow==7.2.0
pluggy==0.13.1 # via tox
pre-commit==2.5.1
prompt-toolkit==3.0.5 # via ipython
pre-commit==2.7.1
prompt-toolkit==3.0.7 # via ipython
psycopg2-binary==2.8.5
ptyprocess==0.6.0 # via pexpect
py==1.8.2 # via tox
py==1.9.0 # via tox
pycodestyle==2.6.0
pydocstyle==5.0.2
pydocstyle==5.1.1
pyflakes==2.2.0 # via flake8
pygments==2.6.1 # via ipython
pylint-django==2.0.15
pylint-django==2.3.0
pylint-plugin-utils==0.6 # via pylint-django
pylint==2.5.3
pylint==2.6.0
pyparsing==2.4.7 # via packaging
python-dateutil==2.8.1 # via freezegun
pytz==2020.1 # via babel, django
pytz==2020.1 # via django
pyyaml==5.3.1 # via pre-commit
regex==2020.6.8 # via black
regex==2020.7.14 # via black
six==1.15.0 # via astroid, django-braces, django-contrib-comments, freezegun, packaging, python-dateutil, snapshottest, tox, traitlets, virtualenv
snapshottest==0.5.1
snowballstemmer==2.0.0 # via pydocstyle
sorl-thumbnail==12.6.3
sqlparse==0.3.1 # via django
tblib==1.6.0
tblib==1.7.0
termcolor==1.1.0 # via snapshottest
toml==0.10.1 # via autopep8, black, pre-commit, pylint, tox
tox==3.15.2
tox==3.20.0
traitlets==4.3.3 # via ipython
typed-ast==1.4.1 # via astroid, black, mypy
typing-extensions==3.7.4.2 # via mypy
virtualenv==20.0.25 # via pre-commit, tox
typing-extensions==3.7.4.3 # via black, mypy
virtualenv==20.0.31 # via pre-commit, tox
voluptuous==0.11.7
wasmer==0.4.1 # via fastdiff
wcwidth==0.2.5 # via prompt-toolkit
Expand Down
2 changes: 1 addition & 1 deletion small_small_hr/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"""Main init file for small_small_hr."""
VERSION = (0, 2, 1)
VERSION = (0, 2, 2)
__version__ = ".".join(str(v) for v in VERSION)
# pylint: disable=invalid-name
default_app_config = "small_small_hr.apps.SmallSmallHrConfig" # noqa
6 changes: 5 additions & 1 deletion small_small_hr/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

from django import forms
from django.conf import settings
from django.contrib.auth.models import User
from django.contrib.auth.models import User # pylint: disable = imported-auth-user
from django.db.models import Q
from django.utils.translation import ugettext as _

Expand Down Expand Up @@ -526,6 +526,7 @@ class Meta: # pylint: disable=too-few-public-methods
"emergency_contact_name",
"emergency_contact_number",
"emergency_contact_relationship",
"supervisor",
]

def __init__(self, *args, **kwargs):
Expand All @@ -544,6 +545,7 @@ def __init__(self, *args, **kwargs):
self.helper.layout = Layout(
Field("first_name",),
Field("last_name",),
Field("supervisor",),
Field("image",),
Field("phone",),
Field("id_number",),
Expand Down Expand Up @@ -660,6 +662,7 @@ class Meta: # pylint: disable=too-few-public-methods
"user",
"first_name",
"last_name",
"supervisor",
"id_number",
"image",
"phone",
Expand Down Expand Up @@ -697,6 +700,7 @@ def __init__(self, *args, **kwargs):
Field("user",),
Field("first_name",),
Field("last_name",),
Field("supervisor",),
Field("image",),
Field("phone",),
Field("id_number",),
Expand Down
2 changes: 1 addition & 1 deletion small_small_hr/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -507,7 +507,7 @@ def get_days(start: object, end: object):
yield local_start.date() + timedelta(days=i)


def get_taken_leave_days( # pylint: disable=bad-continuation
def get_taken_leave_days(
staffprofile: object, status: str, leave_type: str, start_year: int, end_year: int
):
"""
Expand Down
2 changes: 1 addition & 1 deletion small_small_hr/reviews.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""Review module for small-small-hr."""
from django.conf import settings
from django.contrib.auth.models import User
from django.contrib.auth.models import User # pylint: disable = imported-auth-user
from django.db import models

from model_reviews.models import Reviewer
Expand Down
85 changes: 44 additions & 41 deletions small_small_hr/serializers.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""
Serializers for users app
"""
from django.contrib.auth.models import User
from django.contrib.auth.models import User # pylint: disable = imported-auth-user

from rest_framework import serializers

Expand All @@ -18,16 +18,18 @@ class Meta: # pylint: disable=too-few-public-methods
"""
meta options
"""

model = User
fields = ('username', 'first_name', 'last_name', 'email')
fields = ("username", "first_name", "last_name", "email")


class StaffProfileSerializer(serializers.ModelSerializer):
"""
Serializer class for StaffProfile model
"""
first_name = serializers.CharField(source='user.first_name')
last_name = serializers.CharField(source='user.last_name')

first_name = serializers.CharField(source="user.first_name")
last_name = serializers.CharField(source="user.last_name")
id_number = serializers.SerializerMethodField()
phone = serializers.SerializerMethodField()
sex = serializers.SerializerMethodField()
Expand All @@ -49,123 +51,124 @@ class Meta: # pylint: disable=too-few-public-methods
"""
class meta options
"""

model = StaffProfile
fields = [
'id',
'first_name',
'last_name',
'created',
'id_number',
'phone',
'sex',
'modified',
'role',
'nhif',
'emergency_contact_name',
'nssf',
'address',
'birthday',
'overtime_allowed',
'leave_days',
'start_date',
'sick_days',
'pin_number',
'end_date',
'emergency_contact_number',
"id",
"first_name",
"last_name",
"created",
"id_number",
"phone",
"sex",
"modified",
"role",
"nhif",
"emergency_contact_name",
"nssf",
"address",
"birthday",
"overtime_allowed",
"leave_days",
"start_date",
"sick_days",
"pin_number",
"end_date",
"emergency_contact_number",
]

def get_id_number(self, obj): # pylint: disable=no-self-use
"""
Get id_number
"""
return obj.data.get('id_number')
return obj.data.get("id_number")

def get_phone(self, obj): # pylint: disable=no-self-use
"""
Get phone
"""
return obj.data.get('phone')
return obj.data.get("phone")

def get_sex(self, obj): # pylint: disable=no-self-use
"""
Get sex
"""
return obj.data.get('sex')
return obj.data.get("sex")

def get_role(self, obj): # pylint: disable=no-self-use
"""
Get role
"""
return obj.data.get('role')
return obj.data.get("role")

def get_nhif(self, obj): # pylint: disable=no-self-use
"""
Get nhhf
"""
return obj.data.get('nhif')
return obj.data.get("nhif")

def get_nssf(self, obj): # pylint: disable=no-self-use
"""
Get nssf
"""
return obj.data.get('nssf')
return obj.data.get("nssf")

def get_pin_number(self, obj): # pylint: disable=no-self-use
"""
Get pin_number
"""
return obj.data.get('pin_number')
return obj.data.get("pin_number")

def get_address(self, obj): # pylint: disable=no-self-use
"""
Get address
"""
return obj.data.get('address')
return obj.data.get("address")

def get_birthday(self, obj): # pylint: disable=no-self-use
"""
Get birthday
"""
return obj.data.get('birthday')
return obj.data.get("birthday")

def get_leave_days(self, obj): # pylint: disable=no-self-use
"""
Get leave_days
"""
return obj.data.get('leave_days')
return obj.data.get("leave_days")

def get_sick_days(self, obj): # pylint: disable=no-self-use
"""
Get sick_days
"""
return obj.data.get('sick_days')
return obj.data.get("sick_days")

def get_overtime_allowed(self, obj): # pylint: disable=no-self-use
"""
Get overtime_allowed
"""
return obj.data.get('overtime_allowed')
return obj.data.get("overtime_allowed")

def get_start_date(self, obj): # pylint: disable=no-self-use
"""
Get start_date
"""
return obj.data.get('start_date')
return obj.data.get("start_date")

def get_end_date(self, obj): # pylint: disable=no-self-use
"""
Get end_date
"""
return obj.data.get('end_date')
return obj.data.get("end_date")

def get_emergency_contact_name(self, obj): # pylint: disable=no-self-use
"""
Get emergency_contact_name
"""
return obj.data.get('emergency_contact_name')
return obj.data.get("emergency_contact_name")

def get_emergency_contact_number(self, obj): # pylint: disable=no-self-use
"""
Get emergency_contact_number
"""
return obj.data.get('emergency_contact_number')
return obj.data.get("emergency_contact_number")
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
{{ object.content_object.duration.days }} days of {{ object.content_object.get_leave_type_display}}<br />
{{ object.content_object.start|date:"D, d M Y" }} - {{ object.content_object.end|date:"D, d M Y" }}<br />
Available Balance: {{ object.content_object.staff.get_available_leave_days|floatformat:2 }} days<br /><br />
Please log in to process the above: http://{{SITE.name}}/reviews/{{ object.pk }}
Please log in to process the above: http://{{SITE.domain}}/reviews/{{ object.pk }}
<br/><br/>
Thank you,<br/>
{{SITE.name}}<br/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
{{ object.content_object.start|date:"D, d M Y" }} - {{ object.content_object.end|date:"D, d M Y" }}
Available Balance: {{ object.content_object.staff.get_available_leave_days|floatformat:2 }} days

Please log in to process the above: http://{{SITE.name}}/reviews/{{ object.pk }}
Please log in to process the above: http://{{SITE.domain}}/reviews/{{ object.pk }}

Thank you,

Expand Down
Loading