Skip to content
Snippets Groups Projects
Commit ebfa238d authored by Todd Dembrey's avatar Todd Dembrey
Browse files

Add Rfp models

parent 2497ab3d
No related branches found
No related tags found
No related merge requests found
......@@ -42,7 +42,7 @@ class ApplicationBase(EmailForm, WorkflowStreamForm): # type: ignore
def detail(self):
# The location to find out more information
return self.fund_public.first()
return self.application_public.first()
@property
def open_round(self):
......
# Generated by Django 2.0.2 on 2018-08-03 09:31
from django.db import migrations, models
import django.db.models.deletion
import modelcluster.fields
import opentech.public.funds.blocks
import wagtail.core.blocks
import wagtail.core.fields
import wagtail.documents.blocks
import wagtail.embeds.blocks
import wagtail.images.blocks
import wagtail.snippets.blocks
class Migration(migrations.Migration):
dependencies = [
('images', '0001_initial'),
('wagtailcore', '0040_page_draft_title'),
('public_funds', '0006_fundindex_introduction'),
]
operations = [
migrations.RenameModel(
old_name='FundPageRelatedPage',
new_name='BaseApplicationRelatedPage',
),
migrations.RenameModel(
old_name='FundPage',
new_name='BaseApplicationPage',
),
migrations.RenameField(
model_name='baseapplicationpage',
old_name='fund_type',
new_name='application_type',
),
migrations.AlterField(
model_name='baseapplicationpage',
name='application_type',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='application_public', to='wagtailcore.Page'),
),
migrations.CreateModel(
name='FundPage',
fields=[
('baseapplicationpage_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='public_funds.BaseApplicationPage')),
],
options={
'abstract': False,
},
bases=('public_funds.baseapplicationpage',),
),
migrations.CreateModel(
name='RFPPage',
fields=[
('baseapplicationpage_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='public_funds.BaseApplicationPage')),
],
options={
'abstract': False,
},
bases=('public_funds.baseapplicationpage',),
),
]
# Generated by Django 2.0.2 on 2018-08-03 09:37
from django.db import migrations
def recreate_objects(apps, schema_editor):
# We removed the old definition of these objects, need to create
# a new object with a pointer back to that object, the underlying
# data structure was unaffected
ContentType = apps.get_model('contenttypes.ContentType')
for model_name, new_model_name in [
('FundPage', 'BaseApplicationPage'),
]:
content_type, _ = ContentType.objects.get_or_create(model=model_name, app_label='public_funds')
model = apps.get_model('public_funds', model_name)
new_model = apps.get_model('public_funds', new_model_name)
for obj in new_model.objects.all():
kwargs = {
f'{new_model_name.lower()}_ptr': obj,
'title': obj.title,
'draft_title': obj.draft_title,
'slug': obj.slug,
'content_type': content_type,
'path': obj.path,
'depth': obj.depth,
'numchild': obj.numchild,
'url_path': obj.url_path,
}
try:
kwargs.update(lead=obj.lead)
except:
pass
new_obj = model(**kwargs)
new_obj.save()
class Migration(migrations.Migration):
dependencies = [
('public_funds', '0007_add_rfp_models_for_public'),
]
operations = [
migrations.RunPython(recreate_objects, migrations.RunPython.noop),
]
......@@ -23,27 +23,28 @@ from opentech.public.utils.models import (
from .blocks import FundBlock, LabBlock
class FundPageRelatedPage(RelatedPage):
source_page = ParentalKey('FundPage', related_name='related_pages')
class BaseApplicationRelatedPage(RelatedPage):
source_page = ParentalKey('BaseApplicationPage', related_name='related_pages')
class FundPage(BasePage):
class BaseApplicationPage(BasePage):
subpage_types = []
parent_page_types = ['FundIndex']
parent_page_types = []
application_type_model = ''
introduction = models.TextField(blank=True)
fund_type = models.ForeignKey(
application_type = models.ForeignKey(
'wagtailcore.Page',
blank=True,
null=True,
on_delete=models.SET_NULL,
related_name='fund_public',
related_name='application_public',
)
body = StreamField(FundBlock())
content_panels = BasePage.content_panels + [
FieldPanel('introduction'),
PageChooserPanel('fund_type', 'funds.FundType'),
StreamFieldPanel('body'),
InlinePanel('related_pages', label="Related pages"),
]
......@@ -57,6 +58,18 @@ class FundPage(BasePage):
return self.fund_type.specific.next_deadline()
class FundPage(BaseApplicationPage):
parent_page_types = ['FundIndex']
content_panels = BaseApplicationPage.content_panels[:]
content_panels.insert(-2, PageChooserPanel('application_type', 'funds.FundType'))
class RFPPage(BaseApplicationPage):
parent_page_types = ['LabPage']
content_panels = BaseApplicationPage.content_panels[:]
content_panels.insert(-2, PageChooserPanel('application_type', 'funds.RequestForPartners'))
class FundIndex(BasePage):
subpage_types = ['FundPage']
parent_page_types = ['home.HomePage']
......@@ -90,7 +103,7 @@ class LabPageRelatedPage(RelatedPage):
class LabPage(BasePage):
subpage_types = []
subpage_types = ['RFPPage']
parent_page_types = ['LabIndex']
introduction = models.TextField(blank=True)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment