Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 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
1 change: 1 addition & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,5 +56,6 @@ module.exports = {
"**/.eslintrc.js",
"sentry-example-page.js",
"sentry-example-api.js",
"*.csv",
],
}
3 changes: 2 additions & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ ui-components/CHANGELOG.md
sites/public/CHANGELOG.md
sites/partners/CHANGELOG.md
shared-helpers/CHANGELOG.md
backend/core/CHANGELOG.md
backend/core/CHANGELOG.md
Comment thread
emilyjablonski marked this conversation as resolved.
Outdated
*.csv
5 changes: 5 additions & 0 deletions api/prisma/migrations/36_marketing_month/migration.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
-- CreateEnum
CREATE TYPE "month_enum" AS ENUM ('january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december');

-- AlterTable
ALTER TABLE "listings" ADD COLUMN "marketing_month" "month_enum";
18 changes: 18 additions & 0 deletions api/prisma/schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -661,6 +661,7 @@ model Listings {
marketingType MarketingTypeEnum @default(marketing) @map("marketing_type")
marketingYear Int? @map("marketing_year")
marketingSeason MarketingSeasonEnum? @map("marketing_season")
marketingMonth MonthEnum? @map("marketing_month")
whatToExpectAdditionalText String? @map("what_to_expect_additional_text")
section8Acceptance Boolean? @map("section8_acceptance")
neighborhoodAmenitiesId String? @unique() @map("neighborhood_amenities_id") @db.Uuid
Expand Down Expand Up @@ -1247,6 +1248,23 @@ enum MarketingSeasonEnum {
@@map("listings_marketing_season_enum")
}

enum MonthEnum {
january
february
march
april
may
june
july
august
september
october
november
december

@@map("month_enum")
}

enum MarketingTypeEnum {
marketing
comingSoon
Expand Down
34 changes: 21 additions & 13 deletions api/prisma/seed-staging.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,19 +70,19 @@ export const stagingSeed = async (
],
languages: Object.values(LanguagesEnum),
requiredListingFields: [
'listingsBuildingAddress',
'name',
'developer',
'listingImages',
'digitalApplication',
'jurisdictions',
'leasingAgentEmail',
'leasingAgentName',
'leasingAgentPhone',
'jurisdictions',
'units',
'digitalApplication',
'listingImages',
'listingsBuildingAddress',
'name',
'paperApplication',
'referralOpportunity',
'rentalAssistance',
'units',
],
}),
});
Expand Down Expand Up @@ -156,24 +156,32 @@ export const stagingSeed = async (
});
const angelopolisJurisdiction = await prismaClient.jurisdictions.create({
data: jurisdictionFactory('Angelopolis', {
featureFlags: [FeatureFlagEnum.enableNeighborhoodAmenities, FeatureFlagEnum.enableHousingDeveloperOwner],
featureFlags: [
FeatureFlagEnum.enableAccessibilityFeatures,
FeatureFlagEnum.enableHousingDeveloperOwner,
FeatureFlagEnum.enableListingFiltering,
FeatureFlagEnum.enableMarketingStatus,
FeatureFlagEnum.enableMarketingStatusMonths,
FeatureFlagEnum.enableNeighborhoodAmenities,
],
visibleNeighborhoodAmenities: [
NeighborhoodAmenitiesEnum.groceryStores,
NeighborhoodAmenitiesEnum.pharmacies,
],

requiredListingFields: [
'listingsBuildingAddress',
'name',
'listingImages',
'digitalApplication',
'jurisdictions',
'leasingAgentEmail',
'leasingAgentName',
'leasingAgentPhone',
'jurisdictions',
'units',
'digitalApplication',
'listingImages',
'listingsBuildingAddress',
'name',
'paperApplication',
'referralOpportunity',
'rentalAssistance',
'units',
],
}),
});
Expand Down
12 changes: 12 additions & 0 deletions api/src/dtos/listings/listing.dto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import {
RegionEnum,
MarketingSeasonEnum,
MarketingTypeEnum,
MonthEnum,
ReviewOrderTypeEnum,
DepositTypeEnum,
ListingTypeEnum,
Expand Down Expand Up @@ -1047,6 +1048,17 @@ class Listing extends AbstractDTO {
})
marketingSeason?: MarketingSeasonEnum | null;

@Expose()
@ValidateListingPublish('marketingMonth', {
groups: [ValidationsGroupsEnum.default],
})
@IsEnum(MonthEnum, { groups: [ValidationsGroupsEnum.default] })
@ApiPropertyOptional({
enum: MonthEnum,
enumName: 'MonthEnum',
})
marketingMonth?: MonthEnum | null;

@Expose()
@ValidateListingPublish('homeType', {
groups: [ValidationsGroupsEnum.default],
Expand Down
11 changes: 10 additions & 1 deletion api/src/enums/feature-flags/feature-flags-enum.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ export enum FeatureFlagEnum {
enableListingPagination = 'enableListingPagination',
enableListingUpdatedAt = 'enableListingUpdatedAt',
enableMarketingStatus = 'enableMarketingStatus',
enableMarketingStatusMonths = 'enableMarketingStatusMonths',
enableNeighborhoodAmenities = 'enableNeighborhoodAmenities',
enableNonRegulatedListings = 'enableNonRegulatedListings',
enablePartnerDemographics = 'enablePartnerDemographics',
Expand All @@ -46,7 +47,10 @@ export enum FeatureFlagEnum {
// List of all of existing flags and their descriptions.
// This should be the source of all feature flags in our system.
// Keep alphabetized for readability.
export const featureFlagMap: { name: string; description: string }[] = [
export const featureFlagMap: {
name: string;
description: string;
}[] = [
{
name: FeatureFlagEnum.disableCommonApplication,
description:
Expand Down Expand Up @@ -149,6 +153,11 @@ export const featureFlagMap: { name: string; description: string }[] = [
description:
"When true, the 'marketing status' sub-section is displayed in listing creation/edit and the public listing view",
},
{
name: FeatureFlagEnum.enableMarketingStatusMonths,
description:
"When true, the 'marketing status' sub-section uses months instead of seasons (functions only if enableMarketingStatus is also true)",
},
{
name: FeatureFlagEnum.enableNeighborhoodAmenities,
description:
Expand Down
12 changes: 12 additions & 0 deletions shared-helpers/src/locales/ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -876,6 +876,18 @@
"listings.waitlist.unitsAndWaitlist": "الوحدات المتاحة وقائمة الانتظار",
"lottery.applicationsThatQualifyForPreference": "سيتم إعطاء الطلبات المؤهلة لهذا التفضيل أولوية أعلى.",
"lottery.viewPreferenceList": "عرض قائمة التفضيلات",
"months.january": "يناير",
"months.february": "فبراير",
"months.march": "مارس",
"months.april": "أبريل",
"months.may": "مايو",
"months.june": "يونيو",
"months.july": "يوليو",
"months.august": "أغسطس",
"months.september": "سبتمبر",
"months.october": "أكتوبر",
"months.november": "نوفمبر",
"months.december": "ديسمبر",
"nav.browseProperties": "تصفح الخصائص",
"nav.getFeedback": "نحن نحب أن نحصل على تعليقاتك!",
"nav.listings": "القوائم",
Expand Down
12 changes: 12 additions & 0 deletions shared-helpers/src/locales/bn.json
Original file line number Diff line number Diff line change
Expand Up @@ -876,6 +876,18 @@
"listings.waitlist.unitsAndWaitlist": "উপলব্ধ ইউনিট এবং অপেক্ষা তালিকা",
"lottery.applicationsThatQualifyForPreference": "এই অগ্রাধিকার জন্য যোগ্যতা অর্জনকারী অ্যাপ্লিকেশনগুলিকে একটি উচ্চ অগ্রাধিকার দেওয়া হবে।",
"lottery.viewPreferenceList": "পছন্দের তালিকা দেখুন",
"months.january": "জানুয়ারী",
"months.february": "ফেব্রুয়ারী",
"months.march": "মার্চ",
"months.april": "এপ্রিল",
"months.may": "মে",
"months.june": "জুন",
"months.july": "জুলাই",
"months.august": "আগস্ট",
"months.september": "সেপ্টেম্বর",
"months.october": "অক্টোবর",
"months.november": "নভেম্বর",
"months.december": "ডিসেম্বর",
"nav.browseProperties": "প্রপার্টি ব্রাউজ করুন",
"nav.getFeedback": "আমরা আপনার প্রতিক্রিয়া পেতে চাই!",
"nav.listings": "তালিকা",
Expand Down
18 changes: 15 additions & 3 deletions shared-helpers/src/locales/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,9 +309,9 @@
"application.review.confirmation.whatHappensNext.lottery": "### ¿Qué sucede a continuación?\n\n* Una vez que se cierre el período de solicitud, los solicitantes elegibles serán colocados en orden según el orden de clasificación de la lotería.\n\n* Las preferencias de vivienda, si corresponde, afectarán el orden de clasificación de la lotería.\n\n* Si lo contactan para una entrevista, se le pedirá que complete una solicitud más detallada y proporcione documentos de respaldo.",
"application.review.confirmation.whatHappensNext.waitlist": "### ¿Qué sucede a continuación?\n\n* Los solicitantes elegibles se colocarán en la lista de espera por orden de llegada hasta que se cubran los lugares de la lista de espera.\n\n* Las preferencias de alojamiento, si corresponde, afectarán el orden de la lista de espera.\n\n* Si lo contactan para una entrevista, se le pedirá que complete una solicitud más detallada y proporcione los documentos de respaldo.\n\n* Es posible que lo contactemos mientras esté en la lista de espera para confirmar que desea permanecer en la lista de espera.",
"application.review.confirmation.whatHappensNext.noPref.fcfs": "### ¿Qué sucede a continuación?\n\n* Los solicitantes elegibles serán contactados por orden de llegada hasta que se cubran las vacantes. \n\n* Si lo contactan para una entrevista, se le pedirá que complete una solicitud más detallada y proporcione documentos de respaldo.",
"application.review.confirmation.whatHappensNext.noPref.lottery": "### ¿Qué sucede a continuación?\n\n* Una vez que se cierre el período de solicitud, los solicitantes elegibles serán colocados en orden según el orden de clasificación de la lotería.\n\n* Si lo contactan para una entrevista, se le pedirá que complete una solicitud más detallada y proporcione documentos de respaldo.",
"application.review.confirmation.whatHappensNext.noPref.waitlist": "### ¿Qué sucede a continuación?\n\n* Los solicitantes elegibles se colocarán en la lista de espera por orden de llegada hasta que se cubran los lugares de la lista de espera.\n\n* Si lo contactan para una entrevista, se le pedirá que complete una solicitud más detallada y proporcione los documentos de respaldo.\n\n* Es posible que lo contactemos mientras esté en la lista de espera para confirmar que desea permanecer en la lista de espera.",
"application.review.confirmation.whatHappensNext.noPref.base": "### ¿Qué sucede a continuación?\n\n* Si lo contactan para una entrevista, se le pedirá que complete una solicitud más detallada y proporcione los documentos de respaldo.",
"application.review.confirmation.whatHappensNext.noPref.lottery": "### ¿Qué sucede a continuación?\n\n* Una vez que se cierre el período de solicitud, los solicitantes elegibles serán colocados en orden según el orden de clasificación de la lotería.\n\n* Si lo contactan para una entrevista, se le pedirá que complete una solicitud más detallada y proporcione documentos de respaldo.",
"application.review.confirmation.whatHappensNext.noPref.waitlist": "### ¿Qué sucede a continuación?\n\n* Los solicitantes elegibles se colocarán en la lista de espera por orden de llegada hasta que se cubran los lugares de la lista de espera.\n\n* Si lo contactan para una entrevista, se le pedirá que complete una solicitud más detallada y proporcione los documentos de respaldo.\n\n* Es posible que lo contactemos mientras esté en la lista de espera para confirmar que desea permanecer en la lista de espera.",
"application.review.confirmation.whatHappensNext.noPref.base": "### ¿Qué sucede a continuación?\n\n* Si lo contactan para una entrevista, se le pedirá que complete una solicitud más detallada y proporcione los documentos de respaldo.",
"application.review.demographics.ethnicityLabel": "¿Cuál de las siguientes opciones describe mejor su origen étnico?",
"application.review.demographics.ethnicityOptions.hispanicLatino": "Hispano o latino",
"application.review.demographics.ethnicityOptions.notHispanicLatino": "Ni hispano ni latino",
Expand Down Expand Up @@ -876,6 +876,18 @@
"listings.waitlist.unitsAndWaitlist": "Viviendas disponibles y lista de espera",
"lottery.applicationsThatQualifyForPreference": "Las solicitudes que reúnan los requisitos de esta preferencia recibirán una prioridad más alta.",
"lottery.viewPreferenceList": "Ver la lista de preferencias",
"months.january": "Enero",
"months.february": "Febrero",
"months.march": "Marzo",
"months.april": "Abril",
"months.may": "Mayo",
"months.june": "Junio",
"months.july": "Julio",
"months.august": "Agosto",
"months.september": "Septiembre",
"months.october": "Octubre",
"months.november": "Noviembre",
"months.december": "Diciembre",
"nav.browseProperties": "Buscar propiedades",
"nav.getFeedback": "Nos encantaría recibir sus comentarios",
"nav.listings": "Listados",
Expand Down
12 changes: 12 additions & 0 deletions shared-helpers/src/locales/general.json
Original file line number Diff line number Diff line change
Expand Up @@ -876,6 +876,18 @@
"listings.waitlist.unitsAndWaitlist": "Available units and waitlist",
"lottery.applicationsThatQualifyForPreference": "Applications that qualify for this preference will be given a higher priority.",
"lottery.viewPreferenceList": "View preference list",
"months.january": "January",
"months.february": "February",
"months.march": "March",
"months.april": "April",
"months.may": "May",
"months.june": "June",
"months.july": "July",
"months.august": "August",
"months.september": "September",
"months.october": "October",
"months.november": "November",
"months.december": "December",
"nav.browseProperties": "Browse properties",
"nav.getFeedback": "We'd love to get your feedback!",
"nav.listings": "Listings",
Expand Down
12 changes: 12 additions & 0 deletions shared-helpers/src/locales/tl.json
Original file line number Diff line number Diff line change
Expand Up @@ -876,6 +876,18 @@
"listings.waitlist.unitsAndWaitlist": "Mga available na unit at waitlist",
"lottery.applicationsThatQualifyForPreference": "Ang mga application na kwalipikado para sa pagpipilian na ito ay bibigyan ng mas mataas na prayoridad.",
"lottery.viewPreferenceList": "Tingnan ang listahan ng kagustuhan",
"months.january": "Enero",
"months.february": "Pebrero",
"months.march": "Marso",
"months.april": "Abril",
"months.may": "Mayo",
"months.june": "Hunyo",
"months.july": "Hulyo",
"months.august": "Agosto",
"months.september": "Setyembre",
"months.october": "Oktubre",
"months.november": "Nobyembre",
"months.december": "Disyembre",
"nav.browseProperties": "Mag-browse ng mga katangian",
"nav.getFeedback": "Gusto naming makuha ang iyong feedback!",
"nav.listings": "Mga listahan",
Expand Down
Loading
Loading