コード例 #1
0
ファイル: views.py プロジェクト: slametsampon/cmms_pon
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)
コード例 #2
0
ファイル: views.py プロジェクト: slametsampon/cmms_pon
    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)
コード例 #3
0
ファイル: views.py プロジェクト: slametsampon/cmms_pon
    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
コード例 #4
0
ファイル: views.py プロジェクト: slametsampon/cmms_pon
    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)
コード例 #5
0
ファイル: views.py プロジェクト: slametsampon/cmms_pon
    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())
コード例 #6
0
ファイル: views.py プロジェクト: slametsampon/cmms_pon
    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)
コード例 #7
0
ファイル: views.py プロジェクト: slametsampon/cmms_pon
    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
コード例 #8
0
ファイル: views.py プロジェクト: slametsampon/cmms_pon
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
コード例 #9
0
ファイル: views.py プロジェクト: slametsampon/cmms_pon
    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)
コード例 #10
0
ファイル: views.py プロジェクト: slametsampon/cmms_pon
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)
コード例 #11
0
ファイル: views.py プロジェクト: slametsampon/cmms_pon
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)