Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

created individual member page + improved existing page structure #27

Merged
merged 1 commit into from
Jun 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
# Generated by Django 4.2.7 on 2024-06-04 23:15

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('impact_areas', '0013_individualimpactareapage_external_icon_and_more'),
]

operations = [
migrations.RemoveField(
model_name='individualimpactareapage',
name='black_dogear_box_link_text',
),
migrations.RemoveField(
model_name='individualimpactareapage',
name='black_dogear_box_link_url',
),
migrations.RemoveField(
model_name='individualimpactareapage',
name='black_dogear_box_title',
),
migrations.RemoveField(
model_name='individualimpactareapage',
name='explore_impact_areas_text',
),
migrations.RemoveField(
model_name='individualimpactareapage',
name='load_more_projects_text',
),
migrations.RemoveField(
model_name='individualimpactareapage',
name='projects_title',
),
migrations.RemoveField(
model_name='individualimpactareapage',
name='red_dogear_box_link_text',
),
migrations.RemoveField(
model_name='individualimpactareapage',
name='red_dogear_box_link_url',
),
migrations.RemoveField(
model_name='individualimpactareapage',
name='red_dogear_box_title',
),
migrations.RemoveField(
model_name='individualimpactareapage',
name='use_cases_title',
),
migrations.RemoveField(
model_name='individualimpactareapage',
name='view_all_projects_link',
),
migrations.RemoveField(
model_name='individualimpactareapage',
name='view_all_projects_text',
),
migrations.AddField(
model_name='impactareaspage',
name='black_dogear_box_link_text',
field=models.CharField(default='Get Involved with HOT'),
),
migrations.AddField(
model_name='impactareaspage',
name='black_dogear_box_link_url',
field=models.URLField(blank=True),
),
migrations.AddField(
model_name='impactareaspage',
name='black_dogear_box_title',
field=models.CharField(default='Check many opportunities to get involved with HOT!'),
),
migrations.AddField(
model_name='impactareaspage',
name='explore_impact_areas_text',
field=models.CharField(default='Explore Other Impact Areas'),
),
migrations.AddField(
model_name='impactareaspage',
name='load_more_projects_text',
field=models.CharField(default='Load More Projects'),
),
migrations.AddField(
model_name='impactareaspage',
name='projects_title',
field=models.CharField(default='Projects'),
),
migrations.AddField(
model_name='impactareaspage',
name='red_dogear_box_link_text',
field=models.CharField(default='View Tools & Resources'),
),
migrations.AddField(
model_name='impactareaspage',
name='red_dogear_box_link_url',
field=models.URLField(blank=True),
),
migrations.AddField(
model_name='impactareaspage',
name='red_dogear_box_title',
field=models.CharField(default='Learn more about Tools & Resources and Data Access'),
),
migrations.AddField(
model_name='impactareaspage',
name='use_cases_title',
field=models.CharField(default='Use Cases'),
),
migrations.AddField(
model_name='impactareaspage',
name='view_all_projects_link',
field=models.URLField(blank=True),
),
migrations.AddField(
model_name='impactareaspage',
name='view_all_projects_text',
field=models.CharField(default='View all projects'),
),
]
78 changes: 45 additions & 33 deletions app/impact_areas/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@ def get_context(self, request, *args, **kwargs):
context['other_impact_areas'] = other_impact_areas
return context

parent_page_type = [
'impact_areas.ImpactAreasPage'
]

header_image = models.ForeignKey(
"wagtailimages.Image",
null=True,
Expand Down Expand Up @@ -71,24 +75,8 @@ def get_context(self, request, *args, **kwargs):
intro = RichTextField(blank=True)
description = RichTextField(blank=True)

use_cases_title = models.CharField(default="Use Cases")
use_cases = StreamField(UseCaseBlock(), use_json_field=True, blank=True, null=True)

projects_title = models.CharField(default="Projects")
view_all_projects_text = models.CharField(default="View all projects")
view_all_projects_link = models.URLField(blank=True)
load_more_projects_text = models.CharField(default="Load More Projects")

explore_impact_areas_text = models.CharField(default="Explore Other Impact Areas")

red_dogear_box_title = models.CharField(blank=True)
red_dogear_box_link_text = models.CharField(blank=True)
red_dogear_box_link_url = models.URLField(blank=True)

black_dogear_box_title = models.CharField(blank=True)
black_dogear_box_link_text = models.CharField(blank=True)
black_dogear_box_link_url = models.URLField(blank=True)

content_panels = Page.content_panels + [
MultiFieldPanel([
FieldPanel('header_image'),
Expand All @@ -101,24 +89,8 @@ def get_context(self, request, *args, **kwargs):
FieldPanel('description'),
], heading="Body"),
MultiFieldPanel([
FieldPanel('use_cases_title'),
FieldPanel('use_cases'),
], heading="Use Cases"),
MultiFieldPanel([
FieldPanel('projects_title'),
FieldPanel('view_all_projects_text'),
FieldPanel('view_all_projects_link'),
FieldPanel('load_more_projects_text'),
], heading="Projects"),
FieldPanel('explore_impact_areas_text'),
MultiFieldPanel([
FieldPanel('red_dogear_box_title'),
FieldPanel('red_dogear_box_link_text'),
FieldPanel('red_dogear_box_link_url'),
FieldPanel('black_dogear_box_title'),
FieldPanel('black_dogear_box_link_text'),
FieldPanel('black_dogear_box_link_url'),
], heading="Dogear Boxes"),
]


Expand All @@ -134,6 +106,8 @@ class ImpactAreaBlock(StreamBlock):


class ImpactAreasPage(Page):
max_count = 1

intro = RichTextField(blank=True)

image = models.ForeignKey(
Expand All @@ -147,10 +121,48 @@ class ImpactAreasPage(Page):

impact_area_blocks = StreamField(ImpactAreaBlock(), use_json_field=True, null=True)

# > IMPACT AREA SHARED FIELDS
use_cases_title = models.CharField(default="Use Cases")

projects_title = models.CharField(default="Projects")
view_all_projects_text = models.CharField(default="View all projects")
view_all_projects_link = models.URLField(blank=True)
load_more_projects_text = models.CharField(default="Load More Projects")

explore_impact_areas_text = models.CharField(default="Explore Other Impact Areas")

red_dogear_box_title = models.CharField(default="Learn more about Tools & Resources and Data Access")
red_dogear_box_link_text = models.CharField(default="View Tools & Resources")
red_dogear_box_link_url = models.URLField(blank=True)

black_dogear_box_title = models.CharField(default="Check many opportunities to get involved with HOT!")
black_dogear_box_link_text = models.CharField(default="Get Involved with HOT")
black_dogear_box_link_url = models.URLField(blank=True)

content_panels = Page.content_panels + [
MultiFieldPanel([
FieldPanel('image'),
FieldPanel('intro')
], heading="Header section"),
FieldPanel('impact_area_blocks')
FieldPanel('impact_area_blocks'),
MultiFieldPanel([
MultiFieldPanel([
FieldPanel('use_cases_title'),
], heading="Use Cases"),
MultiFieldPanel([
FieldPanel('projects_title'),
FieldPanel('view_all_projects_text'),
FieldPanel('view_all_projects_link'),
FieldPanel('load_more_projects_text'),
], heading="Projects"),
FieldPanel('explore_impact_areas_text'),
MultiFieldPanel([
FieldPanel('red_dogear_box_title'),
FieldPanel('red_dogear_box_link_text'),
FieldPanel('red_dogear_box_link_url'),
FieldPanel('black_dogear_box_title'),
FieldPanel('black_dogear_box_link_text'),
FieldPanel('black_dogear_box_link_url'),
], heading="Dogear Boxes"),
], heading="Impact Area Shared Fields"),
]
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
</div>

{% comment %} USE CASES {% endcomment %}
{% include "ui/components/SectionHeadingWithUnderline.html" with title=page.use_cases_title %}
{% include "ui/components/SectionHeadingWithUnderline.html" with title=page.get_parent.specific.use_cases_title %}
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8 my-10">
{% for case in page.use_cases %}
{% include "./components/UseCaseBox.html" with number=forloop.counter body=case.value.description linktext=case.value.link_text linkurl=case.value.link_url %}
Expand All @@ -37,10 +37,10 @@
<div class="my-20">
<div class="grid grid-cols-1 md:grid-cols-2 gap-y-4">
<div>
{% include "ui/components/SectionHeadingWithUnderline.html" with title=page.projects_title %}
{% include "ui/components/SectionHeadingWithUnderline.html" with title=page.get_parent.specific.projects_title %}
</div>
<p class="md:text-right">
{% include "ui/components/BaseLink.html" with linktext=page.view_all_projects_text linkurl=page.view_all_projects_link %}
{% include "ui/components/BaseLink.html" with linktext=page.get_parent.specific.view_all_projects_text linkurl=page.view_all_projects_link %}
</p>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-x-8 mt-10" id="projects-list">
Expand All @@ -58,7 +58,7 @@
hx-select-oob="#projects-list:beforeend, #next-project:outerHTML"
>
<span class="border-b-hot-red border-b-2 pb-1 font-medium mr-4 text-intro">
Load More Projects
{{page.get_parent.specific.load_more_projects_text}}
</span>
{% include "ui/components/icon_svgs/LinkCaret.html" with class="rotate-90 text-hot-red" %}
</button>
Expand All @@ -69,7 +69,7 @@
{% comment %} OTHER IMPACT AREAS {% endcomment %}
<div class="my-20">
<h1 class="text-h2 font-bold">
{{ page.explore_impact_areas_text }}
{{ page.get_parent.specific.explore_impact_areas_text }}
</h1>
<div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-6 mt-10">
{% for area in other_impact_areas %}
Expand All @@ -91,10 +91,10 @@ <h1 class="text-h2 font-bold">
{% comment %} DOGEAR BOXES {% endcomment %}
<div class="grid grid-cols-1 md:grid-cols-2 text-white my-10 gap-8">
<div>
{% include "ui/components/dogear_boxes/DogearRed.html" with title=page.red_dogear_box_title linktext=page.red_dogear_box_link_text linkurl=page.red_dogear_box_link_url %}
{% include "ui/components/dogear_boxes/DogearRed.html" with title=page.get_parent.specific.red_dogear_box_title linktext=page.get_parent.specific.red_dogear_box_link_text linkurl=page.get_parent.specific.red_dogear_box_link_url %}
</div>
<div>
{% include "ui/components/dogear_boxes/DogearBlack.html" with title=page.black_dogear_box_title linktext=page.black_dogear_box_link_text linkurl=page.black_dogear_box_link_url %}
{% include "ui/components/dogear_boxes/DogearBlack.html" with title=page.get_parent.specific.black_dogear_box_title linktext=page.get_parent.specific.black_dogear_box_link_text linkurl=page.get_parent.specific.black_dogear_box_link_url %}
</div>
</div>
</div>
Expand Down
Empty file added app/members/__init__.py
Empty file.
3 changes: 3 additions & 0 deletions app/members/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.contrib import admin

# Register your models here.
6 changes: 6 additions & 0 deletions app/members/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from django.apps import AppConfig


class MembersConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'app.members'
47 changes: 47 additions & 0 deletions app/members/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Generated by Django 4.2.7 on 2024-06-03 23:02

from django.db import migrations, models
import django.db.models.deletion
import wagtail.blocks
import wagtail.fields


class Migration(migrations.Migration):

initial = True

dependencies = [
('wagtailcore', '0089_log_entry_data_json_null_to_object'),
('wagtailimages', '0025_alter_image_file_alter_rendition_file'),
]

operations = [
migrations.CreateModel(
name='MemberOwnerPage',
fields=[
('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')),
('on_the_web_title', models.CharField(default='On the Web')),
('posts_title', models.CharField(default='Posts')),
('project_contribution_title', models.CharField(default='Project Contribution')),
],
options={
'abstract': False,
},
bases=('wagtailcore.page',),
),
migrations.CreateModel(
name='IndividualMemberPage',
fields=[
('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')),
('position', models.CharField()),
('location', models.CharField()),
('introduction', wagtail.fields.RichTextField()),
('on_the_web_links', wagtail.fields.StreamField([('blocks', wagtail.blocks.StructBlock([('link_text', wagtail.blocks.CharBlock(required=True)), ('link_url', wagtail.blocks.URLBlock(blank=True, required=False))]))], blank=True, use_json_field=True)),
('image', models.ForeignKey(blank=True, help_text='An image of the member', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image')),
],
options={
'abstract': False,
},
bases=('wagtailcore.page',),
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Generated by Django 4.2.7 on 2024-06-03 23:26

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
('mapping_hubs', '0008_alter_individualmappinghubpage_dogear_boxes'),
('members', '0001_initial'),
]

operations = [
migrations.RemoveField(
model_name='individualmemberpage',
name='location',
),
migrations.AddField(
model_name='individualmemberpage',
name='location_hub',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='mapping_hubs.individualmappinghubpage'),
),
]
Empty file.
Loading
Loading