Ejemplo n.º 1
0
def get_params(request_dict, user):
    params = dict()
    params['lesson_title'] = request_dict['lesson_title'].strip()
    if 'lesson_group_id[]' in request_dict:
        params['lesson_groups'] = Group.objects.filter(
            id__in=dict(request_dict)['lesson_group_id[]'])
    params['period'] = request_dict['period_type'].strip()
    geoid = request_dict['geoid']
    params['date_starttime'] = get_datetime_with_tz(
        request_dict['lesson_date_start'], geoid, user)
    params['date_endtime'] = get_datetime_with_tz(
        request_dict['lesson_date_finish'], geoid, user)
    if params['period'] != 'Once':
        params['date_end'] = get_datetime_with_tz(request_dict['date_end'],
                                                  geoid, user)
        week_days = list(map(int, (dict(request_dict)['days[]'])))
        params['lesson_dates'] = \
            get_lesson_dates(params['date_starttime'], params['date_endtime'], params['date_end'], week_days)
        params['lesson_days'] = ','.join(dict(request_dict)['days[]'])
    else:
        params['date_end'] = params['date_endtime']
        params['lesson_dates'] = [(params['date_starttime'],
                                   params['date_endtime'])]
        params['lesson_days'] = ''

    params['lesson_description'] = request_dict['lesson_text'].strip()
    return params
Ejemplo n.º 2
0
def get_params(request_dict, user):
    params = dict()
    params['lesson_title'] = request_dict['lesson_title'].strip()
    if 'lesson_group_id[]' in request_dict:
        params['lesson_groups'] = Group.objects.filter(id__in=dict(request_dict)['lesson_group_id[]'])
    params['period'] = request_dict['period_type'].strip()
    geoid = request_dict['geoid']
    params['date_starttime'] = get_datetime_with_tz(request_dict['lesson_date_start'], geoid, user)
    params['date_endtime'] = get_datetime_with_tz(request_dict['lesson_date_finish'], geoid, user)
    if params['period'] != 'Once':
        params['date_end'] = get_datetime_with_tz(request_dict['date_end'], geoid, user)
        week_days = list(map(int, (dict(request_dict)['days[]'])))
        params['lesson_dates'] = \
            get_lesson_dates(params['date_starttime'], params['date_endtime'], params['date_end'], week_days)
        params['lesson_days'] = ','.join(dict(request_dict)['days[]'])
    else:
        params['date_end'] = params['date_endtime']
        params['lesson_dates'] = [(params['date_starttime'], params['date_endtime'])]
        params['lesson_days'] = ''

    params['lesson_description'] = request_dict['lesson_text'].strip()
    return params
Ejemplo n.º 3
0
def get_task_params(request, check_score_after_deadline=False):
    user = request.user
    task_title = request.POST.get('task_title', '').strip()
    task_short_title = request.POST.get('task_short_title', task_title).strip()
    max_score = int(request.POST.get('max_score') or 0)
    task_groups = Group.objects.filter(
        id__in=dict(request.POST)['task_group_id[]'])

    parent_id = request.POST.get('parent_id')
    parent = None
    if parent_id and parent_id != 'null':
        parent = get_object_or_404(Task, id=int(parent_id))

    children = request.POST.getlist('children[]') or None
    if children == 'null':
        children = None

    task_deadline = request.POST.get('deadline') or None
    if task_deadline:
        task_deadline = get_datetime_with_tz(task_deadline,
                                             request.POST.get('geoid', None),
                                             user)

    score_after_deadline = True
    if check_score_after_deadline:
        score_after_deadline = 'score_after_deadline' in request.POST

    changed_task = 'changed_task' in request.POST
    task_type = request.POST.get('task_type', Task().TYPE_FULL).strip()

    contest_integrated = False
    contest_id = 0
    problem_id = None
    simple_task_types = [Task().TYPE_SIMPLE, Task().TYPE_MATERIAL]
    if 'contest_integrated' in request.POST and task_type not in simple_task_types:
        contest_integrated = True
        contest_id = int(request.POST['contest_id'])
        problem_id = request.POST['problem_id'].strip()

    rb_integrated = 'rb_integrated' in request.POST and task_type not in simple_task_types
    one_file_upload = 'one_file_upload' in request.POST and rb_integrated
    accepted_after_contest_ok = 'accepted_after_contest_ok' in request.POST

    hidden_task = 'hidden_task' in request.POST
    task_text = request.POST.get('task_text', '').strip()

    return {
        'attrs': {
            'updated_by': user,
            'title': task_title,
            'short_title': task_short_title,
            'score_max': max_score,
            'parent_task': parent,
            'deadline_time': task_deadline,
            'send_to_users': changed_task,
            'sended_notify': not changed_task,
            'type': task_type,
            'contest_integrated': contest_integrated,
            'contest_id': contest_id,
            'problem_id': problem_id,
            'rb_integrated': rb_integrated,
            'one_file_upload': one_file_upload,
            'accepted_after_contest_ok': accepted_after_contest_ok,
            'score_after_deadline': score_after_deadline,
            'is_hidden': hidden_task,
            'task_text': task_text
        },
        'children': children,
        'groups': task_groups
    }
Ejemplo n.º 4
0
def get_task_params(request, check_score_after_deadline=False):
    user = request.user
    task_title = request.POST.get('task_title', '').strip()
    task_short_title = request.POST.get('task_short_title', task_title).strip()
    max_score = int(request.POST.get('max_score') or 0)
    task_groups = Group.objects.filter(id__in=dict(request.POST)['task_group_id[]'])

    parent_id = request.POST.get('parent_id')
    parent = None
    if parent_id and parent_id != 'null':
        parent = get_object_or_404(Task, id=int(parent_id))

    children = request.POST.getlist('children[]') or None
    if children == 'null':
        children = None

    task_deadline = request.POST.get('deadline') or None
    if task_deadline:
        task_deadline = get_datetime_with_tz(task_deadline, request.POST.get('geoid', None), user)

    score_after_deadline = True
    if check_score_after_deadline:
        score_after_deadline = 'score_after_deadline' in request.POST

    changed_task = 'changed_task' in request.POST
    task_type = request.POST.get('task_type', Task().TYPE_FULL).strip()

    contest_integrated = False
    contest_id = 0
    problem_id = None
    simple_task_types = [Task().TYPE_SIMPLE, Task().TYPE_MATERIAL]
    if 'contest_integrated' in request.POST and task_type not in simple_task_types:
        contest_integrated = True
        contest_id = int(request.POST['contest_id'])
        problem_id = request.POST['problem_id'].strip()

    rb_integrated = 'rb_integrated' in request.POST and task_type not in simple_task_types
    one_file_upload = 'one_file_upload' in request.POST and rb_integrated
    accepted_after_contest_ok = 'accepted_after_contest_ok' in request.POST

    hidden_task = 'hidden_task' in request.POST
    task_text = request.POST.get('task_text', '').strip()

    nb_assignment_name = request.POST.get('nb_assignment_name')

    return {'attrs': {
        'updated_by': user,
        'title': task_title,
        'short_title': task_short_title,
        'score_max': max_score,
        'parent_task': parent,
        'deadline_time': task_deadline,
        'send_to_users': changed_task,
        'sended_notify': not changed_task,
        'type': task_type,
        'contest_integrated': contest_integrated,
        'contest_id': contest_id,
        'problem_id': problem_id,
        'rb_integrated': rb_integrated,
        'one_file_upload': one_file_upload,
        'accepted_after_contest_ok': accepted_after_contest_ok,
        'score_after_deadline': score_after_deadline,
        'is_hidden': hidden_task,
        'task_text': task_text,
        'nb_assignment_name': nb_assignment_name,
    },
        'children': children,
        'groups': task_groups
    }