Skip to content

Commit a597990

Browse files
Merge pull request #39 from horilla-opensource/dev
Dev
2 parents b077373 + f58f663 commit a597990

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+2110
-944
lines changed

asset/admin.py

+15-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,23 @@
1+
"""
2+
Module: admin.py
3+
Description: This module is responsible for registering models
4+
to be managed through the Django admin interface.
5+
Models Registered:
6+
- Asset: Represents a physical asset with relevant details.
7+
- AssetCategory: Categorizes assets for better organization.
8+
- AssetRequest: Manages requests for acquiring assets.
9+
- AssetAssignment: Tracks the assets assigned to employees.
10+
- AssetLot: Represents a collection of assets under a lot number.
11+
"""
12+
113
from django.contrib import admin
2-
from .models import Asset,AssetCategory,AssetRequest,AssetAssignment,AssetLot
14+
from .models import Asset, AssetCategory, AssetRequest, AssetAssignment, AssetLot
15+
316
# Register your models here.
417

518

619
admin.site.register(Asset)
720
admin.site.register(AssetRequest)
821
admin.site.register(AssetCategory)
922
admin.site.register(AssetAssignment)
10-
admin.site.register(AssetLot)
23+
admin.site.register(AssetLot)

asset/apps.py

+15-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
1+
"""
2+
Module: apps.py
3+
Description: Configuration for the 'asset' app.
4+
"""
15
from django.apps import AppConfig
26

37

48
class AssetConfig(AppConfig):
5-
default_auto_field = 'django.db.models.BigAutoField'
6-
name = 'asset'
9+
"""
10+
Class: AssetConfig
11+
Description: Configuration class for the 'asset' app.
12+
13+
Attributes:
14+
default_auto_field (str): Default auto-generated field type for primary keys.
15+
name (str): Name of the app.
16+
"""
17+
18+
default_auto_field = "django.db.models.BigAutoField"
19+
name = "asset"

asset/filters.py

+155-51
Original file line numberDiff line numberDiff line change
@@ -1,91 +1,195 @@
1-
from django_filters import FilterSet
2-
from django_filters import FilterSet, CharFilter
1+
"""
2+
Module containing custom filter classes for various models.
3+
"""
4+
5+
import uuid
36
import django_filters
4-
from .models import Asset,AssetAssignment,AssetCategory,AssetRequest,AssetLot
57
from django import forms
6-
import uuid
8+
from django_filters import FilterSet
9+
from .models import Asset, AssetAssignment, AssetCategory, AssetRequest
710

8-
911

1012
class CustomFilterSet(FilterSet):
1113
def __init__(self, *args, **kwargs):
1214
super().__init__(*args, **kwargs)
13-
15+
1416
for field_name, field in self.filters.items():
1517
filter_widget = self.filters[field_name]
1618
widget = filter_widget.field.widget
17-
if isinstance(widget, (forms.NumberInput, forms.EmailInput,forms.TextInput)):
18-
filter_widget.field.widget.attrs.update({'class': 'oh-input w-100'})
19-
elif isinstance(widget,(forms.Select,)):
20-
filter_widget.field.widget.attrs.update({'class': 'oh-select oh-select-2',})
21-
elif isinstance(widget,(forms.Textarea)):
22-
filter_widget.field.widget.attrs.update({'class': 'oh-input w-100'})
23-
elif isinstance(widget, (forms.CheckboxInput,forms.CheckboxSelectMultiple,)):
24-
filter_widget.field.widget.attrs.update({'class': 'oh-switch__checkbox'})
25-
elif isinstance(widget,(forms.ModelChoiceField)):
26-
filter_widget.field.widget.attrs.update({'class': 'oh-select oh-select-2 ',})
27-
elif isinstance(widget,(forms.DateField)):
28-
filter_widget.field.widget.attrs.update({'type': 'date','class':'oh-input w-100'})
19+
if isinstance(
20+
widget, (forms.NumberInput, forms.EmailInput, forms.TextInput)
21+
):
22+
filter_widget.field.widget.attrs.update({"class": "oh-input w-100"})
23+
elif isinstance(widget, (forms.Select,)):
24+
filter_widget.field.widget.attrs.update(
25+
{
26+
"class": "oh-select oh-select-2",
27+
}
28+
)
29+
elif isinstance(widget, (forms.Textarea)):
30+
filter_widget.field.widget.attrs.update({"class": "oh-input w-100"})
31+
elif isinstance(
32+
widget,
33+
(
34+
forms.CheckboxInput,
35+
forms.CheckboxSelectMultiple,
36+
),
37+
):
38+
filter_widget.field.widget.attrs.update(
39+
{"class": "oh-switch__checkbox"}
40+
)
41+
elif isinstance(widget, (forms.ModelChoiceField)):
42+
filter_widget.field.widget.attrs.update(
43+
{
44+
"class": "oh-select oh-select-2 ",
45+
}
46+
)
47+
elif isinstance(widget, (forms.DateField)):
48+
filter_widget.field.widget.attrs.update(
49+
{"type": "date", "class": "oh-input w-100"}
50+
)
2951
if isinstance(field, django_filters.CharFilter):
30-
field.lookup_expr='icontains'
31-
32-
52+
field.lookup_expr = "icontains"
53+
54+
3355
class AssetExportFilter(CustomFilterSet):
34-
56+
"""
57+
Custom filter class for exporting filtered Asset data.
58+
"""
59+
3560
class Meta:
61+
"""
62+
A nested class that specifies the configuration for the filter.
63+
model(class): The Asset model is used to filter.
64+
fields (str): A special value "__all__" to include all fields
65+
of the model in the filter.
66+
"""
67+
3668
model = Asset
37-
fields = '__all__'
69+
fields = "__all__"
3870

3971
def __init__(self, *args, **kwargs):
4072
super(AssetExportFilter, self).__init__(*args, **kwargs)
41-
self.form.fields['asset_purchase_date'].widget.attrs.update({'type':'date'})
42-
73+
self.form.fields["asset_purchase_date"].widget.attrs.update({"type": "date"})
74+
75+
4376
class AssetFilter(CustomFilterSet):
77+
"""
78+
Custom filter set for Asset instances.
79+
"""
80+
4481
class Meta:
82+
"""
83+
A nested class that specifies the configuration for the filter.
84+
model(class): The Asset model is used to filter.
85+
fields (str): A special value "__all__" to include all fields
86+
of the model in the filter.
87+
"""
88+
4589
model = Asset
46-
fields = '__all__'
47-
def __init__(self,*args,**kwargs):
48-
super(AssetFilter,self).__init__(*args,**kwargs)
90+
fields = "__all__"
91+
92+
def __init__(self, *args, **kwargs):
93+
super(AssetFilter, self).__init__(*args, **kwargs)
4994
for visible in self.form.visible_fields():
50-
visible.field.widget.attrs['id'] = str(uuid.uuid4())
51-
95+
visible.field.widget.attrs["id"] = str(uuid.uuid4())
96+
5297

5398
class CustomAssetFilter(CustomFilterSet):
54-
asset_id__asset_name = django_filters.CharFilter(lookup_expr='icontains')
99+
"""
100+
Custom filter set for asset assigned to employees instances.
101+
"""
102+
103+
asset_id__asset_name = django_filters.CharFilter(lookup_expr="icontains")
55104

56105
class Meta:
106+
"""
107+
Specifies the model and fields to be used for filtering AssetAssignment instances.
108+
109+
Attributes:
110+
model (class): The model class AssetAssignment to be filtered.
111+
fields (list): The fields to include in the filter, referring to
112+
related AssetAssignment fields.
113+
"""
114+
57115
model = AssetAssignment
58-
fields =['asset_id__asset_name','asset_id__asset_status',]
59-
def __init__(self,*args,**kwargs):
60-
super(CustomAssetFilter,self).__init__(*args,**kwargs)
116+
fields = [
117+
"asset_id__asset_name",
118+
"asset_id__asset_status",
119+
]
120+
121+
def __init__(self, *args, **kwargs):
122+
super(CustomAssetFilter, self).__init__(*args, **kwargs)
61123
for visible in self.form.visible_fields():
62-
visible.field.widget.attrs['id'] = str(uuid.uuid4())
124+
visible.field.widget.attrs["id"] = str(uuid.uuid4())
125+
63126

64-
65127
class AssetRequestFilter(CustomFilterSet):
128+
"""
129+
Custom filter set for AssetRequest instances.
130+
"""
131+
66132
class Meta:
133+
"""
134+
Specifies the model and fields to be used for filtering AssetRequest instances.
135+
136+
Attributes:
137+
model (class): The model class AssetRequest to be filtered.
138+
fields (str): A special value "__all__" to include all fields of the model in the filter.
139+
"""
140+
67141
model = AssetRequest
68-
fields = '__all__'
69-
def __init__(self,*args,**kwargs):
70-
super(AssetRequestFilter,self).__init__(*args,**kwargs)
142+
fields = "__all__"
143+
144+
def __init__(self, *args, **kwargs):
145+
super(AssetRequestFilter, self).__init__(*args, **kwargs)
71146
for visible in self.form.visible_fields():
72-
visible.field.widget.attrs['id'] = str(uuid.uuid4())
73-
147+
visible.field.widget.attrs["id"] = str(uuid.uuid4())
148+
149+
74150
class AssetAllocationFilter(CustomFilterSet):
151+
"""
152+
Custom filter set for AssetAllocation instances.
153+
"""
154+
75155
class Meta:
156+
"""
157+
Specifies the model and fields to be used for filtering AssetAllocation instances.
158+
159+
Attributes:
160+
model (class): The model class AssetAssignment to be filtered.
161+
fields (str): A special value "__all__" to include all fields
162+
of the model in the filter.
163+
"""
164+
76165
model = AssetAssignment
77-
fields = '__all__'
78-
def __init__(self,*args,**kwargs):
79-
super(AssetAllocationFilter,self).__init__(*args,**kwargs)
166+
fields = "__all__"
167+
168+
def __init__(self, *args, **kwargs):
169+
super(AssetAllocationFilter, self).__init__(*args, **kwargs)
80170
for visible in self.form.visible_fields():
81-
visible.field.widget.attrs['id'] = str(uuid.uuid4())
82-
171+
visible.field.widget.attrs["id"] = str(uuid.uuid4())
172+
173+
83174
class AssetCategoryFilter(CustomFilterSet):
175+
"""
176+
Custom filter set for AssetCategory instances.
177+
"""
178+
84179
class Meta:
180+
"""
181+
Specifies the model and fields to be used for filtering AssetCategory instances.
182+
183+
Attributes:
184+
model (class): The model class AssetCategory to be filtered.
185+
fields (str): A special value "__all__" to include all fields
186+
of the model in the filter.
187+
"""
188+
85189
model = AssetCategory
86-
fields = '__all__'
87-
def __init__(self,*args,**kwargs):
88-
super(AssetCategoryFilter,self).__init__(*args,**kwargs)
190+
fields = "__all__"
191+
192+
def __init__(self, *args, **kwargs):
193+
super(AssetCategoryFilter, self).__init__(*args, **kwargs)
89194
for visible in self.form.visible_fields():
90-
visible.field.widget.attrs['id'] = str(uuid.uuid4())
91-
195+
visible.field.widget.attrs["id"] = str(uuid.uuid4())

0 commit comments

Comments
 (0)