Skip to content

Commit

Permalink
feat: adding new features and fixing labelling (#1307)
Browse files Browse the repository at this point in the history
* feat: adding new features and fixing labelling

* fix: running generate:client

* fix: updates per emily

* fix: updates per emily

* fix: updates to translations

* fix: update to migration per emily
  • Loading branch information
YazeedLoonat committed Jun 9, 2022
1 parent 5d7e2fa commit 341494a
Show file tree
Hide file tree
Showing 14 changed files with 258 additions and 33 deletions.
5 changes: 5 additions & 0 deletions backend/core/src/listings/dto/filter-type-to-field-map.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,4 +73,9 @@ export const filterTypeToFieldMap: Record<keysWithMappedField, string> = {
bedRoomSize: "",
communityPrograms: "",
accessibility: "",
barrierFreeUnitEntrance: "listing_features.barrierFreeUnitEntrance",
loweredLightSwitch: "listing_features.loweredLightSwitch",
barrierFreeBathroom: "listing_features.barrierFreeBathroom",
wideDoorways: "listing_features.wideDoorways",
loweredCabinets: "listing_features.loweredCabinets",
}
30 changes: 30 additions & 0 deletions backend/core/src/listings/entities/listing-features.entity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,4 +102,34 @@ export class ListingFeatures extends AbstractEntity {
@IsOptional({ groups: [ValidationsGroupsEnum.default] })
@IsBoolean({ groups: [ValidationsGroupsEnum.default] })
mobility?: boolean | null

@Column({ type: "boolean", nullable: true })
@Expose()
@IsOptional({ groups: [ValidationsGroupsEnum.default] })
@IsBoolean({ groups: [ValidationsGroupsEnum.default] })
barrierFreeUnitEntrance?: boolean | null

@Column({ type: "boolean", nullable: true })
@Expose()
@IsOptional({ groups: [ValidationsGroupsEnum.default] })
@IsBoolean({ groups: [ValidationsGroupsEnum.default] })
loweredLightSwitch?: boolean | null

@Column({ type: "boolean", nullable: true })
@Expose()
@IsOptional({ groups: [ValidationsGroupsEnum.default] })
@IsBoolean({ groups: [ValidationsGroupsEnum.default] })
barrierFreeBathroom?: boolean | null

@Column({ type: "boolean", nullable: true })
@Expose()
@IsOptional({ groups: [ValidationsGroupsEnum.default] })
@IsBoolean({ groups: [ValidationsGroupsEnum.default] })
wideDoorways?: boolean | null

@Column({ type: "boolean", nullable: true })
@Expose()
@IsOptional({ groups: [ValidationsGroupsEnum.default] })
@IsBoolean({ groups: [ValidationsGroupsEnum.default] })
loweredCabinets?: boolean | null
}
5 changes: 5 additions & 0 deletions backend/core/src/listings/types/listing-filter-keys-enum.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,11 @@ export enum ListingFilterKeys {
bedRoomSize = "bedRoomSize",
communityPrograms = "communityPrograms",
accessibility = "accessibility",
barrierFreeUnitEntrance = "barrierFreeUnitEntrance",
loweredLightSwitch = "loweredLightSwitch",
barrierFreeBathroom = "barrierFreeBathroom",
wideDoorways = "wideDoorways",
loweredCabinets = "loweredCabinets",
}

export enum AvailabilityFilterEnum {
Expand Down
5 changes: 5 additions & 0 deletions backend/core/src/listings/views/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,11 @@ const views: Views = {
"features.heatingInUnit",
"features.acInUnit",
"features.laundryInBuilding",
"features.barrierFreeUnitEntrance",
"features.loweredLightSwitch",
"features.barrierFreeBathroom",
"features.wideDoorways",
"features.loweredCabinets",
"listingPrograms.ordinal",
"listingsProgramsProgram.id",
"listingsProgramsProgram.title",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { MigrationInterface, QueryRunner } from "typeorm"

export class newAccessibilityFeatures1654190736229 implements MigrationInterface {
name = "newAccessibilityFeatures1654190736229"

public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "listing_features" ADD "barrier_free_unit_entrance" boolean`
)
await queryRunner.query(`ALTER TABLE "listing_features" ADD "lowered_light_switch" boolean`)
await queryRunner.query(`ALTER TABLE "listing_features" ADD "barrier_free_bathroom" boolean`)
await queryRunner.query(`ALTER TABLE "listing_features" ADD "wide_doorways" boolean`)
await queryRunner.query(`ALTER TABLE "listing_features" ADD "lowered_cabinets" boolean`)
}

public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "listing_features" DROP COLUMN "lowered_cabinets"`)
await queryRunner.query(`ALTER TABLE "listing_features" DROP COLUMN "wide_doorways"`)
await queryRunner.query(`ALTER TABLE "listing_features" DROP COLUMN "barrier_free_bathroom"`)
await queryRunner.query(`ALTER TABLE "listing_features" DROP COLUMN "lowered_light_switch"`)
await queryRunner.query(
`ALTER TABLE "listing_features" DROP COLUMN "barrier_free_unit_entrance"`
)
}
}
15 changes: 15 additions & 0 deletions backend/core/types/src/backend-swagger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5249,6 +5249,21 @@ export interface ListingFeatures {

/** */
mobility?: boolean

/** */
barrierFreeUnitEntrance?: boolean

/** */
loweredLightSwitch?: boolean

/** */
barrierFreeBathroom?: boolean

/** */
wideDoorways?: boolean

/** */
loweredCabinets?: boolean
}

export interface Listing {
Expand Down
10 changes: 10 additions & 0 deletions shared-helpers/src/filters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,11 @@ function getComparisonForFilter(filterKey: ListingFilterKeys) {
case ListingFilterKeys.Seniors62:
case ListingFilterKeys.SupportiveHousingfortheHomeless:
case ListingFilterKeys.Veterans:
case ListingFilterKeys.barrierFreeUnitEntrance:
case ListingFilterKeys.loweredLightSwitch:
case ListingFilterKeys.barrierFreeBathroom:
case ListingFilterKeys.wideDoorways:
case ListingFilterKeys.loweredCabinets:
return EnumListingFilterParamsComparison["="]
case ListingFilterKeys.minRent:
return EnumListingFilterParamsComparison[">="]
Expand Down Expand Up @@ -145,6 +150,11 @@ export interface ListingFilterState {
[FrontendListingFilterStateKeys.hearing]?: string | boolean
[FrontendListingFilterStateKeys.mobility]?: string | boolean
[FrontendListingFilterStateKeys.visual]?: string | boolean
[FrontendListingFilterStateKeys.barrierFreeUnitEntrance]?: string | boolean
[FrontendListingFilterStateKeys.loweredLightSwitch]?: string | boolean
[FrontendListingFilterStateKeys.barrierFreeBathroom]?: string | boolean
[FrontendListingFilterStateKeys.wideDoorways]?: string | boolean
[FrontendListingFilterStateKeys.loweredCabinets]?: string | boolean
// favorites
[FrontendListingFilterStateKeys.favorited]?: string | boolean

Expand Down
5 changes: 5 additions & 0 deletions shared-helpers/src/formKeys.ts
Original file line number Diff line number Diff line change
Expand Up @@ -254,4 +254,9 @@ export const listingFeatures = [
"hearing",
"mobility",
"visual",
"barrierFreeUnitEntrance",
"loweredLightSwitch",
"barrierFreeBathroom",
"wideDoorways",
"loweredCabinets",
]
47 changes: 46 additions & 1 deletion sites/public/lib/EligibilityContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ export enum AccessibilityFeatures {
"grabBars" = "grabBars",
"heatingInUnit" = "heatingInUnit",
"acInUnit" = "acInUnit",
"barrierFreeUnitEntrance" = "barrierFreeUnitEntrance",
"loweredLightSwitch" = "loweredLightSwitch",
"barrierFreeBathroom" = "barrierFreeBathroom",
"wideDoorways" = "wideDoorways",
"loweredCabinets" = "loweredCabinets",
}

class EligibilityRequirements {
Expand All @@ -41,6 +46,11 @@ class EligibilityRequirements {
heatingInUnit: boolean
acInUnit: boolean
completedSections: number
barrierFreeUnitEntrance: boolean
loweredLightSwitch: boolean
barrierFreeBathroom: boolean
wideDoorways: boolean
loweredCabinets: boolean

constructor(
age: AgeRangeType,
Expand All @@ -58,7 +68,12 @@ class EligibilityRequirements {
rollInShower: boolean,
grabBars: boolean,
heatingInUnit: boolean,
acInUnit: boolean
acInUnit: boolean,
barrierFreeUnitEntrance: boolean,
loweredLightSwitch: boolean,
barrierFreeBathroom: boolean,
wideDoorways: boolean,
loweredCabinets: boolean
) {
this.age = age
this.householdSizeCount = householdSizeCount
Expand All @@ -77,6 +92,11 @@ class EligibilityRequirements {
this.heatingInUnit = heatingInUnit
this.acInUnit = acInUnit
this.completedSections = 0
this.barrierFreeUnitEntrance = barrierFreeUnitEntrance
this.loweredLightSwitch = loweredLightSwitch
this.barrierFreeBathroom = barrierFreeBathroom
this.wideDoorways = wideDoorways
this.loweredCabinets = loweredCabinets
}

setAge(age: AgeRangeType) {
Expand Down Expand Up @@ -145,6 +165,26 @@ class EligibilityRequirements {
setCompletedSections(numCompleted: number) {
this.completedSections = numCompleted
}

setBarrierFreeUnitEntrance(barrierFreeUnitEntrance: boolean) {
this.barrierFreeUnitEntrance = barrierFreeUnitEntrance
}

setLoweredLightSwitch(loweredLightSwitch: boolean) {
this.loweredLightSwitch = loweredLightSwitch
}

setBarrierFreeBathroom(barrierFreeBathroom: boolean) {
this.barrierFreeBathroom = barrierFreeBathroom
}

setWideDoorways(wideDoorways: boolean) {
this.wideDoorways = wideDoorways
}

setLoweredCabinets(loweredCabinets: boolean) {
this.loweredCabinets = loweredCabinets
}
}

export const blankEligibilityRequirements = () => {
Expand All @@ -164,6 +204,11 @@ export const blankEligibilityRequirements = () => {
null,
null,
null,
null,
null,
null,
null,
null,
null
)
}
Expand Down
60 changes: 60 additions & 0 deletions sites/public/pages/eligibility/accessibility.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@ const EligibilityAccessibility = () => {
eligibilityRequirements.setGrabBars(data.grabBars)
eligibilityRequirements.setHeatingInUnit(data.heatingInUnit)
eligibilityRequirements.setaAcInUnit(data.acInUnit)
eligibilityRequirements.setBarrierFreeUnitEntrance(data.barrierFreeUnitEntrance)
eligibilityRequirements.setLoweredLightSwitch(data.loweredLightSwitch)
eligibilityRequirements.setBarrierFreeBathroom(data.barrierFreeBathroom)
eligibilityRequirements.setWideDoorways(data.wideDoorways)
eligibilityRequirements.setLoweredCabinets(data.loweredCabinets)
}

return (
Expand Down Expand Up @@ -173,6 +178,61 @@ const EligibilityAccessibility = () => {
// eslint-disable-next-line @typescript-eslint/unbound-method
register={formMethods.register}
/>
<Field
id="barrierFreeUnitEntrance"
name="barrierFreeUnitEntrance"
type="checkbox"
label={t("eligibility.accessibility.barrierFreeUnitEntrance")}
inputProps={{
defaultChecked: eligibilityRequirements.barrierFreeUnitEntrance,
}}
// eslint-disable-next-line @typescript-eslint/unbound-method
register={formMethods.register}
/>
<Field
id="loweredLightSwitch"
name="loweredLightSwitch"
type="checkbox"
label={t("eligibility.accessibility.loweredLightSwitch")}
inputProps={{
defaultChecked: eligibilityRequirements.loweredLightSwitch,
}}
// eslint-disable-next-line @typescript-eslint/unbound-method
register={formMethods.register}
/>
<Field
id="barrierFreeBathroom"
name="barrierFreeBathroom"
type="checkbox"
label={t("eligibility.accessibility.barrierFreeBathroom")}
inputProps={{
defaultChecked: eligibilityRequirements.barrierFreeBathroom,
}}
// eslint-disable-next-line @typescript-eslint/unbound-method
register={formMethods.register}
/>
<Field
id="wideDoorways"
name="wideDoorways"
type="checkbox"
label={t("eligibility.accessibility.wideDoorways")}
inputProps={{
defaultChecked: eligibilityRequirements.wideDoorways,
}}
// eslint-disable-next-line @typescript-eslint/unbound-method
register={formMethods.register}
/>
<Field
id="loweredCabinets"
name="loweredCabinets"
type="checkbox"
label={t("eligibility.accessibility.loweredCabinets")}
inputProps={{
defaultChecked: eligibilityRequirements.loweredCabinets,
}}
// eslint-disable-next-line @typescript-eslint/unbound-method
register={formMethods.register}
/>
</div>
</div>
</EligibilityLayout>
Expand Down
21 changes: 13 additions & 8 deletions ui-components/src/locales/ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -1219,24 +1219,29 @@
"eligibility.income.ranges.30kTo40k": "30000 دولار - 39999 دولار",
"eligibility.income.ranges.40kTo50k": "40000 دولار - 49999 دولار",
"eligibility.income.ranges.over50k": "50000 دولار أو أكثر",
"eligibility.accessibility.accessibleParking": "أماكن وقوف السيارات التي يمكن الوصول إليها",
"eligibility.accessibility.acInUnit": "مكيف في الوحدة",
"eligibility.accessibility.accessibleParking": "وقوف السيارات لذوي الاحتياجات الخاصة",
"eligibility.accessibility.barrierFreeEntrance": "دخول خالي من العوائق",
"eligibility.accessibility.barrierFreeBathroom": "حمامات خالية من العوائق",
"eligibility.accessibility.barrierFreeEntrance": "مدخل ملكية خالي من العوائق (بدون خطوات)",
"eligibility.accessibility.barrierFreeUnitEntrance": "مداخل وحدة خالية من العوائق (بدون خطوات)",
"eligibility.accessibility.description": "تحتوي بعض الخصائص على ميزات إمكانية الوصول قد لا يمتلكها الآخرون.",
"eligibility.accessibility.elevator": "مصعد",
"eligibility.accessibility.grabBars": "انتزاع القضبان",
"eligibility.accessibility.hearing": "سمع",
"eligibility.accessibility.grabBars": "انتزاع القضبان في الحمامات",
"eligibility.accessibility.hearing": "وحدات لذوي الإعاقة السمعية",
"eligibility.accessibility.heatingInUnit": "تدفئة في الوحدة",
"eligibility.accessibility.inUnitWasherDryer": "في وحدة تجفيف الغسالة",
"eligibility.accessibility.inUnitWasherDryer": "غسالة / مجفف في الوحدة",
"eligibility.accessibility.laundryInBuilding": "مغسلة في المبنى",
"eligibility.accessibility.mobility": "إمكانية التنقل",
"eligibility.accessibility.loweredCabinets": "خزائن منخفضة وأسطح العمل",
"eligibility.accessibility.loweredLightSwitch": "مفاتيح الإضاءة المنخفضة",
"eligibility.accessibility.mobility": "وحدات لذوي الإعاقة الحركية",
"eligibility.accessibility.parkingOnSite": "وقوف السيارات في الموقع",
"eligibility.accessibility.prompt": "هل تحتاج إلى ميزات وصول إضافية؟",
"eligibility.accessibility.rollInShower": "لفة في دش",
"eligibility.accessibility.rollInShower": "دوشات دوارة",
"eligibility.accessibility.serviceAnimalsAllowed": "مسموح بحيوانات الخدمة",
"eligibility.accessibility.title": "ميزات إمكانية الوصول",
"eligibility.accessibility.visual": "المرئية",
"eligibility.accessibility.visual": "وحدات لذوي الإعاقة البصرية",
"eligibility.accessibility.wheelchairRamp": "منحدر للكراسي المتحركة",
"eligibility.accessibility.wideDoorways": "مداخل وحدة واسعة للكراسي المتحركة",
"eligibility.disclaimer.description": "شكرا لك على الإجابة على هذه الأسئلة. عندما تنقر أو تضغط على 'عرض النتائج الآن' ، سترى إيجارات قد تناسب احتياجاتك بناءً على إجاباتك. يمكن أن تؤثر عوامل متعددة على الأهلية لتأجيرات معينة ، لذلك إذا رأيت إيجارًا تهتم به ، فاتصل بوكيل العقارات في القائمة. يمكنهم مساعدتك في تحديد ما إذا كنت مؤهلاً لهذا الإيجار.",
"eligibility.preferNotToSay": "افضل عدم القول",
"resources.body1": "قد تحتاج إلى مساعدة إضافية في بحثك عن سكن. قامت إدارة الموارد البشرية بتجميع قائمة من الموارد لمساعدتك في العثور على سكنك والحفاظ عليه.",
Expand Down
Loading

0 comments on commit 341494a

Please sign in to comment.