mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Added ProjectRun API
This commit is contained in:
parent
6c7f5fdaf3
commit
7efb4c21d3
@ -5,7 +5,7 @@ from rest_framework.documentation import include_docs_urls
|
||||
|
||||
from part.urls import part_urls, part_cat_urls, part_param_urls, part_param_template_urls
|
||||
from stock.urls import stock_urls, stock_loc_urls, stock_track_urls
|
||||
from project.urls import prj_urls, prj_part_urls, prj_cat_urls
|
||||
from project.urls import prj_urls, prj_part_urls, prj_cat_urls, prj_run_urls
|
||||
from supplier.urls import cust_urls, manu_urls, supplier_part_urls, price_break_urls, supplier_urls
|
||||
from track.urls import unique_urls, part_track_urls
|
||||
|
||||
@ -39,6 +39,7 @@ apipatterns = [
|
||||
url(r'^project/', include(prj_urls)),
|
||||
url(r'^project-category/', include(prj_cat_urls)),
|
||||
url(r'^project-part/', include(prj_part_urls)),
|
||||
url(r'^project-run/', include(prj_run_urls)),
|
||||
]
|
||||
|
||||
urlpatterns = [
|
||||
|
@ -93,4 +93,4 @@ class ProjectRun(models.Model):
|
||||
project = models.ForeignKey(Project, on_delete=models.CASCADE)
|
||||
quantity = models.PositiveIntegerField(default=1, validators=[MinValueValidator(0)])
|
||||
|
||||
run_date = models.DateField(auto_now_add=True)
|
||||
run_date = models.DateField(blank=True, null=True)
|
||||
|
@ -1,6 +1,6 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
from .models import ProjectCategory, Project, ProjectPart
|
||||
from .models import ProjectCategory, Project, ProjectPart, ProjectRun
|
||||
|
||||
|
||||
class ProjectPartSerializer(serializers.HyperlinkedModelSerializer):
|
||||
@ -33,3 +33,15 @@ class ProjectCategorySerializer(serializers.HyperlinkedModelSerializer):
|
||||
'description',
|
||||
'parent',
|
||||
'path')
|
||||
|
||||
|
||||
class ProjectRunSerializer(serializers.HyperlinkedModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = ProjectRun
|
||||
fields = ('url',
|
||||
'project',
|
||||
'quantity',
|
||||
'run_date')
|
||||
|
||||
read_only_fields = ('run_date',)
|
||||
|
@ -28,3 +28,12 @@ prj_urls = [
|
||||
url(r'^\?.*/?$', views.ProjectList.as_view()),
|
||||
url(r'^$', views.ProjectList.as_view())
|
||||
]
|
||||
|
||||
prj_run_urls = [
|
||||
# Individual project URL
|
||||
url(r'^(?P<pk>[0-9]+)/?$', views.ProjectRunDetail.as_view(), name='projectrun-detail'),
|
||||
|
||||
# List of all projects
|
||||
url(r'^\?.*/?$', views.ProjectRunList.as_view()),
|
||||
url(r'^$', views.ProjectRunList.as_view())
|
||||
]
|
||||
|
@ -2,10 +2,11 @@ from django_filters.rest_framework import FilterSet, DjangoFilterBackend
|
||||
|
||||
from rest_framework import generics, permissions
|
||||
from InvenTree.models import FilterChildren
|
||||
from .models import ProjectCategory, Project, ProjectPart
|
||||
from .models import ProjectCategory, Project, ProjectPart, ProjectRun
|
||||
from .serializers import ProjectSerializer
|
||||
from .serializers import ProjectCategorySerializer
|
||||
from .serializers import ProjectPartSerializer
|
||||
from .serializers import ProjectRunSerializer
|
||||
|
||||
|
||||
class ProjectDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||
@ -96,6 +97,13 @@ class ProjectCategoryList(generics.ListCreateAPIView):
|
||||
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
|
||||
|
||||
|
||||
class ProjectPartFilter(FilterSet):
|
||||
|
||||
class Meta:
|
||||
model = ProjectPart
|
||||
fields = ['project', 'part']
|
||||
|
||||
|
||||
class ProjectPartsList(generics.ListCreateAPIView):
|
||||
"""
|
||||
|
||||
@ -109,20 +117,9 @@ class ProjectPartsList(generics.ListCreateAPIView):
|
||||
|
||||
serializer_class = ProjectPartSerializer
|
||||
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
|
||||
|
||||
def get_queryset(self):
|
||||
parts = ProjectPart.objects.all()
|
||||
params = self.request.query_params
|
||||
|
||||
project_id = params.get('project', None)
|
||||
if project_id:
|
||||
parts = parts.filter(project=project_id)
|
||||
|
||||
part_id = params.get('part', None)
|
||||
if part_id:
|
||||
parts = parts.filter(part=part_id)
|
||||
|
||||
return parts
|
||||
queryset = ProjectPart.objects.all()
|
||||
filter_backends = (DjangoFilterBackend,)
|
||||
filter_class = ProjectPartFilter
|
||||
|
||||
|
||||
class ProjectPartDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||
@ -142,3 +139,45 @@ class ProjectPartDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||
queryset = ProjectPart.objects.all()
|
||||
serializer_class = ProjectPartSerializer
|
||||
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
|
||||
|
||||
|
||||
class ProjectRunDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||
"""
|
||||
|
||||
get:
|
||||
Return a single ProjectRun
|
||||
|
||||
post:
|
||||
Update a ProjectRun
|
||||
|
||||
delete:
|
||||
Remove a ProjectRun
|
||||
"""
|
||||
|
||||
queryset = ProjectRun.objects.all()
|
||||
serializer_class = ProjectRunSerializer
|
||||
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
|
||||
|
||||
|
||||
class ProjectRunFilter(FilterSet):
|
||||
|
||||
class Meta:
|
||||
model = ProjectRun
|
||||
fields = ['project']
|
||||
|
||||
|
||||
class ProjectRunList(generics.ListCreateAPIView):
|
||||
"""
|
||||
|
||||
get:
|
||||
Return a list of all ProjectRun objects
|
||||
|
||||
post:
|
||||
Create a new ProjectRun object
|
||||
"""
|
||||
|
||||
queryset = ProjectRun.objects.all()
|
||||
serializer_class = ProjectRunSerializer
|
||||
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
|
||||
filter_backends = (DjangoFilterBackend,)
|
||||
filter_class = ProjectRunFilter
|
||||
|
Loading…
Reference in New Issue
Block a user