Skip to content

Commit

Permalink
feat: Add new GLA schemas (#3267)
Browse files Browse the repository at this point in the history
  • Loading branch information
augustlindemer authored Jun 11, 2024
1 parent 0d0bc43 commit 85af90a
Show file tree
Hide file tree
Showing 8 changed files with 743 additions and 17 deletions.
48 changes: 31 additions & 17 deletions editor.planx.uk/src/@planx/components/List/Editor.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,18 @@ import InputRowLabel from "ui/shared/InputRowLabel";
import { EditorProps, ICONS, InternalNotes, MoreInformation } from "../ui";
import { List, parseContent } from "./model";
import { ResidentialUnitsExisting } from "./schemas/ResidentialUnits/Existing";
import { ResidentialUnitsGLANew } from "./schemas/ResidentialUnits/GLA/New";
import { ResidentialUnitsGLARebuilt } from "./schemas/ResidentialUnits/GLA/Rebuilt";
import { ResidentialUnitsGLARemoved } from "./schemas/ResidentialUnits/GLA/Removed";
import { ResidentialUnitsGLARetained } from "./schemas/ResidentialUnits/GLA/Retained";
import { ResidentialUnitsProposed } from "./schemas/ResidentialUnits/Proposed";
// import { ResidentialUnitsGLANew } from "./schemas/ResidentialUnits/GLA/New";
// import { ResidentialUnitsGLARebuilt } from "./schemas/ResidentialUnits/GLA/Rebuilt";
// import { ResidentialUnitsGLARemoved } from "./schemas/ResidentialUnits/GLA/Removed";
// import { ResidentialUnitsGLARetained } from "./schemas/ResidentialUnits/GLA/Retained";
import { ResidentialUnitsGLAGained } from "./schemas/ResidentialUnits/GLA/Gained";
import { ResidentialUnitsGLALost } from "./schemas/ResidentialUnits/GLA/Lost";
import { ExistingAndProposedUsesGLA } from "./schemas/GLA/ExistingAndProposedUses";
import { CommunalSpaceGLA } from "./schemas/GLA/CommunalSpace";
import { BuildingDetailsGLA } from "./schemas/GLA/BuildingDetails";
import { ProtectedSpaceGLA } from "./schemas/GLA/ProtectedSpace";
import { OpenSpaceGLA } from "./schemas/GLA/OpenSpace";
import { Zoo } from "./schemas/Zoo";
import { ProposedAdvertisements } from "./schemas/Adverts";

Expand All @@ -27,19 +34,26 @@ type Props = EditorProps<TYPES.List, List>;
export const SCHEMAS = [
{ name: "Residential units - Existing", schema: ResidentialUnitsExisting },
{ name: "Residential units - Proposed", schema: ResidentialUnitsProposed },
{ name: "Residential units (GLA) - New", schema: ResidentialUnitsGLANew },
{
name: "Residential units (GLA) - Rebuilt",
schema: ResidentialUnitsGLARebuilt,
},
{
name: "Residentail units (GLA) - Removed",
schema: ResidentialUnitsGLARemoved,
},
{
name: "Residential units (GLA) - Retained",
schema: ResidentialUnitsGLARetained,
},
{ name: "Residential units (GLA) - Gained", schema: ResidentialUnitsGLAGained },
{ name: "Residential units (GLA) - Lost", schema: ResidentialUnitsGLALost },
{ name: "Existing and proposed uses (GLA)", schema: ExistingAndProposedUsesGLA },
{ name: "Communal spaces (GLA)", schema: CommunalSpaceGLA },
{ name: "Building details (GLA)", schema: BuildingDetailsGLA },
{ name: "Protected spaces (GLA)", schema: ProtectedSpaceGLA },
{ name: "Open spaces (GLA)", schema: OpenSpaceGLA },
// { name: "Residential units (GLA) - New", schema: ResidentialUnitsGLANew },
// {
// name: "Residential units (GLA) - Rebuilt",
// schema: ResidentialUnitsGLARebuilt,
// },
// {
// name: "Residentail units (GLA) - Removed",
// schema: ResidentialUnitsGLARemoved,
// },
// {
// name: "Residential units (GLA) - Retained",
// schema: ResidentialUnitsGLARetained,
// },
{ name: "Zoo (test)", schema: Zoo },
{ name: "Proposed advertisements", schema: ProposedAdvertisements },
];
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import { TextInputType } from "@planx/components/TextInput/model";
import { Schema } from "@planx/components/List/model";

export const BuildingDetailsGLA: Schema = {
type: "Building detail",
fields: [
{
type: "text",
data: {
title: "Building reference",
fn: "reference",
type: TextInputType.Short,
},
},
{
type: "number",
data: {
title: "What is the maximum height of the building?",
units: "m",
fn: "height",
allowNegatives: false,
},
},
{
type: "number",
data: {
title: "How many storeys does the building have?",
fn: "storeys",
allowNegatives: false,
},
},
],
min: 1,
} as const;
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import { Schema } from "@planx/components/List/model";

export const CommunalSpaceGLA: Schema = {
type: "Unit of communal space",
fields: [
{
type: "question",
data: {
title: "Is this unit of communal space lost or gained?",
fn: "development",
options: [
{ id: "gain", data: { text: "Gained", val: "gain" } },
{ id: "loss", data: { text: "Lost", val: "loss" } },
],
},
},
{
type: "number",
data: {
title: "What is the Gross Internal Floor Area (GIA) of this unit?",
units: "m²",
fn: "area",
allowNegatives: false,
},
},
{
type: "number",
data: {
title: "How many identical units does the description above apply to?",
fn: "identicalUnits",
allowNegatives: false,
},
},
],
min: 1,
} as const;
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import { Schema } from "@planx/components/List/model";

export const ExistingAndProposedUsesGLA: Schema = {
type: "Existing and proposed uses",
fields: [
{
type: "question",
data: {
title: "What is the use class?",
fn: "useClass",
options: [
{ id: "bTwo", data: { text: "B2 - General industry", val: "bTwo" } },
{ id: "bEight", data: { text: "B8 - Storage and distribution", val: "bEight" } },
{ id: "cOne", data: { text: "C1 - Hotels", val: "cOne" } },
{ id: "cTwo", data: { text: "C2 - Residential institutions", val: "cTwo" } },
{ id: "cTwoA", data: { text: "C2a - Secure residential institutions", val: "cTwoA" } },
{ id: "cThree", data: { text: "C3 - Dwellinghouses", val: "cThree" } },
{ id: "cFour", data: { text: "C4 - Houses in multiple occupation", val: "cFour" } },
{ id: "e", data: { text: "E - Commercial, business and service", val: "e" } },
{ id: "fOne", data: { text: "F1 - Learning and non-residential institutions", val: "fOne" } },
{ id: "fTwo", data: { text: "F2 - Local community uses", val: "fTwo" } },
{ id: "SG", data: { text: "Sui generis", val: "SG" } },
{ id: "unknown", data: { text: "Unknown", val: "unknown" } },
],
},
},
{
type: "number",
data: {
title: "What is the existing gross internal floor area?",
units: "m²",
fn: "areaExisting", // area.existing
allowNegatives: false,
},
},
{
type: "number",
data: {
title: "What is the gross internal floor area lost?",
units: "m²",
fn: "areaLoss", // area.loss
allowNegatives: false,
},
},
{
type: "number",
data: {
title: "What is the gross internal floor area gained?",
units: "m²",
fn: "areaGain", // area.gain
allowNegatives: false,
},
},
],
min: 1,
} as const;
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
import { TextInputType } from "@planx/components/TextInput/model";
import { Schema } from "@planx/components/List/model";

export const OpenSpaceGLA: Schema = {
type: "Open space details",
fields: [
{
type: "question",
data: {
title: "What is the project's impact on this open space?",
fn: "development",
options: [
{ id: "loss", data: { text: "Loss", val: "loss" } },
{ id: "gain", data: { text: "Gain", val: "gain" } },
{ id: "changeOfUse", data: { text: "Change of use", val: "changeOfUse" } },
],
},
},
{
type: "question",
data: {
title: "What best describes the type of this open space?",
fn: "type",
options: [
{ id: "park", data: { text: "Parks and gardens", val: "park" } },
{ id: "natural", data: { text: "Natural and semi-natural", val: "natural" } },
{ id: "greenCorridor", data: { text: "Green corridors", val: "greenCorridor" } },
{ id: "sport", data: { text: "Outdoor sports facilities", val: "sport" } },
{ id: "amenity", data: { text: "Amenity", val: "amenity" } },
{ id: "children", data: { text: "Provision for children and young people", val: "children" } },
{ id: "allotment", data: { text: "Allotments, community gardens and city farms", val: "allotment" } },
{ id: "burial", data: { text: "Cemeteries, churchyards and other burial grounds", val: "burial" } },
{ id: "fringe", data: { text: "Countryside in urban fringe areas", val: "fringe" } },
{ id: "civic", data: { text: "Civic spaces", val: "civic" } },
{ id: "brownfield", data: { text: "Brownfield land", val: "brownfield" } },
{ id: "nonResidential", data: { text: "Non-residential institution grounds or garden", val: "nonResidential" } },
{ id: "residential", data: { text: "Residential garden", val: "residential" } },
],
},
},
{
type: "question",
data: {
title: "What best describes the designation of this open space?",
fn: "designation",
options: [
{ id: "greenBelt", data: { text: "Green Belt", val: "greenBelt" } },
{ id: "metropolitan", data: { text: "Metropolitan Open Land", val: "metropolitan" } },
{ id: "local", data: { text: "Local Open Spaces", val: "local" } },
{ id: "other", data: { text: "Other designation", val: "other" } },
{ id: "none", data: { text: "Not designated", val: "none" } },
],
},
},
{
type: "text",
data: {
title: "Describe the open space",
fn: "description",
type: TextInputType.Long,
},
},
{
type: "question",
data: {
title: "What is the access to this open space?",
fn: "access",
options: [
{ id: "restricted", data: { text: "Restricted", val: "restricted" } },
{ id: "unrestricted", data: { text: "Unrestricted", val: "unrestricted" } },
],
},
},
{
type: "number",
data: {
title: "What is the area of this open space?",
units: "ha",
fn: "area",
allowNegatives: false,
},
},
{
type: "question",
data: {
title: "Do the changes to this open space involve a land swap?",
fn: "swap",
options: [
{ id: "true", data: { text: "Yes", val: "true" } },
{ id: "false", data: { text: "No", val: "false" } },
],
},
},
],
min: 1,
} as const;
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
import { TextInputType } from "@planx/components/TextInput/model";
import { Schema } from "@planx/components/List/model";

export const ProtectedSpaceGLA: Schema = {
type: "Protected space details",
fields: [
{
type: "question",
data: {
title: "What is the project's impact on this protected space?",
fn: "development",
options: [
{ id: "loss", data: { text: "Loss", val: "loss" } },
{ id: "gain", data: { text: "Gain", val: "gain" } },
{ id: "changeOfUse", data: { text: "Change of use", val: "changeOfUse" } },
],
},
},
{
type: "question",
data: {
title: "What best describes the designation of this protected space?",
fn: "designation",
options: [
{ id: "SSSI", data: { text: "Sites of Special Scientific Interest", val: "SSSI" } },
{ id: "localReserve", data: { text: "Local Nature Reserve", val: "localReserve" } },
{ id: "metropolitan", data: { text: "Site of Metropolitan Importance", val: "metropolitan" } },
{ id: "boroughGradeOne", data: { text: "Site of Borough Grade 1 Importance", val: "boroughGradeOne" } },
{ id: "boroughGradeTwo", data: { text: "Site of Borough Grade 2 Importance", val: "boroughGradeTwo" } },
{ id: "local", data: { text: "Site of Local Importance", val: "local" } },
{ id: "none", data: { text: "Not designated", val: "none" } },
],
},
},
{
type: "text",
data: {
title: "Describe the protected space",
fn: "description",
type: TextInputType.Long,
},
},
{
type: "question",
data: {
title: "What is the access to this open space?",
fn: "access",
options: [
{ id: "restricted", data: { text: "Restricted", val: "restricted" } },
{ id: "unrestricted", data: { text: "Unrestricted", val: "unrestricted" } },
],
},
},
{
type: "number",
data: {
title: "What is the area of this open space?",
units: "ha",
fn: "area",
allowNegatives: false,
},
},
],
min: 1,
} as const;
Loading

0 comments on commit 85af90a

Please sign in to comment.