# -*- coding: utf-8 -*- """User Interface for the selector tables """ from auth import ADMIN from gluon import current from harvest_tools import DRY_RUN from plugin_dbui import (FieldsModifier, FormModifier) class SelectorUI(object): @staticmethod def configure(virtdb, db, T): """Configure the user interface for the history table and its foreign tables, Args: virtdb (pyDAL.DAL): connection to the virtual database db (pyDAL.DAL): database connection T (gluon.languages.translator): language translator """ SelectorUI.check_selector(virtdb, db, T) SelectorUI.edit_insert_selector(virtdb, db, T) SelectorUI.free_harvester_selector(virtdb, db, T) SelectorUI.graph_selector(virtdb, db, T) SelectorUI.harvester_selector(virtdb, db, T) SelectorUI.list_selector(virtdb, db, T) SelectorUI.marc12_selector(virtdb, db, T) SelectorUI.metric_selector(virtdb, db, T) SelectorUI.run_all_harvesters_selector(virtdb, db, T) @staticmethod def check_selector(virtdb, db, T): """UI for the check_selector table Args: virtdb (pyDAL.DAL): connection to the virtual database db (pyDAL.DAL): database connection T (gluon.languages.translator): language translator """ tr_select = T("select...") # .................................................................... # # Fields # mdf = FieldsModifier("check_selector") mdf.configure_field("id_categories", emptyText=tr_select, xtype="xcomboboxuserreset") mdf.configure_field("id_projects", emptyText=tr_select, xtype="xcomboboxuserreset") mdf.configure_field("id_teams", emptyText=tr_select, xtype="xcomboboxuserreset") session = current.globalenv["session"] if session.role != ADMIN: virtdb.check_selector.mode.default = T(DRY_RUN) mdf.configure_field("mode", hidden=True) @staticmethod def edit_insert_selector(virtdb, db, T): """UI for the edit_insert_selector table Args: virtdb (pyDAL.DAL): connection to the virtual database db (pyDAL.DAL): database connection T (gluon.languages.translator): language translator """ # .................................................................... # # Form # edit_insert_selector = virtdb.edit_insert_selector mdf = FormModifier("edit_insert_selector") # Relation between teams and projects mdf.link_comboboxes(master=edit_insert_selector.id_projects, slave=edit_insert_selector.id_teams, masterHasSlaveData="organisation", slaveExtJS={"hidden": True}) # Relation between harvester controller and publication categories mdf.link_comboboxes(master=edit_insert_selector.controller, slave=edit_insert_selector.id_categories, masterHasSlaveData="controllers", slaveExtJS={"hidden": False}) @staticmethod def free_harvester_selector(virtdb, db, T): """UI for the fre_harvester_selector table Args: virtdb (pyDAL.DAL): connection to the virtual database db (pyDAL.DAL): database connection T (gluon.languages.translator): language translator """ # .................................................................... # # Fields # mdf = FieldsModifier("free_harvester_selector") mdf.configure_field("year_start", flex=1) mdf.configure_field("year_end", flex=1) mdf.merge_fields("year_start", "year_end", fieldLabel=T("Year")) mdf.configure_field("collections", xtype="textarea") # .................................................................... # # Form # free_harvester_selector = virtdb.free_harvester_selector mdf = FormModifier("free_harvester_selector") # Relation between teams and projects mdf.link_comboboxes(master=free_harvester_selector.id_projects, slave=free_harvester_selector.id_teams, masterHasSlaveData="organisation", slaveExtJS={"hidden": True}) # Relation between harvester controller and publication categories mdf.link_comboboxes(master=free_harvester_selector.controller, slave=free_harvester_selector.id_categories, masterHasSlaveData="controllers") mdf.hide_fields("ratio") @staticmethod def graph_selector(virtdb, db, T): """UI for the graph_selector table Args: virtdb (pyDAL.DAL): connection to the virtual database db (pyDAL.DAL): database connection T (gluon.languages.translator): language translator """ tr_select = T("select...") # .................................................................... # # Fields # mdf = FieldsModifier("graph_selector") mdf.configure_field("year_start", flex=1) mdf.configure_field("year_end", flex=1) mdf.merge_fields("year_start", "year_end", fieldLabel=T("Year")) mdf.configure_field("id_graphs", selectFirst=True) mdf.configure_field("id_authors_roles", emptyText=tr_select, xtype="xcomboboxuserreset") mdf.configure_field("id_categories", emptyText=tr_select, xtype="xcomboboxuserreset") mdf.configure_field("id_projects", emptyText=tr_select, xtype="xcomboboxuserreset") mdf.configure_field("id_teams", emptyText=tr_select, xtype="xcomboboxuserreset") @staticmethod def harvester_selector(virtdb, db, T): """UI for the harvester_selector table Args: virtdb (pyDAL.DAL): connection to the virtual database db (pyDAL.DAL): database connection T (gluon.languages.translator): language translator """ # .................................................................... # # Fields # mdf = FieldsModifier("harvester_selector") mdf.configure_field("year_start", flex=1) mdf.configure_field("year_end", flex=1) mdf.merge_fields("year_start", "year_end", fieldLabel=T("Year")) # .................................................................... # # Form # harvester_selector = virtdb.harvester_selector # Relation between projects and harvesters controllers mdf = FormModifier("harvester_selector") mdf.link_comboboxes(master=harvester_selector.id_projects, slave=harvester_selector.controller, masterHasSlaveData="harvesters") # Relation between projects and teams mdf.link_comboboxes(master=harvester_selector.id_projects, slave=harvester_selector.id_teams, masterHasSlaveData="harvesters", slaveExtJS={"hidden": True}) @staticmethod def list_selector(virtdb, db, T): """UI for the list_selector table Args: virtdb (pyDAL.DAL): connection to the virtual database db (pyDAL.DAL): database connection T (gluon.languages.translator): language translator """ tr_select = T("select...") # .................................................................... # # Fields # mdf = FieldsModifier("list_selector") mdf.configure_field("year_start", flex=1) mdf.configure_field("year_end", flex=1) mdf.merge_fields("year_start", "year_end", fieldLabel=T("Year")) mdf.configure_field("id_lists", selectFirst=True) mdf.configure_field("id_authors_roles", emptyText=tr_select, xtype="xcomboboxuserreset") mdf.configure_field("id_categories", emptyText=tr_select, xtype="xcomboboxuserreset") mdf.configure_field("id_projects", emptyText=tr_select, xtype="xcomboboxuserreset") mdf.configure_field("id_teams", emptyText=tr_select, xtype="xcomboboxuserreset") @staticmethod def marc12_selector(virtdb, db, T): """UI for the marc12_selector table Args: virtdb (pyDAL.DAL): connection to the virtual database db (pyDAL.DAL): database connection T (gluon.languages.translator): language translator """ # .................................................................... # # Form # marc12_selector = virtdb.marc12_selector # Relation between teams and projects mdf = FormModifier("marc12_selector") mdf.link_comboboxes(master=marc12_selector.id_projects, slave=marc12_selector.id_teams, masterHasSlaveData="organisation", slaveExtJS={"hidden": True}) # Relation between harvester controller and publication categories mdf.link_comboboxes(master=marc12_selector.controller, slave=marc12_selector.id_categories, masterHasSlaveData="controllers", slaveExtJS={"hidden": False}) @staticmethod def metric_selector(virtdb, db, T): """UI for the metric_selector table Args: virtdb (pyDAL.DAL): connection to the virtual database db (pyDAL.DAL): database connection T (gluon.languages.translator): language translator """ tr_select = T("select...") # .................................................................... # # Fields # mdf = FieldsModifier("metric_selector") mdf.configure_field("year_start", flex=1) mdf.configure_field("year_end", flex=1) mdf.merge_fields("year_start", "year_end", fieldLabel=T("Year")) mdf.configure_field("id_metrics", selectFirst=True) mdf.configure_field("id_authors_roles", emptyText=tr_select, xtype="xcomboboxuserreset") mdf.configure_field("id_categories", emptyText=tr_select, xtype="xcomboboxuserreset") mdf.configure_field("id_projects", emptyText=tr_select, xtype="xcomboboxuserreset") mdf.configure_field("id_teams", emptyText=tr_select, xtype="xcomboboxuserreset") @staticmethod def run_all_harvesters_selector(virtdb, db, T): """UI for the run_all_harvesters_selector table Args: virtdb (pyDAL.DAL): connection to the virtual database db (pyDAL.DAL): database connection T (gluon.languages.translator): language translator """ tr_select = T("select...") # .................................................................... # # Fields # mdf = FieldsModifier("run_all_harvesters_selector") mdf.configure_field("year_start", flex=1) mdf.configure_field("year_end", flex=1) mdf.merge_fields("year_start", "year_end", fieldLabel=T("Year")) mdf.configure_field("id_projects", emptyText=tr_select, xtype="xcomboboxuserreset") mdf.configure_field("id_teams", emptyText=tr_select, xtype="xcomboboxuserreset")