示例#1
0
def import_user():
    import csv
    from stepbystep.models import UserModel, AccountItem, Account
    from stepbystep.libs.tasks import account_crawler
    with open('stepbystep_user.csv', 'r') as users:
        for sid, name, grade, sdut_id, poj_id in csv.reader(
                users.read().splitlines()[1:]):
            if sid and name and grade:
                user = UserModel.objects(username=sid).first()
                if not user:
                    user = UserModel.create_user(username=sid,
                                                 password='******',
                                                 name=name,
                                                 grade=grade)
                if sdut_id:
                    sdut_account = AccountItem.objects.create(origin_oj='sdut',
                                                              username=sdut_id)
                    user.sdut = Account(user_id=sdut_id, account=sdut_account)
                    account_crawler.delay(origin_oj='sdut', username=sdut_id)
                if poj_id:
                    poj_account = AccountItem.objects.create(origin_oj='poj',
                                                             username=poj_id)
                    user.poj = Account(user_id=poj_id, account=poj_account)
                    account_crawler.delay(origin_oj='poj', username=poj_id)
                user.save()
示例#2
0
def deploy():
    RoleModel.insert_roles()
    admin = RoleModel.objects(name='admin').first()

    user = UserModel.objects(username='******').first()
    if user is None:
        user = UserModel.create_user(
            username='******',
            name='admin',
            password='******'
        )
        user.roles.append(admin)
        user.save()
示例#3
0
def import_user(filename):
    import csv
    from stepbystep.models import UserModel, AccountItem, Account, RoleModel
    from stepbystep.libs.tasks import account_crawler
    sdut_program_1 = RoleModel.objects(name='program_1').first()
    sdut_program_2 = RoleModel.objects(name='program_2').first()
    sdut_data_structure = RoleModel.objects(name='data_structure').first()
    with open(filename, 'r') as users:
        for sid, name, grade, sdut_id, poj_id in csv.reader(
                users.read().splitlines()[1:]):
            if sid and name and grade:
                user = UserModel.objects(
                    username=sid).first()
                if not user:
                    user = UserModel.create_user(
                        username=sid,
                        password='******',
                        name=name,
                        grade=grade
                    )
                if sdut_id:
                    sdut_account = AccountItem.objects.create(
                        origin_oj='sdut',
                        username=sdut_id
                    )
                    user.sdut = Account(
                        user_id=sdut_id,
                        account=sdut_account
                    )
                    user.roles.append(sdut_program_1)
                    user.roles.append(sdut_program_2)
                    user.roles.append(sdut_data_structure)
                    account_crawler.delay(
                        origin_oj='sdut',
                        username=sdut_id
                    )
                if poj_id:
                    poj_account = AccountItem.objects.create(
                        origin_oj='poj',
                        username=poj_id
                    )
                    user.poj = Account(
                        user_id=poj_id,
                        account=poj_account
                    )
                    account_crawler.delay(
                        origin_oj='poj',
                        username=poj_id
                    )
                user.save()
示例#4
0
def deploy():
    RoleModel.insert_roles()
    admin = RoleModel.objects(name='admin').first()

    user = UserModel.objects(username='******').first()
    if user is None:
        user = UserModel.create_user(username='******',
                                     name='admin',
                                     password='******')
        user.roles.append(admin)
        user.save()

    if UserModel.objects().count() == 1:
        import os
        os.chdir('./stepbystep/script/')
        execfile('import_category_problem.py')
        execfile('import_user.py')
示例#5
0
 def get(self):
     per_page = current_app.config['STATISTICS_PER_PAGE']
     page = request.args.get('page', 1, type=int)
     role = RoleModel.objects(name='statistics').first()
     paginate = UserModel.objects(roles=role).paginate(page=page,
                                                       per_page=per_page)
     users = paginate.items
     return render_template(self.template, users=users, paginate=paginate)
示例#6
0
def import_user():
    import csv
    from stepbystep.models import UserModel, AccountItem, Account
    from stepbystep.libs.tasks import account_crawler
    with open('stepbystep_user.csv', 'r') as users:
        for sid, name, grade, sdut_id, poj_id in csv.reader(
                users.read().splitlines()[1:]):
            if sid and name and grade:
                user = UserModel.objects(
                    username=sid).first()
                if not user:
                    user = UserModel.create_user(
                        username=sid,
                        password='******',
                        name=name,
                        grade=grade
                    )
                if sdut_id:
                    sdut_account = AccountItem.objects.create(
                        origin_oj='sdut',
                        username=sdut_id
                    )
                    user.sdut = Account(
                        user_id=sdut_id,
                        account=sdut_account
                    )
                    account_crawler.delay(
                        origin_oj='sdut',
                        username=sdut_id
                    )
                if poj_id:
                    poj_account = AccountItem.objects.create(
                        origin_oj='poj',
                        username=poj_id
                    )
                    user.poj = Account(
                        user_id=poj_id,
                        account=poj_account
                    )
                    account_crawler.delay(
                        origin_oj='poj',
                        username=poj_id
                    )
                user.save()
示例#7
0
def deploy():
    RoleModel.insert_roles()
    admin = RoleModel.objects(name='admin').first()

    user = UserModel.objects(username='******').first()
    if user is None:
        user = UserModel.create_user(
            username='******',
            name='admin',
            password='******'
        )
        user.roles.append(admin)
        user.save()

    if UserModel.objects().count() == 1:
        import os
        os.chdir('./stepbystep/script/')
        execfile('import_category_problem.py')
        execfile('import_user.py')
示例#8
0
    def get(self, ordinal):
        role = RoleModel.objects(name=ordinal).first()
        ordinal = CategoryModel.objects.get_or_404(
            ordinal=ORDINAL.get(ordinal), origin_oj='poj')
        problems = ProblemModel.objects(origin_oj='poj', genera=ordinal).all()
        problems = list(problems)
        problems.sort(cmp=ProblemModel.p_cmp)
        users = UserModel.objects(roles=role).all()

        return render_template(self.template,
                               problems=problems,
                               users=users,
                               ordinal=ordinal)
示例#9
0
 def get(self):
     per_page = current_app.config['STATISTICS_PER_PAGE']
     page = request.args.get('page', 1, type=int)
     role = RoleModel.objects(name='statistics').first()
     paginate = UserModel.objects(roles=role).paginate(
         page=page,
         per_page=per_page
     )
     users = paginate.items
     return render_template(
         self.template,
         users=users,
         paginate=paginate
     )
示例#10
0
    def get(self, ordinal):
        role = RoleModel.objects(name=ordinal).first()
        ordinal = CategoryModel.objects.get_or_404(
            ordinal=ORDINAL.get(ordinal), origin_oj='poj')
        problems = ProblemModel.objects(
            origin_oj='poj',
            genera=ordinal
        ).all()
        problems = list(problems)
        problems.sort(cmp=ProblemModel.p_cmp)
        users = UserModel.objects(roles=role).all()

        return render_template(
            self.template,
            problems=problems,
            users=users,
            ordinal=ordinal)
示例#11
0
    def on_model_change(self, form, model):
        if len(model.password2):
            model.password = UserModel.generate_password(form.password2.data)
        elif not model.password:
            model.password = UserModel.generate_password('12345678')

        if model.bestcoder.user_id:
            account = AccountItem.objects(
                origin_oj='bestcoder',
                username=model.bestcoder.user_id
            ).first()
            if not account:
                account = AccountItem.objects.create(
                    origin_oj='bestcoder',
                    username=model.bestcoder.user_id
                )
            account_crawler.delay(
                origin_oj='bestcoder',
                username=model.bestcoder.user_id
            )
            model.bestcoder.account = account
        else:
            model.bestcoder = Account(user_id='')

        if model.topcoder.user_id:
            account = AccountItem.objects(
                origin_oj='topcoder',
                username=model.topcoder.user_id
            ).first()
            if not account:
                account = AccountItem.objects.create(
                    origin_oj='topcoder',
                    username=model.topcoder.user_id
                )
            account_crawler.delay(
                origin_oj='topcoder',
                username=model.topcoder.user_id
            )
            model.topcoder.account = account
        else:
            model.topcoder = Account(user_id='')

        if model.codeforces.user_id:
            account = AccountItem.objects(
                origin_oj='codeforces',
                username=model.codeforces.user_id
            ).first()
            if not account:
                account = AccountItem.objects.create(
                    origin_oj='codeforces',
                    username=model.codeforces.user_id
                )
            account_crawler.delay(
                origin_oj='codeforces',
                username=model.codeforces.user_id
            )
            model.codeforces.account = account
        else:
            model.codeforces = Account(user_id='')

        if model.sdut.user_id:
            account = AccountItem.objects(
                origin_oj='sdut',
                username=model.sdut.user_id
            ).first()
            if not account:
                account = AccountItem.objects.create(
                    origin_oj='sdut',
                    username=model.sdut.user_id
                )
            account_crawler.delay(
                origin_oj='sdut',
                username=model.sdut.user_id
            )
            model.sdut.account = account
        else:
            model.sdut = Account(user_id='')

        if model.hduoj.user_id:
            account = AccountItem.objects(
                origin_oj='hduoj',
                username=model.hduoj.user_id
            ).first()
            if not account:
                account = AccountItem.objects.create(
                    origin_oj='hduoj',
                    username=model.hduoj.user_id
                )
            account_crawler.delay(
                origin_oj='hduoj',
                username=model.hduoj.user_id
            )
            model.hduoj.account = account
        else:
            model.hduoj = Account(user_id='')

        if model.poj.user_id:
            account = AccountItem.objects(
                origin_oj='poj',
                username=model.poj.user_id
            ).first()
            if not account:
                account = AccountItem.objects.create(
                    origin_oj='poj',
                    username=model.poj.user_id
                )
            account_crawler.delay(
                origin_oj='poj',
                username=model.poj.user_id
            )
            model.poj.account = account
        else:
            model.poj = Account(user_id='')