コード例 #1
0
ファイル: installer.py プロジェクト: BookOps-CAT/babel
    def __init__(self, *args, **kwargs):
        ilogger.debug("Init: launching configuration window.")
        Tk.__init__(self, *args, **kwargs)

        frm = Frame(self)
        # container.columnconfigure(1, minsize=150)
        frm.grid(padx=20, pady=20)
        # bind shared data between windows
        self.key = StringVar()
        self.status = StringVar()
        self.status.set("Please provide decryption key")

        self.cur_manager = BusyManager(self)

        infoFrm = Frame(frm)
        infoFrm.grid(row=0, column=0, sticky="snew", padx=10, pady=10)

        img = Image.open("./icons/PadLock-icon.png")
        logo = ImageTk.PhotoImage(img)
        logoImg = Label(infoFrm, image=logo)
        logoImg.image = logo
        logoImg.grid(row=0, column=0, sticky="snew", padx=10, pady=10)

        actionFrm = LabelFrame(frm, text="Babel password")
        actionFrm.grid(row=0, column=1, sticky="snew", padx=10, pady=10)
        # actionFrm.columnconfigure(1, minsize=250)
        actionFrm.rowconfigure(1, minsize=10)
        actionFrm.rowconfigure(3, minsize=10)

        keyEnt = Entry(actionFrm, textvariable=self.key, show="*")
        keyEnt.grid(row=0,
                    column=0,
                    columnspan=2,
                    sticky="snew",
                    padx=5,
                    pady=3)

        self.statusLbl = Label(actionFrm,
                               textvariable=self.status,
                               anchor=CENTER)
        self.statusLbl.grid(row=2,
                            column=0,
                            columnspan=2,
                            sticky="snew",
                            padx=10,
                            pady=10)

        configBtn = Button(actionFrm,
                           text="unlock",
                           command=self.launch_config)
        configBtn.grid(row=4, column=0, sticky="snew", padx=10, pady=10)

        cancelBtn = Button(actionFrm, text="cancel", command=self.destroy)
        cancelBtn.grid(row=4, column=1, sticky="snw", padx=10, pady=10)
コード例 #2
0
    def __init__(self, parent, controller, **app_data):
        self.parent = parent
        Frame.__init__(self, parent)
        self.controller = controller
        self.app_data = app_data
        self.activeW = app_data['activeW']
        self.activeW.trace('w', self.observer)
        self.system = app_data['system']
        self.system.trace('w', self.system_observer)
        self.max_height = int((self.winfo_screenheight() - 200))
        self.cur_manager = BusyManager(self)

        # icons
        self.runImg = app_data['img']['runM']
        self.helpImg = app_data['img']['help']

        # variables
        self.date_from = StringVar()
        self.date_to = StringVar()
        self.library = StringVar()
        self.report = IntVar()

        # layout
        self.rowconfigure(3, minsize=15)

        # register date validation
        self.vldt = (self.register(self.onValidateDate), '%i', '%d', '%P')

        # widgets
        genRepBtn = Button(self,
                           image=self.runImg,
                           command=self.generate_report)
        genRepBtn.grid(row=0, column=0, sticky='sw', padx=20, pady=5)
        self.createToolTip(genRepBtn, 'generate report')

        helpBtn = Button(self, image=self.helpImg, command=self.help)
        helpBtn.grid(row=1, column=0, sticky='sw', padx=20, pady=5)
        self.createToolTip(helpBtn, 'help')

        # criteria frame
        critFrm = LabelFrame(self, text='report wizard')
        critFrm.grid(row=0,
                     column=1,
                     rowspan=20,
                     sticky='snew',
                     padx=25,
                     pady=10)
        critFrm.columnconfigure(0, minsize=20)
        critFrm.columnconfigure(5, minsize=20)
        critFrm.rowconfigure(14, minsize=10)

        Label(critFrm, text='criteria:', font=RBFONT).grid(row=1,
                                                           column=1,
                                                           columnspan=4,
                                                           sticky='snw',
                                                           padx=2,
                                                           pady=10)
        Label(critFrm, text='date from:').grid(row=2,
                                               column=1,
                                               sticky='sne',
                                               padx=2,
                                               pady=5)
        dateFromEnt = Entry(critFrm,
                            textvariable=self.date_from,
                            font=RFONT,
                            width=17,
                            validate='key',
                            validatecommand=self.vldt)
        self.createToolTip(dateFromEnt, 'YYYY-MM-DD')
        dateFromEnt.grid(row=2, column=2, sticky='snw', padx=2, pady=5)
        Label(critFrm, text='to:').grid(row=2,
                                        column=3,
                                        sticky='snew',
                                        padx=2,
                                        pady=5)
        dateToEnt = Entry(critFrm,
                          textvariable=self.date_to,
                          font=RFONT,
                          width=17,
                          validate='key',
                          validatecommand=self.vldt)
        dateToEnt.grid(row=2, column=4, sticky='snw', padx=2, pady=5)
        self.createToolTip(dateToEnt, 'YYYY-MM-DD')

        Label(critFrm, text='library:').grid(row=3,
                                             column=1,
                                             sticky='sne',
                                             padx=2,
                                             pady=5)
        self.libCbx = Combobox(critFrm,
                               textvariable=self.library,
                               font=RFONT,
                               width=15,
                               state='readonly')
        self.libCbx.grid(row=3, column=2, sticky='snew', padx=2, pady=5)

        # users
        Label(critFrm, text='users:').grid(row=4,
                                           column=1,
                                           sticky='ne',
                                           padx=2,
                                           pady=5)
        scrollbar = Scrollbar(critFrm, orient=VERTICAL)
        scrollbar.grid(row=4, column=3, sticky='snw', pady=5)
        self.userLst = Listbox(critFrm,
                               font=RFONT,
                               selectmode=EXTENDED,
                               width=15,
                               yscrollcommand=scrollbar.set)
        self.userLst.grid(row=4, column=2, sticky='snew', pady=5)
        scrollbar.config(command=self.userLst.yview)

        Separator(critFrm, orient=HORIZONTAL).grid(row=5,
                                                   column=1,
                                                   columnspan=4,
                                                   sticky='snew',
                                                   padx=2,
                                                   pady=15)

        # report types
        Label(critFrm, text='report type:', font=RBFONT).grid(row=6,
                                                              column=1,
                                                              columnspan=4,
                                                              sticky='snw',
                                                              padx=2,
                                                              pady=10)
        fyBtn = Radiobutton(critFrm,
                            text='current FY summary',
                            variable=self.report,
                            value=1)
        fyBtn.grid(row=7, column=1, columnspa=2, sticky='snw', padx=2, pady=5)
        audnBtn = Radiobutton(critFrm,
                              text='detailed breakdown',
                              variable=self.report,
                              value=2)
        audnBtn.grid(row=8,
                     column=1,
                     columnspan=2,
                     sticky='snw',
                     padx=2,
                     pady=5)
        branchBtn = Radiobutton(critFrm,
                                text='individual branches report',
                                variable=self.report,
                                value=3)
        branchBtn.grid(row=9,
                       column=1,
                       columnspan=2,
                       sticky='snw',
                       padx=2,
                       pady=5)
コード例 #3
0
ファイル: carts.py プロジェクト: BookOps-CAT/babel
    def __init__(self, parent, source_cart_id, source_cart_name, **app_data):
        self.parent = parent
        self.source_cart_id = source_cart_id
        self.source_cart_name = source_cart_name
        self.app_data = app_data
        self.profile_idx = self.app_data['profile_idx']

        top = self.top = Toplevel(master=self.parent)
        top.title('Copy cart')
        self.cur_manager = BusyManager(self.top)

        # variables
        self.system = StringVar()
        self.profile = StringVar()
        self.profiles = sorted(self.profile_idx.values())
        self.new_cart_name = StringVar()
        self.status = StringVar()

        # icons
        saveImg = self.app_data['img']['save']
        closeImg = self.app_data['img']['delete']

        # register cart name validator
        self.vlcn = (top.register(self.onValidateCartName), '%P')

        frm = Frame(top)
        frm.grid(row=0, column=0, sticky='snew', padx=20, pady=20)

        Label(frm,
              text=f'Copying "{self.source_cart_name}"').grid(row=0,
                                                              column=0,
                                                              columnspan=4,
                                                              padx=10,
                                                              pady=10,
                                                              sticky='snew')

        Label(frm, text='system:').grid(row=1,
                                        column=0,
                                        sticky='snw',
                                        padx=10,
                                        pady=5)
        systemCbx = Combobox(frm,
                             font=RFONT,
                             values=['NYPL', 'BPL'],
                             state='readonly',
                             textvariable=self.system)
        systemCbx.grid(row=2, column=0, sticky='snew', padx=10, pady=5)

        Label(frm, text='profile:').grid(row=1,
                                         column=1,
                                         sticky='snw',
                                         padx=10,
                                         pady=5)
        profileCbx = Combobox(frm,
                              font=RFONT,
                              values=self.profiles,
                              state='readonly',
                              textvariable=self.profile)
        profileCbx.grid(row=2, column=1, sticky='snew', padx=10, pady=5)

        Label(frm, text='new cart name:').grid(row=3,
                                               column=0,
                                               columnspan=2,
                                               sticky='snw',
                                               padx=10,
                                               pady=5)
        cart_nameEnt = Entry(frm,
                             font=RFONT,
                             textvariable=self.new_cart_name,
                             validate="key",
                             validatecommand=self.vlcn)
        cart_nameEnt.grid(row=4,
                          column=0,
                          columnspan=2,
                          sticky='snew',
                          padx=10,
                          pady=10)

        statusLbl = Label(frm, textvariable=self.status)
        statusLbl.grid(row=5,
                       column=0,
                       columnspan=2,
                       sticky='snew',
                       padx=10,
                       pady=5)

        okBtn = Button(frm, image=saveImg, command=self.create_copy)
        okBtn.grid(row=6, column=0, sticky='sne', padx=25, pady=10)

        cancelBtn = Button(frm, image=closeImg, command=top.destroy)
        cancelBtn.grid(row=6, column=1, sticky='snw', padx=25, pady=10)
コード例 #4
0
ファイル: carts.py プロジェクト: BookOps-CAT/babel
    def __init__(self, parent, controller, **app_data):
        self.parent = parent
        Frame.__init__(self, parent)
        self.controller = controller
        self.app_data = app_data
        self.activeW = app_data['activeW']
        self.activeW.trace('w', self.observer)
        self.system = app_data['system']
        self.system.trace('w', self.observer)
        self.profile = app_data['profile']
        self.profile.trace('w', self.observer)
        self.profile_idx = app_data['profile_idx']
        self.active_id = app_data['active_id']
        self.cur_manager = BusyManager(self)

        # local variables
        self.status_filter = StringVar()
        self.selected_cart_id = IntVar()
        self.selected_cart_name = StringVar()
        self.selected_cart_owner = StringVar()

        # images
        # addImg = self.app_data['img']['add']
        editImg = self.app_data['img']['edit']
        self.deleteImg = self.app_data['img']['delete']
        self.saveImg = self.app_data['img']['save']
        helpImg = self.app_data['img']['help']
        viewImg = self.app_data['img']['view']
        self.viewImgS = self.app_data['img']['viewS']
        copyImg = self.app_data['img']['copy']
        marcImg = self.app_data['img']['marc']
        sheetImg = self.app_data['img']['sheet']
        linkImg = self.app_data['img']['link']
        self.linkImgS = self.app_data['img']['linkS']

        list_height = int((self.winfo_screenheight() - 100) / 25)

        Label(self, text='selected: ').grid(row=0,
                                            column=0,
                                            sticky='snw',
                                            padx=10,
                                            pady=5)
        self.selcartLbl = Label(self,
                                textvariable=self.selected_cart_name,
                                font=RFONT)
        self.selcartLbl.grid(row=0, column=0, sticky='sne', pady=5)

        # carts treeview
        columns = ('#', 'cart', 'date', 'status', 'owner', 'link')

        self.cartTrv = Treeview(self,
                                columns=columns,
                                displaycolumns=columns,
                                show='headings',
                                height=list_height)

        # sorting columns functionality
        for col in columns:
            self.cartTrv.heading(
                col,
                text=col,
                command=lambda _col=col: self.treeview_sort_column(
                    self.cartTrv, _col, False))

        self.cartTrv.column('#', width=5, anchor='center')
        self.cartTrv.column('cart', width=350)
        self.cartTrv.column('date', width=130, anchor='center')
        self.cartTrv.column('status', width=100, anchor='center')
        self.cartTrv.column('owner', width=120, anchor='center')
        self.cartTrv.column('link', width=6, anchor='center')
        self.cartTrv.grid(row=1, column=0, rowspan=20, sticky='snew')

        # cart treeview scrollbar
        scrollbar = Scrollbar(self,
                              orient="vertical",
                              command=self.cartTrv.yview)
        scrollbar.grid(row=1, column=1, rowspan=20, sticky='ns')
        self.cartTrv.configure(yscrollcommand=scrollbar.set)

        self.cartTrv.bind('<ButtonRelease-1>', self.selectItem)

        # action buttons frame
        self.actionFrm = Frame(self)
        self.actionFrm.grid(row=1, column=2, sticky='snew', padx=5, pady=10)

        self.viewBtn = Button(self.actionFrm,
                              image=viewImg,
                              command=self.view_data)
        # self.viewBtn.image = self.viewImg
        self.viewBtn.grid(row=1, column=0, sticky='sw', padx=10, pady=5)
        self.createToolTip(self.viewBtn, 'view cart')

        self.editBtn = Button(self.actionFrm,
                              image=editImg,
                              command=self.edit_data)
        # self.editBtn.image = editImg
        self.editBtn.grid(row=2, column=0, sticky='sw', padx=10, pady=5)
        self.createToolTip(self.editBtn, 'edit cart')

        self.marcBtn = Button(self.actionFrm,
                              image=marcImg,
                              command=self.create_marc_file)
        # self.marcBtn.image = marcImg
        self.marcBtn.grid(row=3, column=0, sticky='sw', padx=10, pady=5)
        self.createToolTip(self.marcBtn, 'create MARC file')

        self.sheetBtn = Button(self.actionFrm,
                               image=sheetImg,
                               command=self.create_order_sheet)
        # self.sheetBtn.image = sheetImg
        self.sheetBtn.grid(row=4, column=0, sticky='sw', padx=10, pady=5)
        self.createToolTip(self.sheetBtn, 'create order sheet')

        self.copyBtn = Button(self.actionFrm,
                              image=copyImg,
                              command=self.copy_data)
        # self.copyBtn.image = copyImg
        self.copyBtn.grid(row=5, column=0, sticky='sw', padx=10, pady=5)
        self.createToolTip(self.copyBtn, 'copy cart')

        self.linkBtn = Button(self.actionFrm,
                              image=linkImg,
                              command=self.link_ids)
        # self.linkBtn.image = linkImg
        self.linkBtn.grid(row=6, column=0, sticky='sw', padx=10, pady=5)
        self.createToolTip(self.linkBtn, 'link IDs')

        self.deleteBtn = Button(self.actionFrm,
                                image=self.deleteImg,
                                command=self.delete_data)
        # self.deleteBtn.image = self.deleteImg
        self.deleteBtn.grid(row=7, column=0, sticky='sw', padx=10, pady=5)
        self.createToolTip(self.deleteBtn, 'delete cart')

        self.helpBtn = Button(self.actionFrm, image=helpImg, command=self.help)
        # self.helpBtn.image = helpImg
        self.helpBtn.grid(row=8, column=0, sticky='sw', padx=10, pady=5)
        self.createToolTip(self.helpBtn, 'help')

        # cart data frame
        self.cartdataFrm = Frame(self)
        self.cartdataFrm.grid(row=1,
                              column=3,
                              rowspan=20,
                              sticky='snew',
                              padx=10,
                              pady=5)

        self.cartdataTxt = Text(self.cartdataFrm,
                                width=65,
                                state=('disabled'),
                                wrap=WORD,
                                background='SystemButtonFace',
                                borderwidth=0)
        self.cartdataTxt.grid(row=0, column=0, sticky='nsw')
コード例 #5
0
ファイル: search.py プロジェクト: BookOps-CAT/babel
    def __init__(self, parent, **app_data):
        self.parent = parent
        self.app_data = app_data

        mlogger.debug('SearchView active.')

        self.top = Toplevel(master=self.parent)
        self.top.title('Search carts')
        self.cur_manager = BusyManager(self.top)

        # icons
        self.searchImg = self.app_data['img']['viewS']

        # variables
        self.identifier = StringVar()
        self.identifier_type = StringVar()
        self.title = StringVar()
        self.title_type = StringVar()
        self.title_type.set('keyword')
        self.system = StringVar()
        self.library = StringVar()
        self.profile = StringVar()
        self.audn = StringVar()
        self.lang = StringVar()
        self.mattype = StringVar()
        self.vendor = StringVar()
        self.fund = StringVar()
        self.created_start = StringVar()
        self.created_end = StringVar()
        self.con1 = StringVar()
        self.con2 = StringVar()
        self.con3 = StringVar()
        self.con4 = StringVar()
        self.con5 = StringVar()
        self.con6 = StringVar()
        self.con7 = StringVar()
        self.con8 = StringVar()
        self.con9 = StringVar()

        id_values = [
            'bib #', 'blanketPO', 'ISBN', 'order #', 'other #', 'UPC', 'wlo #'
        ]

        search_types = ['keyword', 'phrase']
        conjunctions = ['AND', 'OR', 'NOT', '']
        self.get_comboboxes_values()
        date_format_msg = 'format: YYYY-MM-DD'

        # register validators
        self.vldt = (self.top.register(self.onValidateDate), '%i', '%d', '%P')

        # basic search frame
        bfrm = LabelFrame(self.top, text='Basic search')
        bfrm.grid(row=0, column=0, sticky='snew', padx=25, pady=25)

        idEnt = Entry(bfrm, font=RFONT, textvariable=self.identifier)
        idEnt.grid(row=0, column=0, sticky='new', padx=5, pady=15)

        idtypeCbx = Combobox(bfrm,
                             font=RFONT,
                             state='readonly',
                             width=10,
                             values=id_values,
                             textvariable=self.identifier_type)
        idtypeCbx.grid(row=0, column=1, sticky='new', padx=5, pady=15)

        bsearchBtn = Button(bfrm,
                            image=self.searchImg,
                            command=self.basic_search)
        bsearchBtn.grid(row=0, column=2, sticky='new', padx=5, pady=10)
        self.createToolTip(bsearchBtn, 'run search')

        # advanced search frame
        afrm = LabelFrame(self.top, text='Advanced search')
        afrm.grid(row=1, column=0, sticky='snew', padx=25, pady=25)

        Label(afrm, text='title:').grid(row=0,
                                        column=1,
                                        sticky='new',
                                        padx=5,
                                        pady=15)

        titleEnt = Entry(afrm, font=RFONT, textvariable=self.title)
        titleEnt.grid(row=0,
                      column=2,
                      columnspan=2,
                      sticky='new',
                      padx=5,
                      pady=15)

        titletypeCbx = Combobox(afrm,
                                font=RFONT,
                                state='readonly',
                                width=10,
                                values=search_types)
        titletypeCbx.grid(row=0, column=4, sticky='new', padx=5, pady=15)

        asearchBtn = Button(afrm,
                            image=self.searchImg,
                            command=self.advanced_search)
        asearchBtn.grid(row=0, column=5, sticky='snew', padx=5, pady=10)
        self.createToolTip(asearchBtn, 'run search')

        con1Cbx = Combobox(afrm,
                           font=RFONT,
                           state='readonly',
                           width=4,
                           textvariable=self.con1,
                           values=conjunctions)
        con1Cbx.grid(row=1, column=0, sticky='new', padx=5, pady=2)

        Label(afrm, text='system:').grid(row=1,
                                         column=1,
                                         sticky='new',
                                         padx=5,
                                         pady=2)

        systemCbx = Combobox(afrm,
                             font=RFONT,
                             state='readonly',
                             width=10,
                             values=self.system_names)
        systemCbx.grid(row=1, column=2, sticky='new', padx=5, pady=2)

        con2Cbx = Combobox(afrm,
                           font=RFONT,
                           width=4,
                           state='readonly',
                           textvariable=self.con2,
                           values=conjunctions)
        con2Cbx.grid(row=2, column=0, sticky='new', padx=5, pady=2)

        Label(afrm, text='library:').grid(row=2,
                                          column=1,
                                          sticky='new',
                                          padx=5,
                                          pady=2)

        libraryCbx = Combobox(afrm,
                              font=RFONT,
                              width=10,
                              textvariable=self.library,
                              values=self.library_names,
                              state='readonly')
        libraryCbx.grid(row=2, column=2, sticky='new', padx=5, pady=2)

        con3Cbx = Combobox(afrm,
                           font=RFONT,
                           width=4,
                           state='readonly',
                           textvariable=self.con3,
                           values=conjunctions)
        con3Cbx.grid(row=3, column=0, sticky='new', padx=5, pady=2)

        Label(afrm, text='language:').grid(row=3,
                                           column=1,
                                           sticky='new',
                                           padx=5,
                                           pady=2)

        langCbx = Combobox(afrm,
                           font=RFONT,
                           width=10,
                           textvariable=self.lang,
                           values=self.lang_names,
                           state='readonly')
        langCbx.grid(row=3, column=2, sticky='new', padx=5, pady=2)

        con4Cbx = Combobox(afrm,
                           font=RFONT,
                           width=4,
                           state='readonly',
                           textvariable=self.con4,
                           values=conjunctions)
        con4Cbx.grid(row=4, column=0, sticky='new', padx=5, pady=2)

        Label(afrm, text='vendor:').grid(row=4,
                                         column=1,
                                         sticky='new',
                                         padx=5,
                                         pady=2)

        vendorCbx = Combobox(afrm,
                             font=RFONT,
                             width=10,
                             state='readonly',
                             textvariable=self.vendor,
                             values=self.vendor_names)
        vendorCbx.grid(row=4, column=2, sticky='new', padx=5, pady=2)

        con5Cbx = Combobox(afrm,
                           font=RFONT,
                           width=4,
                           state='readonly',
                           textvariable=self.con5,
                           values=conjunctions)
        con5Cbx.grid(row=5, column=0, sticky='new', padx=5, pady=2)

        Label(afrm, text='audience:').grid(row=5,
                                           column=1,
                                           sticky='new',
                                           padx=5,
                                           pady=2)

        audnCbx = Combobox(afrm,
                           font=RFONT,
                           width=10,
                           state='readonly',
                           textvariable=self.audn,
                           values=self.audn_names)
        audnCbx.grid(row=5, column=2, sticky='new', padx=5, pady=2)

        con6Cbx = Combobox(afrm,
                           font=RFONT,
                           width=4,
                           state='readonly',
                           textvariable=self.con6,
                           values=conjunctions)
        con6Cbx.grid(row=6, column=0, sticky='new', padx=5, pady=2)

        Label(afrm, text='mat. type:').grid(row=6,
                                            column=1,
                                            sticky='new',
                                            padx=5,
                                            pady=2)

        mattypeCbx = Combobox(afrm,
                              font=RFONT,
                              width=10,
                              state='readonly',
                              textvariable=self.mattype,
                              values=self.mattype_names)
        mattypeCbx.grid(row=6, column=2, sticky='new', padx=5, pady=2)

        con7Cbx = Combobox(afrm,
                           font=RFONT,
                           width=4,
                           state='readonly',
                           textvariable=self.con7,
                           values=conjunctions)
        con7Cbx.grid(row=7, column=0, sticky='new', padx=5, pady=2)

        Label(afrm, text='fund:').grid(row=7,
                                       column=1,
                                       sticky='new',
                                       padx=5,
                                       pady=2)

        fundCbx = Combobox(afrm,
                           font=RFONT,
                           width=10,
                           state='readonly',
                           textvariable=self.fund,
                           values=self.fund_codes)
        fundCbx.grid(row=7, column=2, sticky='new', padx=5, pady=2)

        con8Cbx = Combobox(afrm,
                           font=RFONT,
                           width=4,
                           state='readonly',
                           textvariable=self.con8,
                           values=conjunctions)
        con8Cbx.grid(row=8, column=0, sticky='new', padx=5, pady=2)

        Label(afrm, text='profile:').grid(row=8,
                                          column=1,
                                          sticky='new',
                                          padx=5,
                                          pady=2)

        profileCbx = Combobox(afrm,
                              font=RFONT,
                              width=10,
                              state='readonly',
                              textvariable=self.profile,
                              values=self.profile_names)
        profileCbx.grid(row=8, column=2, sticky='new', padx=5, pady=2)

        con9Cbx = Combobox(afrm,
                           font=RFONT,
                           width=4,
                           state='readonly',
                           textvariable=self.con9,
                           values=(conjunctions[0], conjunctions[3]))
        con9Cbx.grid(row=9, column=0, sticky='new', padx=5, pady=2)

        Label(afrm, text='date:').grid(row=9,
                                       column=1,
                                       sticky='new',
                                       padx=5,
                                       pady=2)

        datestartEnt = Entry(afrm,
                             font=RFONT,
                             width=10,
                             textvariable=self.created_start,
                             validate="key",
                             validatecommand=self.vldt)
        datestartEnt.grid(row=9, column=2, sticky='new', padx=5, pady=2)
        self.createToolTip(datestartEnt, date_format_msg)

        dateendEnt = Entry(afrm,
                           font=RFONT,
                           width=14,
                           textvariable=self.created_end,
                           validate="key",
                           validatecommand=self.vldt)
        dateendEnt.grid(row=9, column=3, sticky='new', padx=5, pady=2)
        self.createToolTip(dateendEnt, date_format_msg)
コード例 #6
0
ファイル: edit_resource.py プロジェクト: BookOps-CAT/babel
    def __init__(self, parent, cart_id=None, resource_id=None, **app_data):
        self.parent = parent
        self.app_data = app_data
        self.cart_id = cart_id
        self.rec_id = resource_id
        self.rec = None

        top = self.top = Toplevel(master=self.parent)
        top.title('Editing resource')
        self.cur_manager = BusyManager(self.top)

        # icons
        saveImg = self.app_data['img']['save']
        closeImg = self.app_data['img']['delete']

        # variables
        self.title = StringVar()
        self.add_title = StringVar()
        self.author = StringVar()
        self.series = StringVar()
        self.publisher = StringVar()
        self.pub_date = StringVar()
        self.pub_place = StringVar()
        self.isbn = StringVar()
        self.upc = StringVar()
        self.other_no = StringVar()
        self.price_list = StringVar()
        self.price_disc = StringVar()
        self.misc = StringVar()

        # register entries validation
        self.vlam = (self.top.register(self.onValidatePrice), '%i', '%d', '%P')
        self.vlis = (self.top.register(self.onValidateIsbn), '%i', '%d', '%P')
        self.vldt = (self.top.register(self.onValidateDate), '%i', '%d', '%P')
        self.vlup = (self.top.register(self.onValidateUpc), '%i', '%d', '%P')

        # layout
        frm = Frame(top)
        frm.grid(row=0, column=0, sticky='snew', padx=10, pady=10)
        frm.columnconfigure(3, minsize=100)

        Label(frm, text='title:').grid(row=0, column=0, sticky='snw')
        titleEnt = Entry(frm, font=RFONT, textvariable=self.title)
        titleEnt.grid(row=0,
                      column=1,
                      columnspan=3,
                      sticky='snew',
                      padx=5,
                      pady=5)

        Label(frm, text='extra title:').grid(row=1, column=0, sticky='snw')
        addtitleEnt = Entry(frm, font=RFONT, textvariable=self.add_title)
        addtitleEnt.grid(row=1,
                         column=1,
                         columnspan=3,
                         sticky='snew',
                         padx=5,
                         pady=5)

        Label(frm, text='author:').grid(row=2, column=0, sticky='snw')
        authorEnt = Entry(frm, font=RFONT, textvariable=self.author)
        authorEnt.grid(row=2,
                       column=1,
                       columnspan=3,
                       sticky='snew',
                       padx=5,
                       pady=5)

        Label(frm, text='series').grid(row=3, column=0, sticky='snw')
        seriesEnt = Entry(frm, font=RFONT, textvariable=self.series)
        seriesEnt.grid(row=3,
                       column=1,
                       columnspan=3,
                       sticky='snew',
                       padx=5,
                       pady=5)

        Label(frm, text='publisher:').grid(row=4, column=0, sticky='snw')
        publisherEnt = Entry(frm, font=RFONT, textvariable=self.publisher)
        publisherEnt.grid(row=4,
                          column=1,
                          columnspan=3,
                          sticky='snew',
                          padx=5,
                          pady=5)

        Label(frm, text='date:').grid(row=5, column=0, sticky='snw')
        pubdateEnt = Entry(frm,
                           font=RFONT,
                           textvariable=self.pub_date,
                           validate="key",
                           validatecommand=self.vldt)
        pubdateEnt.grid(row=5, column=1, sticky='snew', padx=5, pady=5)

        Label(frm, text='place:').grid(row=5, column=2, sticky='sne')
        pubplaceEnt = Entry(frm, font=RFONT, textvariable=self.pub_place)
        pubplaceEnt.grid(row=5, column=3, sticky='snew', padx=5, pady=5)

        Label(frm, text='ISBN').grid(row=6, column=0, sticky='snw')
        isbnEnt = Entry(frm,
                        font=RFONT,
                        textvariable=self.isbn,
                        validate="key",
                        validatecommand=self.vlis)
        isbnEnt.grid(row=6, column=1, sticky='snew', padx=5, pady=5)

        Label(frm, text='UPC:').grid(row=6, column=2, sticky='sne')
        upcEnt = Entry(frm,
                       font=RFONT,
                       textvariable=self.upc,
                       validate="key",
                       validatecommand=self.vlup)
        upcEnt.grid(row=6, column=3, sticky='snew', padx=5, pady=5)

        Label(frm, text='Other #:').grid(row=7, column=0, sticky='snw')
        othernoEnt = Entry(frm, font=RFONT, textvariable=self.other_no)
        othernoEnt.grid(row=7, column=1, sticky='snew', padx=5, pady=5)

        Label(frm, text='misc.:').grid(row=7, column=2, sticky='sne')
        miscEnt = Entry(frm, font=RFONT, textvariable=self.misc)
        miscEnt.grid(row=7, column=3, sticky='snew', padx=5, pady=5)

        Label(frm, text='list price ($):').grid(row=8, column=0, sticky='snw')
        pricelistEnt = Entry(frm,
                             font=RFONT,
                             textvariable=self.price_list,
                             validate="key",
                             validatecommand=self.vlam)
        pricelistEnt.grid(row=8, column=1, sticky='snew', padx=5, pady=5)

        Label(frm, text='discount price ($):').grid(row=8,
                                                    column=2,
                                                    sticky='sne')
        pricediscEnt = Entry(frm,
                             font=RFONT,
                             textvariable=self.price_disc,
                             validate="key",
                             validatecommand=self.vlam)
        pricediscEnt.grid(row=8, column=3, sticky='snew', padx=5, pady=5)

        Label(frm, text='summary:').grid(row=9, column=0, sticky='snw')
        self.summaryTxt = Text(frm,
                               font=RFONT,
                               wrap='word',
                               width=50,
                               height=5)
        self.summaryTxt.grid(row=9,
                             column=1,
                             rowspan=3,
                             columnspan=3,
                             sticky='snew',
                             padx=5,
                             pady=5)

        saveBtn = Button(frm, image=saveImg, command=self.save_resource)
        saveBtn.grid(row=12, column=1, sticky='sne', padx=5, pady=10)

        cancelBtn = Button(frm, image=closeImg, command=self.top.destroy)
        cancelBtn.grid(row=12, column=2, sticky='snw', padx=5, pady=10)

        if self.rec_id is not None:
            # populate for edit
            self.get_data()
コード例 #7
0
    def __init__(self, parent, controller, **app_data):
        self.parent = parent
        Frame.__init__(self, parent)
        self.controller = controller
        self.app_data = app_data
        self.activeW = app_data['activeW']
        self.activeW.trace('w', self.observer)
        self.profile = app_data['profile']
        self.system = app_data['system']
        self.system.trace('w', self.observer)
        list_height = int((self.winfo_screenheight() - 100) / 25)

        # local variables
        self.record = None
        self.all_branches = IntVar()
        self.all_branches.trace('w', self.branch_selection_observer)
        self.all_branchesLbl = StringVar()
        self.all_branchesLbl.set('select all')
        self.fund_code = StringVar()
        self.fund_desc = StringVar()

        # busy icon manager
        self.cur_manager = BusyManager(self)

        # icons
        addImg = self.app_data['img']['add']
        editImg = self.app_data['img']['edit']
        deleteImg = self.app_data['img']['delete']
        saveImg = self.app_data['img']['save']
        helpImg = self.app_data['img']['help']
        addSImg = self.app_data['img']['addS']
        removeSImg = self.app_data['img']['removeS']

        # register validation
        self.vlfu = (self.register(self.onValidateFund), '%d', '%i', '%P')

        # tables list
        Label(self, text='Funds:').grid(row=0, column=0, sticky='nw')
        scrollbarA = Scrollbar(self, orient=VERTICAL)
        scrollbarA.grid(row=1, column=1, rowspan=40, sticky='nsw')
        self.fundLst = Listbox(self,
                               font=RFONT,
                               height=list_height,
                               selectmode=SINGLE,
                               yscrollcommand=scrollbarA.set)
        self.fundLst.bind('<Double-Button-1>', self.show_fund)
        self.fundLst.grid(row=1, column=0, rowspan=40, sticky='snew')
        scrollbarA['command'] = self.fundLst.yview

        # action buttons
        self.addBtn = Button(self, image=addImg, command=self.add_data)
        self.addBtn.grid(row=1, column=5, sticky='sw', padx=10, pady=10)

        self.editBtn = Button(self, image=editImg, command=self.edit_data)
        self.editBtn.grid(row=2, column=5, sticky='sw', padx=10, pady=5)

        self.deleteBtn = Button(self,
                                image=deleteImg,
                                command=self.delete_data)
        self.deleteBtn.grid(row=3, column=5, sticky='sw', padx=10, pady=5)

        self.saveBtn = Button(self,
                              image=saveImg,
                              command=self.insert_or_update_data)
        self.saveBtn.grid(row=4, column=5, sticky='sw', padx=10, pady=5)

        self.helpBtn = Button(self, image=helpImg, command=self.help)
        self.helpBtn.grid(row=5, column=5, sticky='sw', padx=10, pady=5)

        # details/edit frame
        self.detFrm = LabelFrame(self, text='Fund code and constraints')
        self.detFrm.grid(row=0,
                         column=6,
                         rowspan=40,
                         columnspan=5,
                         sticky='snew')

        # fund data
        self.editFrm = Frame(self.detFrm)
        self.editFrm.grid(row=1,
                          column=0,
                          rowspan=5,
                          columnspan=2,
                          sticky='snew',
                          padx=2)
        Label(self.editFrm, text='Fund code').grid(row=0,
                                                   column=0,
                                                   sticky='snw',
                                                   pady=5)
        self.fundcodeEnt = Entry(self.editFrm,
                                 font=RFONT,
                                 textvariable=self.fund_code,
                                 validate="key",
                                 validatecommand=self.vlfu)
        self.fundcodeEnt.grid(row=1,
                              column=0,
                              columnspan=3,
                              sticky='snew',
                              pady=5)
        Label(self.editFrm, text='Description').grid(row=2,
                                                     column=0,
                                                     sticky='snw',
                                                     pady=5)
        self.funddescEnt = Entry(self.editFrm,
                                 font=RFONT,
                                 textvariable=self.fund_desc)
        self.funddescEnt.grid(row=3,
                              column=0,
                              rowspan=2,
                              columnspan=3,
                              sticky='snew',
                              pady=5)

        Label(self.detFrm, text='out').grid(row=0,
                                            column=4,
                                            columnspan=2,
                                            padx=2,
                                            sticky='snw')
        Label(self.detFrm, text='in').grid(row=0,
                                           column=7,
                                           columnspan=2,
                                           padx=2,
                                           sticky='snw')
        Label(self.detFrm, text='out').grid(row=0,
                                            column=11,
                                            columnspan=2,
                                            padx=2,
                                            sticky='snw')
        Label(self.detFrm, text='in').grid(row=0,
                                           column=14,
                                           columnspan=2,
                                           padx=2,
                                           sticky='snw')

        # branches
        self.branchFrm = LabelFrame(self.detFrm, text='Branches')
        self.branchFrm.grid(row=1,
                            column=4,
                            rowspan=10,
                            columnspan=5,
                            sticky='snew',
                            padx=5)

        Checkbutton(self.branchFrm,
                    textvariable=self.all_branchesLbl,
                    variable=self.all_branches).grid(row=0,
                                                     column=0,
                                                     sticky='snw')

        scrollbarB = Scrollbar(self.branchFrm, orient=VERTICAL)
        scrollbarB.grid(row=1, column=1, rowspan=20, sticky='nsw', pady=2)
        self.branchOutLst = Listbox(self.branchFrm,
                                    font=RFONT,
                                    height=list_height,
                                    width=14,
                                    selectmode=EXTENDED,
                                    yscrollcommand=scrollbarB.set)
        self.branchOutLst.grid(row=1,
                               column=0,
                               rowspan=20,
                               sticky='snew',
                               padx=2,
                               pady=2)
        scrollbarB['command'] = self.branchOutLst.yview

        self.branchInBtn = Button(
            self.branchFrm,
            image=addSImg,
            command=lambda: self.add_condition(
                'branchLst', self.branchOutLst, self.branchInLst,
                self.branchOutLst.curselection()))
        self.branchInBtn.grid(row=1, column=2, sticky='sw', padx=2, pady=2)

        self.branchOutBtn = Button(
            self.branchFrm,
            image=removeSImg,
            command=lambda: self.remove_condition(
                'branchLst', self.branchOutLst, self.branchInLst,
                self.branchInLst.curselection()))
        self.branchOutBtn.grid(row=2, column=2, sticky='sw', padx=2, pady=2)

        scrollbarC = Scrollbar(self.branchFrm, orient=VERTICAL)
        scrollbarC.grid(row=1, column=4, rowspan=20, sticky='nsw', pady=2)
        self.branchInLst = Listbox(self.branchFrm,
                                   font=RFONT,
                                   width=14,
                                   height=list_height,
                                   selectmode=EXTENDED,
                                   yscrollcommand=scrollbarC.set)
        self.branchInLst.grid(row=1,
                              column=3,
                              rowspan=20,
                              sticky='snew',
                              padx=2,
                              pady=2)
        scrollbarC['command'] = self.branchInLst.yview

        # library
        self.libraryFrm = LabelFrame(self.detFrm, text='Library')
        self.libraryFrm.grid(row=1,
                             column=11,
                             rowspan=2,
                             columnspan=5,
                             sticky='snew',
                             padx=5)

        self.libOutLst = Listbox(self.libraryFrm,
                                 font=RFONT,
                                 width=15,
                                 height=3,
                                 selectmode=EXTENDED)
        self.libOutLst.grid(row=0,
                            column=0,
                            rowspan=3,
                            sticky='snew',
                            padx=2,
                            pady=2)

        self.libInBtn = Button(self.libraryFrm,
                               image=addSImg,
                               command=lambda: self.add_condition(
                                   'libLst', self.libOutLst, self.libInLst,
                                   self.libOutLst.curselection()))
        # self.libInBtn.image = addSImg
        self.libInBtn.grid(row=0, column=1, sticky='sw', padx=5, pady=2)

        self.libOutBtn = Button(self.libraryFrm,
                                image=removeSImg,
                                command=lambda: self.remove_condition(
                                    'LibLst', self.libOutLst, self.libInLst,
                                    self.libInLst.curselection()))
        # self.libOutBtn.image = removeSImg
        self.libOutBtn.grid(row=1, column=1, sticky='sw', padx=5, pady=2)

        self.libInLst = Listbox(self.libraryFrm,
                                font=RFONT,
                                height=3,
                                width=15,
                                selectmode=EXTENDED)
        self.libInLst.grid(row=0,
                           column=2,
                           rowspan=2,
                           sticky='snew',
                           padx=2,
                           pady=2)

        # audience
        self.audienceFrm = LabelFrame(self.detFrm, text='Audience')
        self.audienceFrm.grid(row=3,
                              column=11,
                              rowspan=2,
                              columnspan=5,
                              sticky='snew',
                              padx=5,
                              pady=5)

        self.audnOutLst = Listbox(self.audienceFrm,
                                  font=RFONT,
                                  width=15,
                                  height=4,
                                  selectmode=EXTENDED)
        self.audnOutLst.grid(row=0,
                             column=0,
                             rowspan=2,
                             sticky='snew',
                             padx=2,
                             pady=2)

        self.audnInBtn = Button(self.audienceFrm,
                                image=addSImg,
                                command=lambda: self.add_condition(
                                    'audnLst', self.audnOutLst, self.audnInLst,
                                    self.audnOutLst.curselection()))
        # self.audnInBtn.image = addSImg
        self.audnInBtn.grid(row=0, column=1, sticky='sw', padx=5, pady=2)

        self.audnOutBtn = Button(self.audienceFrm,
                                 image=removeSImg,
                                 command=lambda: self.remove_condition(
                                     'audnLst', self.audnOutLst, self.
                                     audnInLst, self.audnInLst.curselection()))
        # self.audnOutBtn.image = removeSImg
        self.audnOutBtn.grid(row=1, column=1, sticky='sw', padx=5, pady=2)

        self.audnInLst = Listbox(self.audienceFrm,
                                 font=RFONT,
                                 width=15,
                                 height=4,
                                 selectmode=EXTENDED)
        self.audnInLst.grid(row=0,
                            column=2,
                            rowspan=2,
                            sticky='snew',
                            padx=2,
                            pady=2)

        # material type
        self.mattypeFrm = LabelFrame(self.detFrm, text='Material type')
        self.mattypeFrm.grid(row=5,
                             column=11,
                             rowspan=7,
                             columnspan=5,
                             sticky='snew',
                             padx=5,
                             pady=5)

        self.mattypeOutLst = Listbox(self.mattypeFrm,
                                     font=RFONT,
                                     width=15,
                                     height=7,
                                     selectmode=EXTENDED)
        self.mattypeOutLst.grid(row=0,
                                column=0,
                                rowspan=7,
                                sticky='snew',
                                padx=2,
                                pady=2)

        self.mattypeInBtn = Button(
            self.mattypeFrm,
            image=addSImg,
            command=lambda: self.add_condition(
                'mattypeLst', self.mattypeOutLst, self.mattypeInLst,
                self.mattypeOutLst.curselection()))
        # self.mattypeInBtn.image = addSImg
        self.mattypeInBtn.grid(row=0, column=1, sticky='sw', padx=5, pady=2)

        self.mattypeOutBtn = Button(
            self.mattypeFrm,
            image=removeSImg,
            command=lambda: self.remove_condition(
                'mattypesLst', self.mattypeOutLst, self.mattypeInLst,
                self.mattypeInLst.curselection()))
        # self.mattypeOutBtn.image = removeSImg
        self.mattypeOutBtn.grid(row=1, column=1, sticky='sw', padx=5, pady=2)

        self.mattypeInLst = Listbox(self.mattypeFrm,
                                    font=RFONT,
                                    width=15,
                                    height=7,
                                    selectmode=EXTENDED)
        self.mattypeInLst.grid(row=0,
                               column=2,
                               rowspan=7,
                               sticky='snew',
                               padx=2,
                               pady=2)