Add configurable displayed columns

master
informatic 2020-04-22 18:47:44 +02:00
parent bf9fecfb03
commit 611ccb288f
2 changed files with 22 additions and 1 deletions

View File

@ -2,7 +2,7 @@ import enum
import io
import datetime
import csv
from flask import redirect, flash, request, url_for, make_response, current_app, session
from flask import redirect, flash, request, url_for, make_response, current_app, session, has_request_context
import flask_admin
import pdfplumber
from flask_admin.form import rules
@ -123,6 +123,24 @@ class FaceshieldRequestAdmin(ModelView):
}
column_list = ('id', 'entity_info', 'full_name', 'faceshield_full_required', 'faceshield_full_delivered', 'faceshield_front_required', 'faceshield_front_delivered', 'handling_orga', 'created', 'status')
allowed_columns = None
extra_allowed_columns = ('id',)
@property
def _list_columns(self):
self.allowed_columns = self.allowed_columns or (self.scaffold_list_columns() + list(self.extra_allowed_columns))
columns = self.column_list or self.scaffold_list_columns()
if has_request_context() and request.args.get('columns'):
columns = [c for c in request.args.get('columns').split(',') if c in self.allowed_columns]
return self.get_column_names(
only_columns=columns,
excluded_columns=self.column_exclude_list,
)
@_list_columns.setter
def _list_columns(self, value):
return None
column_editable_list = ('status', 'remarks', 'handling_orga')
form_choices = {
'handling_orga': [

View File

@ -91,6 +91,9 @@ class FaceshieldRequest(db.Model):
def __str__(self):
return Markup('<a href="/admin/request_unfiltered/edit/?id={}">#{} {}</a> ({})').format(self.id, self.id, self.entity_info, self.status.name)
def __repr__(self):
return '<FaceshieldRequest {} ({})>'.format(self.id, self.status.name)
@property
def label_count(self):
if self.faceshield_full_delivered % 150 == 0 and self.faceshield_full_delivered // 150 > 1: