"""User Interface for the harvester tables """ from gluon import current from plugin_dbui import (FieldsModifier, FormModifier, GridModifier, StoreModifier) class HarvesterUI(object): @staticmethod def configure(db, T): """Configure the user interface for the history table and its foreign tables, Args: db (pyDAL.DAL): database connection T (gluon.languages.translator): language translator """ HarvesterUI.affiliation_keys(db, T) HarvesterUI.controllers(db, T) HarvesterUI.harvesters(db, T) HarvesterUI.my_authors(db, T) @staticmethod def affiliation_keys(db, T): """UI for the affiliation_keys table Args: db (pyDAL.DAL): database connection T (gluon.languages.translator): language translator """ tr_contains = T("contains") # .................................................................... # # Grid # mdf = GridModifier("affiliation_keys") mdf.append_filter(("key_u", "contains", tr_contains)) mdf.append_filter(("key_v", "contains", tr_contains)) mdf.configure_filters(plugins=["pFormToolTip"], width=300) mdf.configure_gridWithFilter(selectorTitle=T("Filter")) mdf.configure(plugins=["pGridRowEditorConfirmDelete", "pGridAffiliationKeysContextMenu"]) # .................................................................... # # Store # affiliation_keys = db.affiliation_keys mdf = StoreModifier("affiliation_keys") mdf.orderby(affiliation_keys.key_u, affiliation_keys.key_v) @staticmethod def controllers(db, T): """UI for the controllers table Args: db (pyDAL.DAL): database connection T (gluon.languages.translator): language translator """ # .................................................................... # # Grid # mdf = GridModifier("controllers") mdf.configure_column("controller", width=15) # .................................................................... # # Store # StoreModifier("controllers").orderby(db.controllers.controller, db.categories.code) @staticmethod def harvesters(db, T): """UI for the harvesters table Args: db (pyDAL.DAL): database connection T (gluon.languages.translator): language translator """ # .................................................................... # # Fields # mdf = FieldsModifier("harvesters") mdf.configure_field("collections", height=250, xtype="textarea") mdf.configure_field("ratio", hidden=True) mdf.configure_field("scan", hidden=True) # .................................................................... # # Form # harvesters = db.harvesters mdf = FormModifier("harvesters") mdf.link_comboboxes(master=harvesters.id_projects, slave=harvesters.id_teams, masterHasSlaveData="organisation", slaveExtJS={"hidden": True}) # Relation between harvester controller and publications category mdf.link_comboboxes(master=harvesters.controller, slave=harvesters.id_categories, masterHasSlaveData="controllers", slaveExtJS={"hidden": False}) mdf.configure(width=350) # .................................................................... # # Grid # tr_contains = T("contains") tr_equal = T("is equal to") mdf = GridModifier("harvesters") mdf.configure_column("id_teams", width=75) mdf.configure_column("collections", width=300) mdf.configure_column("max_records", width=70) mdf.configure_column("ratio", width=40) mdf.configure_column("scan", width=40) mdf.hide_columns("ratio", "scan") mdf.append_filter(("id_teams", "==", tr_equal)) mdf.append_filter(("id_projects", "==", tr_equal)) mdf.append_filter(("controller", "contains", tr_contains)) mdf.append_filter(("host", "contains", tr_contains)) mdf.append_filter(("id_categories", "==", tr_equal)) mdf.configure_filters(plugins=["pFormToolTip"], width=300) mdf.configure_gridWithFilter(selectorTitle=T("Filter")) mdf.configure(plugins=[{ "ptype": "pGridRowEditorAddWizard", "wizard": { "url": "/%s/wizards/harvester" % current.request.application, "xtype": "xwizardharvester"}}]) # .................................................................... # # Store # StoreModifier("harvesters").orderby(db.teams.team, db.projects.project, harvesters.controller) @staticmethod def my_authors(db, T): """UI for the my_auhors table Args: db (pyDAL.DAL): database connection T (gluon.languages.translator): language translator """ # .................................................................... # # Fields # mdf = FieldsModifier("my_authors") mdf.configure_field("authors", height=250) # .................................................................... # # Form # my_authors = db.my_authors mdf = FormModifier("my_authors") mdf.configure(width=400) mdf.link_comboboxes(master=my_authors.id_projects, slave=my_authors.id_teams, masterHasSlaveData="organisation", slaveExtJS={"hidden": True}) # .................................................................... # # Grid # tr_equal = T("is equal to") mdf = GridModifier("my_authors") mdf.configure_column("year", width=10) mdf.configure_column("id_teams", width=15) mdf.configure_column("id_projects", width=15) mdf.append_filter(("year", "==", tr_equal), allowBlank=True) mdf.append_filter(("id_teams", "==", tr_equal)) mdf.append_filter(("id_projects", "==", tr_equal)) mdf.configure_filters(plugins=["pFormToolTip"], width=300) mdf.configure_gridWithFilter(selectorTitle=T("Filter"))