Skip to content

Commit

Permalink
temp-commit
Browse files Browse the repository at this point in the history
  • Loading branch information
jon-nfc committed Aug 25, 2024
1 parent cb9c782 commit 5b77b5a
Show file tree
Hide file tree
Showing 42 changed files with 3,465 additions and 5 deletions.
9 changes: 8 additions & 1 deletion app/app/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

from .views import home

from core.views import history
from core.views import history, ticket

from settings.views import user_settings

Expand All @@ -50,6 +50,13 @@
path("history/<str:model_name>/<int:model_pk>", history.View.as_view(), name='_history'),
re_path(r'^static/(?P<path>.*)$', serve,{'document_root': settings.STATIC_ROOT}),


path('ticket/', ticket.View.as_view(), name="_ticket"),

path('ticket/add', ticket.Add.as_view(), name="_ticket"),

path('ticket/<str:ticket_type>/add', ticket.Add.as_view(), name="_ticket"),

]


Expand Down
14 changes: 13 additions & 1 deletion app/assistance/urls.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
from django.urls import path
from django.urls import path, re_path

from assistance.views import knowledge_base

from core.views import ticket, ticket_comment

app_name = "Assistance"

urlpatterns = [
Expand All @@ -12,4 +14,14 @@
path("information/<int:pk>/delete", knowledge_base.Delete.as_view(), name="_knowledge_base_delete"),
path("information/<int:pk>", knowledge_base.View.as_view(), name="_knowledge_base_view"),

# re_path(r"^ticket/(?P<ticket_type>request)$", ticket.Index.as_view(), name="Requests"),
path('ticket/<str:ticket_type>', ticket.Index.as_view(), name="Requests"),
path('ticket/<str:ticket_type>/add', ticket.Add.as_view(), name="_ticket_request_add"),
path('ticket/<str:ticket_type>/<int:pk>/edit', ticket.Change.as_view(), name="_ticket_request_change"),
path('ticket/<str:ticket_type>/<int:pk>', ticket.View.as_view(), name="_ticket_request_view"),

path('ticket/<str:ticket_type>/<int:ticket_id>/comment/add', ticket_comment.Add.as_view(), name="_ticket_comment_request_add"),
path('ticket/<str:ticket_type>/<int:ticket_id>/comment/<int:pk>/edit', ticket_comment.Change.as_view(), name="_ticket_comment_request_change"),
path('ticket/<str:ticket_type>/<int:ticket_id>/comment/<int:parent_id>/add', ticket_comment.Add.as_view(), name="_ticket_comment_request_reply_add"),

]
165 changes: 165 additions & 0 deletions app/core/forms/ticket.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
from django import forms
from django.db.models import Q

from app import settings

from core.forms.common import CommonModelForm

from core.models.ticket.ticket import Ticket, RelatedTickets


class TicketForm(CommonModelForm):

prefix = 'ticket'

class Meta:
model = Ticket
fields = '__all__'


def __init__(self, *args, **kwargs):

super().__init__(*args, **kwargs)

self.fields['planned_start_date'].widget = forms.widgets.DateTimeInput(attrs={'type': 'datetime-local', 'format': "%Y-%m-%dT%H:%M"})
self.fields['planned_start_date'].input_formats = settings.DATETIME_FORMAT
self.fields['planned_start_date'].format="%Y-%m-%dT%H:%M"

self.fields['planned_finish_date'].widget = forms.widgets.DateTimeInput(attrs={'type': 'datetime-local'})
self.fields['planned_finish_date'].input_formats = settings.DATETIME_FORMAT
self.fields['planned_finish_date'].format="%Y-%m-%dT%H:%M"

self.fields['real_start_date'].widget = forms.widgets.DateTimeInput(attrs={'type': 'datetime-local'})
self.fields['real_start_date'].input_formats = settings.DATETIME_FORMAT
self.fields['real_start_date'].format="%Y-%m-%dT%H:%M"

self.fields['real_finish_date'].widget = forms.widgets.DateTimeInput(attrs={'type': 'datetime-local'})
self.fields['real_finish_date'].input_formats = settings.DATETIME_FORMAT
self.fields['real_finish_date'].format="%Y-%m-%dT%H:%M"

self.fields['description'].widget.attrs = {'style': "height: 800px; width: 900px"}

# choices = kwargs.pop('camp_dates_choices', ())


self.fields['opened_by'].initial = kwargs['user'].pk

# self.fields['ticket_type'] = forms.IntegerField(
# )

self.fields['ticket_type'].widget = self.fields['ticket_type'].hidden_widget()


original_fields = self.fields.copy()
ticket_type = []

if kwargs['initial']['type_ticket'] == 'request':

ticket_type = self.Meta.model.fields_itsm_request

self.fields['status'].choices = self.Meta.model.TicketStatus.Request

# self.fields['ticket_type'].initial = self.Meta.model.TicketType.REQUEST
self.fields['ticket_type'].initial = '1'

elif kwargs['initial']['type_ticket'] == 'incident':

ticket_type = self.Meta.model.fields_itsm_incident

self.fields['status'].choices = self.Meta.model.TicketStatus.Incident

self.fields['ticket_type'].initial = self.Meta.model.TicketType.INCIDENT

elif kwargs['initial']['type_ticket'] == 'problem':

ticket_type = self.Meta.model.fields_itsm_problem

self.fields['status'].choices = self.Meta.model.TicketStatus.Problem

self.fields['ticket_type'].initial = self.Meta.model.TicketType.PROBLEM

elif kwargs['initial']['type_ticket'] == 'change':

ticket_type = self.Meta.model.fields_itsm_change

self.fields['status'].choices = self.Meta.model.TicketStatus.Change

self.fields['ticket_type'].initial = self.Meta.model.TicketType.CHANGE

elif kwargs['initial']['type_ticket'] == 'issue':

ticket_type = self.Meta.model.fields_git_issue

self.fields['status'].choices = self.Meta.model.TicketStatus.Git

self.fields['ticket_type'].initial = self.Meta.model.TicketType.ISSUE

elif kwargs['initial']['type_ticket'] == 'merge':

ticket_type = self.Meta.model.fields_git_merge

self.fields['status'].choices = self.Meta.model.TicketStatus.Git

self.fields['ticket_type'].initial = self.Meta.model.TicketType.MERGE_REQUEST

elif kwargs['initial']['type_ticket'] == 'project_task':

ticket_type = self.Meta.model.fields_project_task

self.fields['status'].choices = self.Meta.model.TicketStatus.ProjectTask

self.fields['ticket_type'].initial = self.Meta.model.TicketType.PROJECT_TASK


if kwargs['user'].is_superuser:

ticket_type += self.Meta.model.tech_fields

# else

# self.fields['opened_by'].widget = self.fields['opened_by'].hidden_widget()


for field in original_fields:

if field not in ticket_type:

del self.fields[field]

def clean(self):

cleaned_data = super().clean()

return cleaned_data

def is_valid(self) -> bool:

is_valid = super().is_valid()

return is_valid



class DetailForm(CommonModelForm):

prefix = 'ticket'

class Meta:
model = Ticket
fields = '__all__'


def __init__(self, *args, **kwargs):

super().__init__(*args, **kwargs)

# self.fields['related_tickts'] = forms.fields.Field(
# # verbose_name = 'Related Tickts',
# )

# self.fields['related_tickts'].queryset = RelatedTickets.objects.filter(
# Q(from_ticket_id=self.instance.pk)
# |
# Q(to_ticket_id=self.instance.pk)
# )
# a ='d'
Loading

0 comments on commit 5b77b5a

Please sign in to comment.