Add gender requirement (آقا/خانم/فرقی نمیکند) + employee (کارجو) panel
- Gender enum + GenderRequirement on Shift/JobOpening + Gender on UserPreferences (migration) - Employer PostShift/PostJob + admin Review have a gender select; parser detects آقا/خانم/مرد/زن - Gender badge on cards + detail; gender filter on Shifts/Jobs; gender in preferences - Recommendations exclude listings whose gender requirement conflicts with the person's gender - Two panels: new /Me employee (کارجو) panel (recommendations + saved + applied + prefs) alongside /Employer; nav routes by role; /Account/Profile → /Me Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -43,6 +43,14 @@
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
<div class="filter-group">
|
||||
<label>جنسیت مورد نیاز</label>
|
||||
<select name="GenderRequirement">
|
||||
<option value="0">فرقی نمیکند</option>
|
||||
<option value="1">آقا</option>
|
||||
<option value="2">خانم</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="filter-group">
|
||||
<label>نوع همکاری</label>
|
||||
<select name="EmploymentType">
|
||||
|
||||
@@ -25,6 +25,7 @@ public class PostJobModel : PageModel
|
||||
[BindProperty] public long? SalaryMin { get; set; }
|
||||
[BindProperty] public long? SalaryMax { get; set; }
|
||||
[BindProperty] public bool Negotiable { get; set; }
|
||||
[BindProperty] public Gender GenderRequirement { get; set; }
|
||||
[BindProperty] public string? Description { get; set; }
|
||||
[BindProperty] public string? Requirements { get; set; }
|
||||
|
||||
@@ -48,6 +49,7 @@ public class PostJobModel : PageModel
|
||||
EmploymentType = EmploymentType,
|
||||
SalaryMin = Negotiable ? null : SalaryMin,
|
||||
SalaryMax = Negotiable ? null : SalaryMax,
|
||||
GenderRequirement = GenderRequirement,
|
||||
Description = Description,
|
||||
Requirements = Requirements,
|
||||
Status = ShiftStatus.Open,
|
||||
|
||||
@@ -39,6 +39,14 @@
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
<div class="filter-group">
|
||||
<label>جنسیت مورد نیاز</label>
|
||||
<select name="GenderRequirement">
|
||||
<option value="0">فرقی نمیکند</option>
|
||||
<option value="1">آقا</option>
|
||||
<option value="2">خانم</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="filter-group">
|
||||
<label>تاریخ (میلادی)</label>
|
||||
<input type="date" name="Date" value="@Model.Date.ToString("yyyy-MM-dd")" dir="ltr" />
|
||||
|
||||
@@ -27,6 +27,7 @@ public class PostShiftModel : PageModel
|
||||
[BindProperty] public long? PayAmount { get; set; }
|
||||
[BindProperty] public int? SharePercent { get; set; } // سهم درآمد (٪)
|
||||
[BindProperty] public bool Negotiable { get; set; }
|
||||
[BindProperty] public Gender GenderRequirement { get; set; }
|
||||
[BindProperty] public string? Description { get; set; }
|
||||
|
||||
public async Task OnGetAsync()
|
||||
@@ -60,6 +61,7 @@ public class PostShiftModel : PageModel
|
||||
: (PayAmount is null && SharePercent is not null ? PayType.Percentage : PayType.PerShift),
|
||||
PayAmount = Negotiable ? null : PayAmount,
|
||||
SharePercent = Negotiable ? null : SharePercent,
|
||||
GenderRequirement = GenderRequirement,
|
||||
Status = ShiftStatus.Open,
|
||||
Source = ShiftSource.Direct, // posted directly by the facility
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user