def add_jury_member_pages(apps, schema_editor):
    HomePage = apps.get_model('home.HomePage')
    Image = get_image_model(apps)
    Collection = apps.get_model('wagtailcore.Collection')
    IndexPage = apps.get_model('cpm_generic.IndexPage')
    JuryMemberPage = apps.get_model("results.JuryMemberPage")

    index_page_ct = get_content_type(apps, 'cpm_generic', 'indexpage')
    jury_member_page_ct = get_content_type(apps, 'results', 'jurymemberpage')
    collection_id = Collection.objects.filter(depth=1)[0]

    homepage = HomePage.objects.get(slug='home')
    juryindex_page = add_subpage(parent=homepage,
                                 model=IndexPage,
                                 content_type=index_page_ct,
                                 **_get_juryindex_kw())

    for item in _get_data():
        photo = Image(title=item['title'], collection=collection_id)
        with open(_get_photo_path(item['photo']), 'rb') as photo_file:
            photo.file.save(name=item['photo'], content=File(photo_file))
            photo.save()

        add_subpage(parent=juryindex_page,
                    model=JuryMemberPage,
                    photo=photo,
                    content_type=jury_member_page_ct,
                    **_get_jurymember_kw(item))
def add_jury_member_pages(apps, schema_editor):
    HomePage = apps.get_model('home.HomePage')
    Image = get_image_model(apps)
    Collection = apps.get_model('wagtailcore.Collection')
    IndexPage = apps.get_model('cpm_generic.IndexPage')
    JuryMemberPage = apps.get_model("results.JuryMemberPage")

    index_page_ct = get_content_type(apps, 'cpm_generic', 'indexpage')
    jury_member_page_ct = get_content_type(apps, 'results', 'jurymemberpage')
    collection_id = Collection.objects.filter(depth=1)[0]

    homepage = HomePage.objects.get(slug='home')
    juryindex_page = add_subpage(
        parent=homepage,
        model=IndexPage,
        content_type=index_page_ct,
        **_get_juryindex_kw()
    )

    for item in _get_data():
        photo = Image(title=item['title'], collection=collection_id)
        with open(_get_photo_path(item['photo']), 'rb') as photo_file:
            photo.file.save(name=item['photo'], content=File(photo_file))
            photo.save()

        add_subpage(
            parent=juryindex_page,
            model=JuryMemberPage,
            photo=photo,
            content_type=jury_member_page_ct,
            **_get_jurymember_kw(item)
        )
Beispiel #3
0
def add_jury_member_pages(apps, schema_editor):
    Image = get_image_model(apps)
    IndexPage = apps.get_model('cpm_generic.IndexPage')
    JuryMemberPage = apps.get_model("results.JuryMemberPage")
    Collection = apps.get_model('wagtailcore.Collection')

    jury_member_page_ct = get_content_type(apps, 'results', 'jurymemberpage')

    collection_id = Collection.objects.filter(depth=1)[0]
    juryindex_page = IndexPage.objects.get(slug='jury')

    for item in get_jury_data():
        photo = Image(title=item['title'], collection=collection_id)

        photo_file = os.path.join(MIGRATION_DIR, item['photo'])
        photo.file.save(name=item['title'] + os.extsep + item['photo_ext'],
                        content=File(open(photo_file, 'rb')))
        photo.save()

        slug = slugify(item['title'])
        add_subpage(
            parent=juryindex_page,
            model=JuryMemberPage,
            title=item['title'],
            slug=slug,
            name_en=item['name_en'],
            name_be=item['name_be'],
            name_ru=item['name_ru'],
            info_en=item['info_en'],
            info_be=item['info_be'],
            info_ru=item['info_ru'],
            country=item['country'],
            photo=photo,
            content_type=jury_member_page_ct,
        )
def create_partner_pages(apps):
    parnerindex_page = create_partner_index_page(apps)

    ParnerPage = apps.get_model("results.PartnerPage")
    partner_page_ct = get_content_type(apps, 'results', 'partnerpage')
    pages = []
    for item in get_partners_2012_data():
        image = get_parner_image(apps, item)
        image.save()

        slug = slugify(item['id'])
        print slug
        title = item['name_en']
        page = add_subpage(
            parent=parnerindex_page,
            model=ParnerPage,
            title=title,
            slug=slug,
            name_en=item['name_en'],
            name_be=item['name_be'],
            name_ru=item['name_ru'],
            link=item['link'],
            image=image,
            content_type=partner_page_ct,
        )

        pages.append(page)

    return pages
def test_add_subpage():
    from django.apps.registry import apps

    from cpm_generic.models import IndexPage
    from cpm_generic.migration_utils import add_subpage, get_content_type
    from home.models import HomePage

    index_page_ct = get_content_type(apps, 'cpm_generic', 'indexpage')

    homepage = HomePage.objects.get(slug='home')
    indexpage = add_subpage(
        parent=homepage,
        model=IndexPage,
        title='title',
        slug='slug',
        caption_en='caption_en',
        caption_be='caption_be',
        caption_ru='caption_ru',
        description_en='description_en',
        description_be='description_en',
        description_ru='description_ru',
        content_type=index_page_ct,
    )

    assert indexpage.caption_en == 'caption_en'
    assert indexpage.get_parent().path == homepage.path
Beispiel #6
0
def _add_year_results(apps, page_kwargs, jury_members):
    HomePage = apps.get_model('home.HomePage')
    JuryMemberPage = apps.get_model("results.JuryMemberPage")
    RelatedJuryMember = apps.get_model('results.ResultsRelatedJuryMember')
    ResultsPage = apps.get_model('results.ResultsPage')

    results_page_ct = get_content_type(apps, 'results', 'resultspage')

    homepage = HomePage.objects.get(slug='home')
    results12_page = add_subpage(
        homepage,
        ResultsPage,
        content_type=results_page_ct,
        **page_kwargs
    )

    RelatedJuryMember.objects.bulk_create(
        [
            RelatedJuryMember(
                sort_order=index,
                jury_member=JuryMemberPage.objects.get(title=title),
                page=results12_page,
            ) for index, title in enumerate(jury_members)
        ]
    )
def create_partner_pages(apps):
    parnerindex_page = create_partner_index_page(apps)

    ParnerPage = apps.get_model("results.PartnerPage")
    partner_page_ct = get_content_type(apps, 'results', 'partnerpage')
    pages = []
    for item in get_partners_2012_data():
        image = get_parner_image(apps, item)
        image.save()

        slug = slugify(item['id'])
        title = item['name_en']
        page = add_subpage(
            parent=parnerindex_page,
            model=ParnerPage,
            title=title,
            slug=slug,
            name_en=item['name_en'],
            name_be=item['name_be'],
            name_ru=item['name_ru'],
            link=item['link'],
            image=image,
            content_type=partner_page_ct,
        )

        pages.append(page)

    return pages
Beispiel #8
0
def add_timetable_2017(apps, schema_editor):
    FilmProgram = apps.get_model('events.FilmProgram')
    TimeTable = apps.get_model('events.TimeTable')
    TimeTableEvent = apps.get_model('events.TimeTableEvent')
    Venue = apps.get_model('events.Venue')

    timetable_ct = get_content_type(apps, 'events', 'timetable')

    HomePage = apps.get_model('home.HomePage')
    homepage = HomePage.objects.get(slug='home')

    if TimeTable.objects.filter(title=TIMETABLE_TITLE).exists():
        return

    timetable = add_subpage(
        parent=homepage,
        model=TimeTable,
        title=TIMETABLE_TITLE,
        content_type=timetable_ct,
        caption_en='Timetable',
        caption_be='Расклад',
        caption_ru='Расписание',
        slug='2017-timetable',
        live=True,
    )
    for item in _get_data('events.json'):
        TimeTableEvent(
            page=timetable,
            program=FilmProgram.objects.get(title=item['program']),
            venue=Venue.objects.get(name_en=item['venue']),
            starts_at=parse_datetime(item['starts_at']),
        ).save()
Beispiel #9
0
def add_filmprograms_2017(apps, schema_editor):
    FilmProgram = apps.get_model('events.FilmProgram')
    filmprogram_ct = get_content_type(apps, 'events', 'filmprogram')

    HomePage = apps.get_model('home.HomePage')
    homepage = HomePage.objects.get(slug='home')

    for item in _get_data('filmprograms.json'):
        if not FilmProgram.objects.filter(title=item['title']).exists():
            add_subpage(
                parent=homepage,
                model=FilmProgram,
                content_type=filmprogram_ct,
                live=True,
                **item
            )
def create_film_pages(apps):
    filmsindex_page = create_film_index_page(apps)

    FilmPage = apps.get_model("results.FilmPage")
    film_page_ct = get_content_type(apps, 'results', 'filmpage')
    nominations = get_nominations()
    pages = []
    for item in get_films_2012_data():
        frame = get_film_frame(apps, item)
        frame.save()

        slug = slugify(item['film_title_en'])
        print slug
        title = item['film_title_en']
        page = add_subpage(
            parent=filmsindex_page,
            model=FilmPage,
            title=title,
            slug=slug,
            film_title_en=item['film_title_en'],
            film_title_ru=item['film_title_ru'],
            film_title_be=item['film_title_be'],
            director_en=item['director_en'],
            director_ru=item['director_ru'],
            director_be=item['director_be'],
            genre_en=item['genre_en'],
            genre_ru=item['genre_ru'],
            genre_be=item['genre_be'],
            synopsis_en=item['synopsis_en'],
            synopsis_ru=item['synopsis_ru'],
            synopsis_be=item['synopsis_be'],
            duration_en=item['duration_en'],
            duration_ru=item['duration_ru'],
            duration_be=item['duration_be'],
            city_en=item['city_en'],
            city_ru=item['city_ru'],
            city_be=item['city_be'],
            year=item['year'],
            country=item['country'],

            frame=frame,
            content_type=film_page_ct,
        )
        nomination = next(
            (n for n in nominations if slugify(n['film']) == slug),
            {
                'nomination_en': 'None'
            }
        )

        pages.append({
            'p': page,
            'n': nomination,
        })

    return pages
def create_film_index_page(apps):
    index_page_ct = get_content_type(apps, 'cpm_generic', 'indexpage')

    IndexPage = apps.get_model('cpm_generic.IndexPage')
    HomePage = apps.get_model('home.HomePage')
    homepage = HomePage.objects.get(slug='home')
    filmsindex_page = add_subpage(parent=homepage,
                                  model=IndexPage,
                                  content_type=index_page_ct,
                                  **_get_filmsindex_kw())

    return filmsindex_page
def create_film_pages(apps):
    filmsindex_page = create_film_index_page(apps)

    FilmPage = apps.get_model("results.FilmPage")
    film_page_ct = get_content_type(apps, 'results', 'filmpage')
    nominations = get_nominations()
    pages = []
    for item in get_films_2012_data():
        frame = get_film_frame(apps, item)
        frame.save()

        slug = slugify(item['film_title_en'])
        title = item['film_title_en']
        page = add_subpage(
            parent=filmsindex_page,
            model=FilmPage,
            title=title,
            slug=slug,
            film_title_en=item['film_title_en'],
            film_title_ru=item['film_title_ru'],
            film_title_be=item['film_title_be'],
            director_en=item['director_en'],
            director_ru=item['director_ru'],
            director_be=item['director_be'],
            genre_en=item['genre_en'],
            genre_ru=item['genre_ru'],
            genre_be=item['genre_be'],
            synopsis_en=item['synopsis_en'],
            synopsis_ru=item['synopsis_ru'],
            synopsis_be=item['synopsis_be'],
            duration_en=item['duration_en'],
            duration_ru=item['duration_ru'],
            duration_be=item['duration_be'],
            city_en=item['city_en'],
            city_ru=item['city_ru'],
            city_be=item['city_be'],
            year=item['year'],
            country=item['country'],
            frame=frame,
            content_type=film_page_ct,
        )
        nomination = next(
            (n for n in nominations if slugify(n['film']) == slug),
            {'nomination_en': 'None'})

        pages.append({
            'p': page,
            'n': nomination,
        })

    return pages
def create_partner_index_page(apps):
    index_page_ct = get_content_type(apps, 'cpm_generic', 'indexpage')

    IndexPage = apps.get_model('cpm_generic.IndexPage')
    HomePage = apps.get_model('home.HomePage')
    homepage = HomePage.objects.get(slug='home')
    partnerindex_page = add_subpage(
        parent=homepage,
        model=IndexPage,
        content_type=index_page_ct,
        **_get_partnerindex_kw()
    )

    return partnerindex_page
def add_jury_member_pages(apps, schema_editor):
    Image = get_image_model(apps)
    IndexPage = apps.get_model('cpm_generic.IndexPage')
    JuryMemberPage = apps.get_model("results.JuryMemberPage")
    Collection = apps.get_model('wagtailcore.Collection')

    jury_member_page_ct = get_content_type(apps, 'results', 'jurymemberpage')

    collection_id = Collection.objects.filter(depth=1)[0]
    juryindex_page = IndexPage.objects.get(slug='jury')

    for item in get_jury_data():
        photo = Image(title=item['title'], collection=collection_id)

        photo_file = os.path.join(MIGRATION_DIR, item['photo'])
        photo.file.save(
            name=item['title'] + os.extsep + item['photo_ext'],
            content=File(open(photo_file, 'rb'))
        )
        photo.save()

        slug = slugify(item['title'])
        add_subpage(
            parent=juryindex_page,
            model=JuryMemberPage,
            title=item['title'],
            slug=slug,
            name_en=item['name_en'],
            name_be=item['name_be'],
            name_ru=item['name_ru'],
            info_en=item['info_en'],
            info_be=item['info_be'],
            info_ru=item['info_ru'],
            country=item['country'],
            photo=photo,
            content_type=jury_member_page_ct,
        )
def add_partners_page(apps, schema_editor):
    HomePage = apps.get_model('home.HomePage')
    PartnersPage = apps.get_model('partners.PartnersPage')
    Season = apps.get_model('cpm_data.Season')

    partners_page_ct = get_content_type(apps, 'partners', 'partnerspage')

    homepage = HomePage.objects.get(slug='home')
    season = Season.objects.get(name_en='2017')

    add_subpage(
        homepage,
        PartnersPage,
        content_type=partners_page_ct,
        title=u'CPM Partners',
        slug='partners',
        name_en=u'Partners',
        name_be=u'Партнёры',
        name_ru=u'Партнеры',
        entry_en=u'<i>Cinema Perpetuum Mobile</i> is a non-profit, independent project which keeps on expenses and aspirations of the organizers. At the same time international nature of the event, cultural resonance provides fertile ground for collaboration with business and public organizations.',  # noqa:E501
        entry_be=u'<i>Cinema Perpetuum Mobile</i> - некамерцыйны, незалежны праект, які трымаецца на імкненнях і сродках арганізатараў. У той жа час чакаемы культурны рэзананс падзеі, яе міжнародны характар, актыўныя зацікаўленнасці, ствараюць выдатную глебу для супрацоўніцтва з камерцыйнымі і грамадскімі ўстановамі.',  # noqa:E501
        entry_ru=u'<i>Cinema Perpetuum Mobile</i> - некоммерческий, независимый проект, который держится на устремлениях и расходах организаторов. В то же время международный характер события, его культурный резонанс, заинтересованности, создают благоприятную почву для сотрудничества с коммерческими и общественными организациями.',  # noqa:E501
        season=season
    )