[Profile] Show applicant avatar + resume to employers; profile-completeness nudge
Employer Listings: each applicant row now shows their avatar (or initials) and a «مشاهده رزومه» link when they uploaded one (served via /resume/{id}, already access-controlled to the receiving employer). Applicant projection avoids loading avatar/resume blobs. Me panel: a nudge banner prompts users to complete their profile (name/photo/resume) when any is missing, linking to /Me/Profile.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -27,6 +27,13 @@
|
||||
</div>
|
||||
|
||||
<div class="container section">
|
||||
@if (Model.ProfileIncomplete)
|
||||
{
|
||||
<div class="profile-nudge">
|
||||
<span class="pn-text">✨ پروفایلت را کامل کن (نام، تصویر، رزومه) تا شانس پذیرشات بیشتر شود.</span>
|
||||
<a class="btn btn-accent btn-sm" asp-page="/Me/Profile">تکمیل پروفایل</a>
|
||||
</div>
|
||||
}
|
||||
<div class="rec-banner">
|
||||
<div>
|
||||
<h2 style="margin:0 0 4px;">✨ پیشنهادهای ویژه شما</h2>
|
||||
|
||||
@@ -31,11 +31,14 @@ public class IndexModel : PageModel
|
||||
public List<JobOpening> AppliedJobs { get; private set; } = new();
|
||||
public Dictionary<int, ApplicationStatus> ShiftAppStatus { get; private set; } = new();
|
||||
public Dictionary<int, ApplicationStatus> JobAppStatus { get; private set; } = new();
|
||||
public bool ProfileIncomplete { get; private set; }
|
||||
|
||||
public async Task OnGetAsync()
|
||||
{
|
||||
var userId = int.Parse(User.FindFirstValue(ClaimTypes.NameIdentifier)!);
|
||||
CurrentUser = await _db.Users.FindAsync(userId);
|
||||
ProfileIncomplete = CurrentUser is not null &&
|
||||
(string.IsNullOrWhiteSpace(CurrentUser.FullName) || CurrentUser.Avatar is null || CurrentUser.Resume is null);
|
||||
Prefs = await _interest.GetPreferencesAsync();
|
||||
Recommendations = await _recs.GetForVisitorAsync(6);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user