이것은 간단한 web2py 관리 플러그인입니다.
광범위한 검색, 작업, 기록, 사용자 정의 탐색 링크, 페이지 매김 및 다양한 사용자 정의 기능을 갖춘 web2py SQLFORM.smartgrid에서 제공하는 기능을 많이 사용합니다.
보안을 매우 중요하게 생각하며 세분화된 액세스 제어를 위해 그룹과 권한을 모두 사용합니다.
여기에서 설치 프로세스의 스크린캐스트를 찾을 수 있습니다.
참고: 설치가 훨씬 쉬워졌습니다. 설치 후 처음으로 로그인한 사용자가 자동으로 w2a_root에 추가되므로 플러그인을 설치하고 /yourapp/web2admin에 액세스하기만 하면 됩니다.
또는
마스터 브랜치는 항상 최신 안정 버전을 포함합니다(개발은 다른 브랜치에서 수행됩니다).
설치 절차 중 하나를 사용하고 web2py 앱의 플러그인 콘텐츠를 덮어쓰세요.
플러그인을 설치하세요 ;)
사용자가 w2a_root 그룹에 있으면 권한 추가 또는 다른 사용자 그룹 변경을 포함한 모든 권한을 갖습니다.
사용자가 w2a_manager 그룹에 있으면 auth 테이블을 제외한 모든 테이블에 대한 모든 권한을 갖습니다(다른 사용자에 대한 권한 변경 없음).
web2admin 코드를 실행하는 첫 번째 로그인 사용자는 자동으로 w2a_root 그룹에 배치됩니다.
특정 테이블에 대해 특정 사용자에게 세분화된 권한을 부여합니다.
http://localhost:8000/yourapp/web2admin 또는 http://localhost:8000/yourapp/plugin_web2admin에 액세스하세요.
web2admin 동작을 변경하려면 모델 파일(예: db.py)에 다음 구성 줄을 붙여넣으세요.
관리 앱의 로고(브랜드) 변경plugins.web2admin.logo = 'SuperApp'
plugins.web2admin.logo = IMG(_src=URL('static', 'images/google-buzz.png')) + ' SupperApp'
페이지당 항목 수를 구성합니다.
plugins.web2admin.items_per_page = 5 (default 20)
사이드바에 추가 링크를 추가하세요.
plugins.web2admin.custom_sidebar_title = "My Links"
plugins.web2admin.custom_sidebar_links = [
A('External link', _href='http://www.youhe.ro', _target='_blank'),
A('Back to homepage', _href=URL('default', 'index', args=0)),
]
plugins.web2admin.headers는 'tablename.fieldname'을 해당 헤더 라벨에 매핑하는 사전입니다. 예를 들면 다음과 같습니다.
plugins.web2admin.headers = {'student.last_name': T('Surname')}
plugins.web2admin.orderby는 테이블 행의 기본 순서를 설정하는 데 사용되는 사전입니다.
plugins.web2admin.orderby = {'student': db.student.last_name}
plugins.web2admin.groupby는 테이블 행에 대한 그룹화를 설정하는 데 사용되는 사전입니다. 지정된 필드에 대해 동일한 값으로 레코드를 그룹화할 수 있습니다(이는 백엔드에만 해당되며 Google NoSQL에는 없습니다).
plugins.web2admin.groupby = {'student': db.student.last_name}
plugins.web2admin.maxtextlength는 그리드 보기에서 각 필드 값에 표시할 텍스트의 최대 길이를 설정합니다(기본값 20). 'tablename.fieldname':length 사전인plugins.web2admin.maxtextlengths를 사용하여 각 필드에 대해 이 값을 덮어쓸 수 있습니다. 텍스트를 잘라야 하는 경우 지정된 length.fiel에서 추가 len('...') = 3을 뺍니다.
plugins.web2admin.maxtextlength ={'student': 10}
plugins.web2admin.maxtextlengths ={'test.name': 5}
plugins.web2admin.field_id는 ID로 사용될 테이블의 필드를 지정하는 사전입니다. 예를 들면 다음과 같습니다.
plugins.web2admin.field_id = {'student', db.stuident.id}
플러그인.web2admin.showbuttontext 버튼 텍스트 표시/숨기기에 대한 부울 스위치:
plugins.web2admin.showbuttontext = False
여러 개의 db 객체가 정의되어 있는 경우 데이터베이스 객체의 튜플인plugins.web2admin.dbs 매개변수를 추가하기만 하면 됩니다. 기본적으로 목록에는 db라는 이름의 요소가 하나만 있습니다. 따라서 어떤 이유로든 유일한 개체의 이름이 다르게 지정된 경우 다음과 같이 추가하여 지정하세요.plugins.web2admin.dbs = (my_special_db,) <-- 쉼표에 주의하세요.
plugins.web2admin.dbs = (db, other_db, session_db)
데이터베이스 선택을 활성화하려면 데이터베이스 메뉴가 상단 탐색 모음에 나타나야 합니다.
Plugins.web2admin.fields를 테이블 이름 사전과 해당 테이블의 필드 목록으로 설정하여 특정 테이블에 대해 표시되는 필드를 제한할 수 있습니다.
plugins.web2admin.fields={
'test': [db.test.id, db.test.name],
'student':[db.student.id, db.student.first_name]
}
여러 항목을 확인하고 헤더에서 작업을 선택하여 작업을 실행할 수 있습니다.
기본적으로 삭제와 복제라는 두 가지 작업이 정의되어 있습니다.
새 작업을 정의하려면 테이블 이름과 ID 목록을 인수로 사용하는 함수를 생성하고, 작업 이름을 키로, 작업 함수를 값으로 사용하는 사전에 플러그인.web2admin.actions 플러그인 매개변수를 설정해야 합니다.
def hello_action(table, ids):
if table != 'student':
session.flash = 'Not available'
else:
session.flash = '%s, %s' %(table, ids)
plugins.web2admin.actions = {'hello': hello_action}
기본 작업을 비활성화하거나 작업을 전혀 수행하지 않으려는 경우(아무 것도 생성하지 않은 경우),plugins.web2admin.default_actions 매개변수를 빈 사전으로 설정할 수 있습니다.
plugins.web2admin.default_actions={}
plugins.web2admin.links는 다른 페이지에 대한 링크가 될 수 있는 새 열을 표시하는 데 사용됩니다. link 인수는 테이블 이름을 dict(header='name',body=lambda row: A(...)) 목록에 연결하는 사전이어야 합니다. 여기서 header는 새 열의 헤더이고 body는 다음을 수행하는 함수입니다. 행을 입력하고 값을 반환합니다. 예제에서 값은 A(...) 도우미입니다.
plugins.web2admin.links = {'student':[
dict(header=T('hello'), body=lambda row: A('click me', _href=URL('default', 'hello', args=row.id))),
dict(header=T('foo'), body=lambda row: A('bar', _href=URL('default', 'foo', args=row.id))),
]}
plugins.web2admin.left는 ...select(left=...)를 빌드하는 데 사용되는 선택적 왼쪽 조인 표현식입니다. 여기에는 테이블 이름과 조인 표현식을 연결하는 사전 값이 있습니다. 예를 들면 다음과 같습니다.
plugins.web2admin.left = {'student': db.student.on(db.test.id)}
plugins.web2admin.filters는 오른쪽 메뉴 표시줄에 빠른 필터가 생성되는 필드 목록입니다. 예:
plugins.web2admin.filters = (db.test.date, db.test.passed, db.test.mark, db.test.name, db.student.last_name)
숫자 필드의 경우 최소값과 최대값을 구하고 간격은 4개의 하위 간격으로 분할됩니다. 지원되는 필드 유형: 날짜/시간, 날짜, 문자열, 텍스트, 정수, 실수, 부울.