コード例 #1
0
ファイル: content.py プロジェクト: alexislitool/courseflow
def set_up_flow_session_page_data(repo, flow_session,
        course_identifier, flow_desc, commit_sha):
    from course.models import FlowPageData

    data = None

    ordinal = 0
    for grp in flow_desc.groups:
        for page_desc in grp.pages:
            data = FlowPageData()
            data.flow_session = flow_session
            data.ordinal = ordinal
            data.is_last = False
            data.group_id = grp.id
            data.page_id = page_desc.id

            page = instantiate_flow_page(
                    "course '%s', flow '%s', page '%s/%s'"
                    % (course_identifier, flow_session.flow_id,
                        grp.id, page_desc.id),
                    repo, page_desc, commit_sha)
            data.data = page.make_page_data()
            data.save()

            ordinal += 1

    return ordinal
コード例 #2
0
        def create_fpd(new_page_desc):
            page = instantiate_page(new_page_desc)

            data = page.make_page_data()
            return FlowPageData(flow_session=flow_session,
                                ordinal=None,
                                page_type=new_page_desc.type,
                                group_id=grp.id,
                                page_id=new_page_desc.id,
                                data=data,
                                title=page.title(pctx, data))
コード例 #3
0
ファイル: content.py プロジェクト: beesor/relate
        def create_fpd(new_page_desc):
            page = instantiate_flow_page(
                "course '%s', flow '%s', page '%s/%s'" %
                (course_identifier, flow_session.flow_id, grp.id,
                 new_page_desc.id), repo, new_page_desc, commit_sha)

            return FlowPageData(flow_session=flow_session,
                                group_id=grp.id,
                                page_id=new_page_desc.id,
                                ordinal=None,
                                data=page.make_page_data())
コード例 #4
0
ファイル: content.py プロジェクト: mattwala/relate
        def create_fpd(new_page_desc):
            page = instantiate_page(new_page_desc)

            data = page.make_page_data()
            return FlowPageData(
                    flow_session=flow_session,
                    ordinal=None,
                    page_type=new_page_desc.type,
                    group_id=grp.id,
                    page_id=new_page_desc.id,
                    data=data,
                    title=page.title(pctx, data))
コード例 #5
0
ファイル: content.py プロジェクト: beesor/relate
        def create_fpd(new_page_desc):
            page = instantiate_flow_page(
                "course '%s', flow '%s', page '%s/%s'" %
                (course_identifier, flow_session.flow_id, grp.id,
                 new_page_desc.id), repo, new_page_desc, commit_sha)

            return FlowPageData(
                flow_session=flow_session,
                group_id=grp.id,
                page_id=new_page_desc.id,
                ordinal=None,
                data=page.make_page_data())
コード例 #6
0
def adjust_flow_session_page_data(repo, flow_session, course_identifier,
                                  flow_desc, commit_sha):
    from course.models import FlowPageData

    id_to_existing_page = {
        (data.group_id, data.page_id): data
        for data in FlowPageData.objects.filter(flow_session=flow_session)
    }

    data = None

    ordinal = 0
    for grp in flow_desc.groups:
        for page_desc in grp.pages:
            key = (grp.id, page_desc.id)

            if key in id_to_existing_page:
                data = id_to_existing_page.pop(key)
                if data.ordinal != ordinal:
                    data.ordinal = ordinal
                    data.save()
            else:
                data = FlowPageData()
                data.flow_session = flow_session
                data.ordinal = ordinal
                data.group_id = grp.id
                data.page_id = page_desc.id

                page = instantiate_flow_page(
                    "course '%s', flow '%s', page '%s/%s'" %
                    (course_identifier, flow_session.flow_id, grp.id,
                     page_desc.id), repo, page_desc, commit_sha)
                data.data = page.make_page_data()
                data.save()

            ordinal += 1

    for data in id_to_existing_page.values():
        if data.ordinal is not None:
            data.ordinal = None
            data.save()

    if flow_session.page_count != ordinal:
        flow_session.page_count = ordinal
        flow_session.save()