Example #1
0
    def get(self):
        user_messages = self.notifications.get('user_messages')
        working_model = models.Workings(self.db)
        report_model = models.Reports(self.db)
        filter_by_date = self.get_argument('filterByDate', 'today')
        s_date, e_date = util.str_to_date_range(filter_by_date)
        if self.get_argument('id', None) and ("ROLE_ADMIN" in self.current_user['roles']):
            user_model = models.Users(self.db)
            user = yield user_model.get({'_id': self.get_argument('id')})
            view = "admin"
        else:
            user = self.current_user
            view = "user"
        user_id = user['_id']

        query = {'user_id': user['_id'], 'end': None}
        working = yield working_model.get(query)
        if working:
            today = khayyam.jalali_datetime.JalaliDatetime().now(khayyam.teh_tz).todatetime().day
            start_day = working['start'].day
            if today > start_day:
                end = datetime.datetime.combine(working['start'].date(), datetime.time(23, 59, 59))
                working_model.end(working['_id'], end, True)
                self.redirect(self.reverse_url('user'))
                return
            do = 'stop'
            wid = util.encode(str(working['_id']), 'url')
        else:
            do = 'start'
            wid = ''

        reports = yield report_model.get_all_fb_user_fb_date(user_id, s_date, e_date)
        workings = yield working_model.get_all_fb_user_fb_date(user_id, s_date, e_date)
        self.render('user.html', do=do, wid=wid, user=user, workings=workings, reports=reports, view=view)
Example #2
0
    def get(self):
        if 'ROLE_ADMIN' not in self.current_user['roles']:
            raise tornado.web.HTTPError(401)

        filter_by_date = self.get_argument('filterByDate', 'today')
        s_date, e_date = util.str_to_date_range(filter_by_date)

        user_model = models.Users(self.db)
        users = yield user_model.get_all_gb_user()

        working_model = models.Workings(self.db)
        workings = yield working_model.get_all_gb_user_fb_date(s_date, e_date)

        report_model = models.Reports(self.db)
        reports = yield report_model.get_all_gb_user_fb_date(s_date, e_date)

        time = khayyam.JalaliDatetime.now(khayyam.teh_tz).strftime("%I:%M:%S %p")
        self.render(
            'admin.html',
            users=users['retval'][0] if (len(users['retval']) > 0) else [],
            workings=workings['retval'][0] if (len(workings['retval']) > 0) else [],
            reports=reports['retval'][0] if (len(reports['retval']) > 0) else [],
            time=time
        )