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):
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'}))
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)
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