Esempio n. 1
0
    def post(self):
        username = self.get_cookie('stuID')
        if not username:
            self.redirect('/error')
        submission_content = self.get_argument('submission_content')
        submission_files = self.request.files.get('submission_files')
        homework_id = int(self.get_argument('hw_id', '0'))

        filepath = ''
        if submission_files:
            assert len(submission_files) == 1
            for sb_file in submission_files:
                filename = sb_file['filename']
                # TODO: try catch
                filepath = os.path.join(
                    'data', 'homework', 'hw_' + str(homework_id), filename)
                # TODO: this method is unsafe, handle the comflict.
                with open(filepath, 'wb') as upfile:
                    upfile.write(sb_file['body'])
        # TODO: find a better file upload way.
        sbd.insert(username, '', submission_content,
                   time.strftime('%Y-%m-%d %H:%M:%S'),
                   homework_id, filepath, 'submitted')
        # title is ''

        self.render('eggs.html', cookie_name=username,
                    messages=md.fetch_message(username))
Esempio n. 2
0
 def get(self):
     username = self.get_cookie('stuID')
     self.render('index.html',
                 cookie_name=username,
                 is_admin=adm.is_admin(username),
                 announcements=ad.fetch_all(),
                 messages=md.fetch_message(username))
Esempio n. 3
0
    def get(self):
        username = self.get_cookie('stuID')
        if not adm.is_admin(username):
            self.redirect('/error')

        self.render('upload_resource.html', cookie_name=username,
                    is_admin=adm.is_admin(username),
                    messages=md.fetch_message(username))
Esempio n. 4
0
    def get(self, para):
        username = self.get_cookie('stuID')
        if not username:
            self.redirect('/error')

        if para == 'view':
            homework_list = hd.fetch_all()
            status_dict = {}
            enable_submit = {}   # True or False
            for hw in homework_list:
                hw_id = hw['homework_id']
                assert hw_id
                submission = sbd.fetch_one_submission(username, hw_id)
                if not submission:
                    status_dict[hw_id] = 'notsubmit'
                else:
                    status_dict[hw_id] = submission['status']
                    assert status_dict[hw_id] != 'notsubmit'

                ddl = time.mktime(time.strptime(hw['deadline'], '%Y-%m-%d %H:%M:%S'))
                now = time.mktime(time.localtime())
                is_enable = now - ddl < 0
                enable_submit[hw_id] = is_enable

            self.render('homework.html', cookie_name=username,
                        homework_list=homework_list,
                        is_admin=adm.is_admin(username),
                        status_dict=status_dict,
                        enable_submit=enable_submit,
                        messages=md.fetch_message(username))

        if para == 'assign':
            if not adm.is_admin(username):
                self.redirect('/error')
            self.render('assign_homework.html', cookie_name=username,
                        is_admin=adm.is_admin(username),
                        messages=md.fetch_message(username))

        if para == 'delete':
            if not adm.is_admin(username):
                self.redirect('/error')
            homework_id = int(self.get_argument('hw_id'))
            hd.delete(homework_id)
            shutil.rmtree(os.path.join('data', 'homework', 'hw_' + str(homework_id)))
            self.redirect('/homework/view')
Esempio n. 5
0
    def get(self):
        username = self.get_cookie('stuID')
        if not username:
            self.redirect('/error')

        user_info_list = ui.fetch_member_info()
        self.render('member.html', cookie_name=username,
                    is_admin=adm.is_admin(username),
                    user_info_list=user_info_list,
                    messages=md.fetch_message(username))
Esempio n. 6
0
    def get(self):
        username = self.get_cookie('stuID')
        if not username:
            self.redirect('/error')

        resource_list = rd.fetch_all()

        self.render('resource.html', cookie_name=username,
                    is_admin=adm.is_admin(username),
                    resource_list=resource_list,
                    messages=md.fetch_message(username))
Esempio n. 7
0
    def get(self):
        username = self.get_cookie('stuID')
        if not username:
            self.redirect('/error')

        homework_id = int(self.get_argument('hw_id', '0'))
        if homework_id == 0:
            # cann't get homework id
            self.redirect('/error')

        homework_info = hd.fetch_by_id(homework_id)
        assert homework_info
        status = 'notsubmit'
        submission = sbd.fetch_one_submission(username, homework_id)
        if not submission:
            status = 'notsubmit'
        else:
            status = submission['status']
        self.render('submit_homework.html', cookie_name=username,
                    is_admin=adm.is_admin(username),
                    homework_info=homework_info,
                    status=status,
                    messages=md.fetch_message(username))
Esempio n. 8
0
    def get(self):
        username = self.get_cookie('stuID')
        if not username:
            self.redirect('/error')

        userinfo = ui.fetch(username)
        info_args = ['username', 'sex', 'email', 'truename', 'mobile', 'self_intro']
        info_dict = {}
        for item in info_args:
            try:
                info_dict[item] = userinfo[item]
            except Exception as e:
                print(e)
                info_dict[item] = ''

        njuid = ud.fetch(username)['njuid']
        self.render(
            'setting.html',
            cookie_name=username,
            is_admin=adm.is_admin(username),
            njuid=njuid,
            messages=md.fetch_message(username),
            **info_dict
        )
Esempio n. 9
0
 def get(self):
     username = self.get_cookie('stuID')
     self.render('error.html', cookie_name=username,
                 messages=md.fetch_message(username))