class Work_orderCreate(LoginRequiredMixin, CreateView): form_class = work_order_form model = Work_order template_name = 'work_order/work_order_form.html' # Specify your own template name/location def get_context_data(self, **kwargs): self.wm = WM(self.request.user) # Call the base implementation first to get a context context = super(Work_orderCreate, self).get_context_data(**kwargs) # Add object in context wo_number context['wo_number'] = self.wm.getWoNumber() # Add object in context date_open context['date_open'] = datetime.date.today() # Add object in context originator context['originator'] = self.request.user #set work_order status context['status'] = Action.objects.get(name='Open') return context def form_valid(self, form, **kwargs): self.wm = WM(self.request.user) self.object = form.save(commit=False) #set work_order date_open self.object.date_open = datetime.date.today() #set work_order wo_number self.object.wo_number = self.wm.getWoNumber() #set work_order originator self.object.originator = self.request.user #set work_order status for opening self.object.status = Action.objects.get(name='Open') #getApprover approver = self.wm.get_next_user(self.object.status.id) #set current_user_id self.object.current_user_id = approver.id self.object.save() #set init journal for every first opening work order self.wm.woInitJournal() return super(Work_orderCreate, self).form_valid(form)
def form_valid(self, form, **kwargs): self.wm = WM(self.request.user) self.object = form.save(commit=False) #set date - done by program self.object.date = datetime.date.today() #set acted_user - done by program self.object.acted_user = self.request.user #set Wo_completed - done by program Wo_completed = Work_order.objects.get(id=self.kwargs.get("pk")) self.object.work_order = Wo_completed self.object.save() #get data from form, status also as action action = form.cleaned_data.get('status') action_id = Action.objects.get(name=action).id #finish role is special case since, all data Work order available in this area if action == 'Finish': #complete Wo_completed.updateField(executor_user_id=self.request.user.id) Wo_completed.updateField(date_finish=datetime.date.today()) #update work order current_user_id current_user_id = self.wm.get_next_user(action_id).id Wo_completed.updateField(current_user_id=current_user_id) #update status work order Wo_completed.updateField(status=Action.objects.get(name=action)) return super(WoCompletion, self).form_valid(form)
def get_context_data(self, **kwargs): # Call the base implementation first to get a context context = super(WoCompletion, self).get_context_data(**kwargs) Wo_completed = Work_order.objects.get(id=self.kwargs.get("pk")) #during by-pass mode WO dirrect to Frm, it need logic for Wo_instruction if not WM.isNormalMode(): #create new Wo_instruction #To create and save an object in a single step, use the create() method. Wo_instruction.objects.create( instruction='It is by-pass mode, please read procedure', user=self.request.user, work_order=Wo_completed, date=datetime.date.today(), time=datetime.datetime.now().time()) WoInstruction = Wo_instruction.objects.get(work_order=Wo_completed) # Add object in context Wo_instruction use for WoCompletion_form.html context['Wo_instruction'] = WoInstruction # Add object in context wo_number use for woHeader.html context['work_order'] = Wo_completed # Add object in context date_open use in form context['date'] = datetime.date.today() return context
def form_valid(self, form, **kwargs): self.wm = WM(self.request.user) self.object = form.save(commit=False) #set work_order date_open self.object.date_open = datetime.date.today() #set work_order wo_number self.object.wo_number = self.wm.getWoNumber() #set work_order originator self.object.originator = self.request.user #set work_order status for opening self.object.status = Action.objects.get(name='Open') #getApprover approver = self.wm.get_next_user(self.object.status.id) #set current_user_id self.object.current_user_id = approver.id self.object.save() #set init journal for every first opening work order self.wm.woInitJournal() return super(Work_orderCreate, self).form_valid(form)
def get_queryset(self): self.wm = WM(self.request.user) start_date = self.request.GET.get('start_date') end_date = self.request.GET.get('end_date') wo_category = self.request.GET.get('wo_category') #get wo concern base on pk list return Work_order.objects.filter(pk__in=self.wm.woOnCurrentUser())
def form_valid(self, form, **kwargs): self.wm = WM(self.request.user) self.object = form.save(commit=False) #set work_order_journal date - done by program self.object.date = datetime.date.today() #set work_order_journal time - done by program self.object.time = datetime.datetime.now().time() #set concern_user date_open self.object.user = self.request.user #get Wo_on_process - done by program Wo_on_process = Work_order.objects.get(id=self.kwargs.get("pk")) #set work_order - done by program self.object.work_order = Wo_on_process self.object.save() #get data from form action = Action.objects.get(name='Execute') action_id = action.id #complete role is special case since, all data Work order available in this area if action == 'Complete': #complete #get id Originator current_user_id = Wo_on_process.originator.id else: current_user_id = self.wm.get_next_user(action_id).id #update current_user_id Wo_on_process.updateField(current_user_id=current_user_id) #update status work order Wo_on_process.updateField(status=Action.objects.get(name=action)) #create new journal #To create and save an object in a single step, use the create() method. Wo_journal.objects.create( comment='Please read instruction', action=action, #Execute concern_user=self.request.user, work_order=Wo_on_process, date=datetime.date.today(), time=datetime.datetime.now().time()) return super(Wo_instructionCreate, self).form_valid(form)
def get_context_data(self, **kwargs): self.wm = WM(self.request.user) # Call the base implementation first to get a context context = super(Work_orderCreate, self).get_context_data(**kwargs) # Add object in context wo_number context['wo_number'] = self.wm.getWoNumber() # Add object in context date_open context['date_open'] = datetime.date.today() # Add object in context originator context['originator'] = self.request.user #set work_order status context['status'] = Action.objects.get(name='Open') return context
class Work_orderListView(LoginRequiredMixin, generic.ListView): form_class = Wo_search_form model = Work_order #prinsipnya dengan ini saja sdh cukup, namun kita perlu tambahan info di bawah ini context_object_name = 'user_work_order_list' # your own name for the list as a template variable template_name = 'work_order/user_work_order_list.html' # Specify your own template name/location def get_initial(self): initial = super(Work_orderListView, self).get_initial() end_date = datetime.date.today() start_date = end_date - datetime.timedelta(days=7) wo_category = 'Incoming' #get parameter from request.GET parameters, and put default value if none initial['start_date'] = self.request.GET.get("start_date", start_date) initial['end_date'] = self.request.GET.get("end_date", end_date) initial['wo_category'] = self.request.GET.get("wo_category", wo_category) return initial def get_queryset(self): self.wm = WM(self.request.user) start_date = self.request.GET.get('start_date') end_date = self.request.GET.get('end_date') wo_category = self.request.GET.get('wo_category') #get wo concern base on pk list return Work_order.objects.filter(pk__in=self.wm.woOnCurrentUser()) def get_context_data(self, **kwargs): # Call the base implementation first to get a context context = super().get_context_data(**kwargs) SUMMARY_LIST = ['MGR_EXE', 'SPTD_EXE', 'SPV_EXE'] allowSummary = False for g in self.request.user.groups.all(): #set for allowSummary if g.name in SUMMARY_LIST: allowSummary = True context['allowSummary'] = allowSummary return context
def form_valid(self, form, **kwargs): self.wm = WM(self.request.user) self.object = form.save(commit=False) #set work_order_journal date - done by program self.object.date = datetime.date.today() #set work_order_journal time - done by program self.object.time = datetime.datetime.now().time() #set concern_user self.object.concern_user = self.request.user #get Wo_on_process - done by program Wo_on_process = Work_order.objects.get(id=self.kwargs.get("pk")) #set work_order - done by program self.object.work_order = Wo_on_process self.object.save() #get data from form and update Work_order action = form.cleaned_data.get('action') action_id = Action.objects.get(name=action).id #complete role is special case since, all data Work order available in this area if action.name == 'Complete': #Complete #get id Originator current_user_id = Wo_on_process.originator.id elif action.name == 'Close': #Close #get id Originator current_user_id = Wo_on_process.originator.id else: current_user_id = self.wm.get_next_user(action_id).id #update current_user_id Wo_on_process.updateField(current_user_id=current_user_id) #update status work order Wo_on_process.updateField(status=Action.objects.get(name=action)) return super(Work_orderForward, self).form_valid(form)
class WoCompletion(LoginRequiredMixin, CreateView): form_class = WoCompletion_form model = Wo_completion template_name = 'work_order/WoCompletion_form.html' # Specify your own template name/location # Sending user object to the form, to verify which fields to display/remove (depending on group) def get_form_kwargs(self): kwargs = super(WoCompletion, self).get_form_kwargs() kwargs.update({'user': self.request.user}) return kwargs def get_initial(self): initial = super(WoCompletion, self).get_initial() return initial # now the form will be shown with the link_pk bound to a value def get_context_data(self, **kwargs): # Call the base implementation first to get a context context = super(WoCompletion, self).get_context_data(**kwargs) Wo_completed = Work_order.objects.get(id=self.kwargs.get("pk")) #during by-pass mode WO dirrect to Frm, it need logic for Wo_instruction if not WM.isNormalMode(): #create new Wo_instruction #To create and save an object in a single step, use the create() method. Wo_instruction.objects.create( instruction='It is by-pass mode, please read procedure', user=self.request.user, work_order=Wo_completed, date=datetime.date.today(), time=datetime.datetime.now().time()) WoInstruction = Wo_instruction.objects.get(work_order=Wo_completed) # Add object in context Wo_instruction use for WoCompletion_form.html context['Wo_instruction'] = WoInstruction # Add object in context wo_number use for woHeader.html context['work_order'] = Wo_completed # Add object in context date_open use in form context['date'] = datetime.date.today() return context def form_valid(self, form, **kwargs): self.wm = WM(self.request.user) self.object = form.save(commit=False) #set date - done by program self.object.date = datetime.date.today() #set acted_user - done by program self.object.acted_user = self.request.user #set Wo_completed - done by program Wo_completed = Work_order.objects.get(id=self.kwargs.get("pk")) self.object.work_order = Wo_completed self.object.save() #get data from form, status also as action action = form.cleaned_data.get('status') action_id = Action.objects.get(name=action).id #finish role is special case since, all data Work order available in this area if action == 'Finish': #complete Wo_completed.updateField(executor_user_id=self.request.user.id) Wo_completed.updateField(date_finish=datetime.date.today()) #update work order current_user_id current_user_id = self.wm.get_next_user(action_id).id Wo_completed.updateField(current_user_id=current_user_id) #update status work order Wo_completed.updateField(status=Action.objects.get(name=action)) return super(WoCompletion, self).form_valid(form)
class Wo_instructionCreate(LoginRequiredMixin, CreateView): form_class = WoInstruction_form model = Wo_instruction template_name = 'work_order/WoInstruction_form.html' # Specify your own template name/location # Sending user object to the form, to verify which fields to display/remove (depending on group) def get_form_kwargs(self): kwargs = super(Wo_instructionCreate, self).get_form_kwargs() kwargs.update({'user': self.request.user}) return kwargs def get_initial(self): initial = super(Wo_instructionCreate, self).get_initial() return initial # now the form will be shown with the link_pk bound to a value def get_context_data(self, **kwargs): # Call the base implementation first to get a context context = super(Wo_instructionCreate, self).get_context_data(**kwargs) woOnProcess = Work_order.objects.get(id=self.kwargs.get("pk")) # Add object in context wo_number use for woHeader.html context['work_order'] = woOnProcess return context def form_valid(self, form, **kwargs): self.wm = WM(self.request.user) self.object = form.save(commit=False) #set work_order_journal date - done by program self.object.date = datetime.date.today() #set work_order_journal time - done by program self.object.time = datetime.datetime.now().time() #set concern_user date_open self.object.user = self.request.user #get Wo_on_process - done by program Wo_on_process = Work_order.objects.get(id=self.kwargs.get("pk")) #set work_order - done by program self.object.work_order = Wo_on_process self.object.save() #get data from form action = Action.objects.get(name='Execute') action_id = action.id #complete role is special case since, all data Work order available in this area if action == 'Complete': #complete #get id Originator current_user_id = Wo_on_process.originator.id else: current_user_id = self.wm.get_next_user(action_id).id #update current_user_id Wo_on_process.updateField(current_user_id=current_user_id) #update status work order Wo_on_process.updateField(status=Action.objects.get(name=action)) #create new journal #To create and save an object in a single step, use the create() method. Wo_journal.objects.create( comment='Please read instruction', action=action, #Execute concern_user=self.request.user, work_order=Wo_on_process, date=datetime.date.today(), time=datetime.datetime.now().time()) return super(Wo_instructionCreate, self).form_valid(form)