Example #1
0
    def process_admin_request(self, req, cat, page, milestone):
        req.perm.assert_permission('MMV_ADMIN')


        if req.args.get('save'):
            # save 

            # empty table first
            MMV_List.deleteAll(self.env)
            
            # insert selected milestone into table
            db = self.env.get_db_cnx()

            selReq = req.args.get('sel')
            milestoneReq = req.args.get('milestone')
            startdateReq = req.args.get('startdate')
            enddateReq = req.args.get('enddate')

            selList = isinstance(selReq, list) and selReq or [selReq]
            milestoneList = isinstance(milestoneReq, list) and milestoneReq or [milestoneReq]
            startdateList = isinstance(startdateReq, list) and startdateReq or [startdateReq]
            enddateList = isinstance(enddateReq, list) and enddateReq or [enddateReq]

            for milestone, startdate, enddate in zip(milestoneList, startdateList, enddateList):
                startdate = getDateFromStr(startdate)
                enddate = getDateFromStr(enddate)
                if milestone in selList:
                    enabled = True
                else:
                    enabled = False

                MMV_List.insert(self.env, milestone, startdate, enddate, enabled)
            db.commit()
            req.redirect(self.env.href.admin(cat, page))

        elif req.args.get('repair'):
            # repair 

            # empty table first
            MMV_List.deleteAllHistory(self.env)
            
            req.redirect(self.env.href.admin(cat, page))

        else:
            # display

            # get all enabled milestones
            enabledMilestones = MMV_List.getEnabledMilestones(self.env)

            ms = Milestone.select(self.env)
            ms.sort(cmp=lambda x,y: cmp(x.name, y.name))

            req.hdf['date_hint'] = "Format: YYYY/MM/DD"

            req.hdf['milestones'] = [{'name': m.name,
                  'href': self.env.href.admin(cat, "milestones", m.name),
                  'enabled': m.name in enabledMilestones,
                  'startdate':  formatDateFull(MMV_List.getStartdateFromDb(self.env, m.name)), 
                  'enddate': formatDateFull(MMV_List.getEnddateFromDb(self.env, m.name)),
                 } for m in ms]

            return 'mmv_admin.cs', None