def run(self, request, context): report_data = context.report if context.id: try: report = CreadocReport.objects.get(pk=context.id) except CreadocReport.DoesNotExist: raise ApplicationLogicException(( u'Шаблон с id={} отсутствует!' ).format(context.id)) else: report_guid = str(uuid.uuid4()) report = CreadocReport() report.name = context.name report.guid = report_guid report.save() reports_dir = os.path.dirname(report.path) if not os.path.exists(reports_dir): os.makedirs(reports_dir) with open(report.path, 'w+') as f: f.write(report_data.encode('utf-8')) return PreJsonResult({ 'success': True, 'report_id': report.id, })
def run(self, request, context): parent_id = utils.extract_int(request, 'node') if parent_id < 1: parent_id = None filter = request.REQUEST.get('filter') result = self.parent.get_nodes(parent_id, filter) return PreJsonResult(result)
def run(self, request, context): try: result = self.parent.get_row(context.id) except self.parent._nofound_exception: return OperationResult.by_message(MSG_DOESNOTEXISTS % context.id) return PreJsonResult(result)
def run(self, request, context): parent_id = utils.extract_int(request, 'id') offset = utils.extract_int(request, 'start') limit = utils.extract_int(request, 'limit') filter = request.REQUEST.get('filter') result = self.parent.get_rows( parent_id, offset, limit, filter) return PreJsonResult(result)
def run(self, request, context): base = self.parent is_get_data = context.isGetData # Получаем объект по id try: obj = base.get_row(context.id) except base._nofound_exception: return OperationResult.by_message(MSG_DOESNOTEXISTS % context.id) # Разница между новым и созданным объектов в том, # что у нового нет id или он пустой create_new = True if isinstance(obj, dict) and obj.get('id') is not None: create_new = False elif hasattr(obj, 'id') and getattr(obj, 'id') is not None: create_new = False if create_new and base.add_window: win = utils.bind_object_from_request_to_form( request, base.get_row, base.add_window) else: win = utils.bind_object_from_request_to_form( request, base.get_row, base.edit_window) if not win.title: win.title = base.title win.form.url = base.save_action.get_absolute_url() # укажем адрес для чтения данных win.data_url = base.edit_window_action.get_absolute_url() # проверим право редактирования if not self.parent.has_sub_permission(request.user, self.parent.PERM_EDIT, request): exclude_list = ['close_btn', 'cancel_btn'] win.make_read_only(True, exclude_list) # У окна может быть процедура доп. конфигурации # под конкретный справочник if (hasattr(win, 'configure_for_dictpack') and callable(win.configure_for_dictpack)): win.configure_for_dictpack(action=self, pack=self.parent, request=request, context=context) if not is_get_data: # если запрашивали не данные - вернем окно return ExtUIScriptResult(base.get_edit_window(win)) else: # если просили данные, то выжмем их из окна обратно в объект, # т.к. в окне могли быть и другие данных (не из этого объекта) data_object = {} # т.к. мы не знаем какие поля должны быть у объекта - создадим # все, которые есть на форме all_fields = win.form._get_all_fields(win) for field in all_fields: data_object[field.name] = None win.form.to_object(data_object) return PreJsonResult({'success': True, 'data': data_object})
def run(self, request, context): data_source = CR.source(context.guid) if data_source is None: raise ApplicationLogicException(( u'Источник данных с идентификатором {} отсутствует' ).format(context.source_guid)) result = data_source.load(context.params) return PreJsonResult({data_source.alias: result})
def run(self, request, context): confirm = request.REQUEST.get(u'confirm') # Подтверждение выхода if confirm == u'true': logout(request) return PreJsonResult({}) # Возвращаем форму msg_box = MessageBox(u'', u'Вы действительно хотите выйти из системы?', MessageBox.ICON_QUESTION, MessageBox.BTN_YESNO) msg_box.handler_yes = u''' Ext.Ajax.request({ url: '%(url)s', params: {'confirm': true}, success: function(response){ var json = Ext.util.JSON.decode(response.responseText); window.location = json.redirect ? json.redirect : '/'; } }); ''' % { 'url': self.get_absolute_url() } return HttpResponse(msg_box.get_script())
def run(self, request, context): offset = utils.extract_int(request, 'start') limit = utils.extract_int(request, 'limit') filter = request.REQUEST.get('filter') direction = request.REQUEST.get('dir') user_sort = request.REQUEST.get('sort') if direction == 'DESC': user_sort = '-' + user_sort dict_list = [] for item in self.parent.list_columns: if isinstance(item, (list, tuple)): dict_list.append(item[0]) elif isinstance(item, dict) and item.get('data_index'): dict_list.append(item['data_index']) if (hasattr(self.parent, 'modify_rows_query') and callable(self.parent.modify_rows_query)): rows = self.parent.get_rows_modified(offset, limit, filter, user_sort, request, context) else: rows = self.parent.get_rows(offset, limit, filter, user_sort) return PreJsonResult(rows, self.parent.secret_json, dict_list=dict_list)
def run(self, request, context): result = self.parent.get_nodes_like_rows( context.filter, context.branch_id) return PreJsonResult(result)
def run(self, request, context): return PreJsonResult(self.parent.get_last_used(self))
def run(self, request, context): id = utils.extract_int(request, 'id') result = self.parent.get_node(id) return PreJsonResult(result)
def run(self, request, context): parent_id = context.node if context.node > 0 else None return PreJsonResult( self.parent.get_nodes(request, context, parent_id, context.filter))
def run(self, request, context): rows = CreadocReport.objects.filter(state=True).order_by('created_at') return PreJsonResult({'rows': list(rows), 'count': rows.count()})