当前位置: 首页>>代码示例>>Python>>正文


Python Task.get_title方法代码示例

本文整理汇总了Python中tasks.models.Task.get_title方法的典型用法代码示例。如果您正苦于以下问题:Python Task.get_title方法的具体用法?Python Task.get_title怎么用?Python Task.get_title使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在tasks.models.Task的用法示例。


在下文中一共展示了Task.get_title方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: task_create_or_edit

# 需要导入模块: from tasks.models import Task [as 别名]
# 或者: from tasks.models.Task import get_title [as 别名]
def task_create_or_edit(request, course, task_id=None):
    params = get_task_params(request, course.issue_status_system.has_accepted_after_deadline())
    lang = request.user.get_profile().language

    changed_score_after_deadline = False
    if task_id:
        task = get_object_or_404(Task, id=task_id)
        task_text = task.is_text_json()
        if task_text:
            task_title = json.loads(task.title, strict=False)
            task_title[lang] = params['attrs']['title']
            task_text[lang] = params['attrs']['task_text']
            params['attrs']['title'] = json.dumps(task_title, ensure_ascii=False)
            params['attrs']['task_text'] = json.dumps(task_text, ensure_ascii=False)
        changed_score_after_deadline = task.score_after_deadline != params['attrs']['score_after_deadline']
        params['attrs']['nb_assignment_name'] = task.nb_assignment_name
    else:
        task = Task()
        task.course = course

    for attr_name, attr_value in params['attrs'].items():
        setattr(task, attr_name, attr_value)

    if task.parent_task:
        if task.parent_task.is_hidden:
            task.is_hidden = True
    task.save()

    for subtask in Task.objects.filter(parent_task=task):
        subtask.is_hidden = task.is_hidden
        subtask.save()

    children = params['children']
    for course_task in Task.objects.filter(course=course):
        if children and course_task.id in map(int, children):
            course_task.parent_task = task
            course_task.save()
        elif course_task.parent_task == task:
            course_task.parent_task = None
            course_task.save()

    task_groups = params['groups']
    task.groups = task_groups
    task.set_position_in_new_group(task_groups)

    if task_id and changed_score_after_deadline and task.parent_task:
        student_ids = User.objects.filter(group__in=task_groups).values_list('id', flat=True)
        for student_id in student_ids:
            parent_issue, created = Issue.objects.get_or_create(task_id=task.parent_task.id, student_id=student_id)
            total_mark = Issue.objects \
                .filter(task=task, student_id=student_id) \
                .exclude(task__is_hiddne=True) \
                .exclude(
                    task__score_after_deadline=False,
                    status_field__tag=IssueStatus.STATUS_ACCEPTED_AFTER_DEADLINE) \
                .aggregate(Sum('mark'))['mark__sum'] or 0
            if task.score_after_deadline:
                parent_issue.mark += total_mark
            else:
                parent_issue.mark -= total_mark
            parent_issue.set_status_seminar()

    if task.type == task.TYPE_SEMINAR:
        student_ids = User.objects.filter(group__in=task_groups).values_list('id', flat=True)
        for student_id in student_ids:
            issue, created = Issue.objects.get_or_create(task_id=task.id, student_id=student_id)
            issue.mark = Issue.objects \
                .filter(task__parent_task=task, student_id=student_id) \
                .exclude(task__is_hidden=True) \
                .exclude(
                    task__score_after_deadline=False,
                    status_field__tag=IssueStatus.STATUS_ACCEPTED_AFTER_DEADLINE) \
                .aggregate(Sum('mark'))['mark__sum'] or 0
            issue.set_status_seminar()

    task.save()
    reversion.set_user(request.user)
    if task_id:
        reversion.set_comment("Edit task")
    else:
        reversion.set_comment("Create task")

    return HttpResponse(json.dumps({'page_title': task.get_title(lang) + ' | ' + course.name + ' | ' + str(course.year),
                                    'redirect_page': '/task/edit/' + str(task.id) if not task_id else None}),
                        content_type="application/json")
开发者ID:znick,项目名称:anytask,代码行数:87,代码来源:views.py


注:本文中的tasks.models.Task.get_title方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。