Beispiel #1
0
    def run(self, request, context):
        try:
            if not context.id and self.parent.add_window:
                obj = utils.bind_request_form_to_object(
                    request, self.parent.get_row, self.parent.add_window)
            else:
                obj = utils.bind_request_form_to_object(
                    request, self.parent.get_row, self.parent.edit_window)
        except self.parent._nofound_exception:
            return OperationResult.by_message(MSG_DOESNOTEXISTS % context.id)

        # Проверка корректности полей сохраняемого объекта
        result = self.parent.validate_row(obj, request)
        if result:
            assert isinstance(result, ActionResult)
            return result

        result = self.parent.save_row(obj)
        if isinstance(result, OperationResult) and result.success is True:
            # узкое место. после того, как мы переделаем работу экшенов,
            # имя параметра с идентификатором запси может уже называться не
            # id
            if 'm3_audit' in settings.INSTALLED_APPS:
                AuditManager().write('dict-changes',
                                     user=request.user,
                                     model_object=obj,
                                     type='new' if not context.id else 'edit')
            context.id = obj.id
        return result
Beispiel #2
0
    def run(self, request, context):
        try:
            if not context.id and self.parent.add_window:
                obj = utils.bind_request_form_to_object(
                    request, self.parent.get_row, self.parent.add_window)
            else:
                obj = utils.bind_request_form_to_object(
                    request, self.parent.get_row, self.parent.edit_window)
        except self.parent._nofound_exception:
            return OperationResult.by_message(MSG_DOESNOTEXISTS % context.id)

        # Проверка корректности полей сохраняемого объекта
        result = self.parent.validate_row(obj, request)
        if result:
            assert isinstance(result, ActionResult)
            return result

        result = self.parent.save_row(obj)
        if isinstance(result, OperationResult) and result.success is True:
            # узкое место. после того, как мы переделаем работу экшенов,
            # имя параметра с идентификатором запси может уже называться не
            # id
            if 'm3_audit' in settings.INSTALLED_APPS:
                AuditManager().write(
                    'dict-changes',
                    user=request.user,
                    model_object=obj,
                    type='new' if not context.id else 'edit')
            context.id = obj.id
        return result
Beispiel #3
0
 def run(self, request, context):
     obj = utils.bind_request_form_to_object(request, self.parent.get_row,
                                             self.parent.edit_window)
     result = self.parent.validate_row(obj, request)
     if result:
         assert isinstance(result, ActionResult)
         return result
     return self.parent.save_row(obj)
Beispiel #4
0
 def run(self, request, context):
     obj = utils.bind_request_form_to_object(
         request, self.parent.get_row, self.parent.edit_window)
     result = self.parent.validate_row(obj, request)
     if result:
         assert isinstance(result, ActionResult)
         return result
     return self.parent.save_row(obj)
Beispiel #5
0
    def run(self, request, context):
        try:
            obj = utils.bind_request_form_to_object(request, self.parent.get_row, self.parent.edit_window)
        except self.parent._nofound_exception:
            return OperationResult.by_message(MSG_DOESNOTEXISTS % context.id)

        result = self.parent.validate_row(obj, request)
        if result:
            assert isinstance(result, ActionResult)
            return result
        return self.parent.save_row(obj)
Beispiel #6
0
 def form_to_object(self, request, context, get_obj, win_cls):
     """
     Заполнение атрибутов объекта данными из формы.
     (вынесено для удобства переопределения)
     """
     return utils.bind_request_form_to_object(request, get_obj, win_cls)