Beispiel #1
0
from users.models import User

from utils.user_info import has_contest_ownership
from utils.user_info import validate_user
from utils.log_info import get_logger
from utils import user_info

from django.http import Http404
from django.contrib.auth.hashers import make_password
from django.db.models import Q

import csv
from django.http import HttpResponse

logger = get_logger()


def get_running_contests():
    now = datetime.datetime.now()
    contests = Contest.objects.filter(is_homework=False,
                                      start_time__lte=now,
                                      end_time__gte=now)
    return contests


def get_contestant_list(contest):
    return Contestant.objects.filter(contest=contest)


def get_contestant(contest):
Beispiel #2
0
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
"""
from django import forms
from threading import Thread

from users.models import User
from problem.models import Problem, Submission, SubmissionDetail, Testcase
from utils import log_info, user_info, config_info, file_info

logger = log_info.get_logger()


class CodeSubmitForm(forms.Form):
    SUBMIT_PATH = config_info.get_config('path', 'submission_code_path')
    LANGUAGE_CHOICE = tuple(config_info.get_config_items('compiler_option'))
    BACKEND_VERSION = config_info.get_config('system_version', 'backend')
    GCC_VERSION = config_info.get_config('system_version', 'gcc')
    GPP_VERSION = config_info.get_config('system_version', 'gpp')

    pid = forms.CharField(label='Problem ID')
    language = forms.ChoiceField(choices=LANGUAGE_CHOICE, initial=Submission.CPP,
                                 help_text="Backend: %s<br>gcc: %s<br>g++: %s"
                                 % (BACKEND_VERSION, GCC_VERSION, GPP_VERSION))
    code = forms.CharField(max_length=40 * 1024,
                           widget=forms.Textarea(attrs={'id': 'code_editor'}))
Beispiel #3
0
from django.core.urlresolvers import reverse
from django.core.mail import EmailMultiAlternatives
from django.template.loader import render_to_string

from contest.models import Contest
from contest.models import Contestant
from problem.models import Submission, SubmissionDetail
from users.models import User, UserProfile, Notification
from utils.log_info import get_logger
from utils.config_info import get_config
from django.conf import settings

EMAIL_HOST_USER = get_config('email', 'user')

logger = get_logger()

def has_contest_ownership(curr_user, curr_contest):
    curr_user = validate_user(curr_user)

    if curr_user == curr_contest.owner:
        return True

    contest_coowners = curr_contest.coowner.all()
    return curr_user in contest_coowners




def has_group_ownership(curr_user, curr_group):
    curr_user = validate_user(curr_user)
Beispiel #4
0
from utils.render_helper import render_index
from utils.user_info import validate_user, has_problem_auth, has_problem_ownership
from users.models import User
from problem.models import Problem, Tag, Testcase
from problem.forms import ProblemForm, TagForm, TagFilter
from utils import log_info, config_info
from problem.problem_info import *
from utils import log_info
from utils.render_helper import render_index, get_current_page
from utils.rejudge import rejudge_problem

import os
import json

logger = log_info.get_logger()

# Create your views here.
def problem(request):
    user = validate_user(request.user)
    can_add_problem = user.has_subjudge_auth()
    filter_type = request.GET.get('filter')
    tag_filter = TagFilter(request.GET)
    if tag_filter.is_valid():
        tag_name = tag_filter.cleaned_data['tag_name']
        if filter_type == 'mine':
            problem_list = get_owner_problem_list(user)
            mine = True
        else:
            problem_list = get_problem_list(user)
            mine = False