Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ FROM DelegateAccounts AS da
c.CentreName,
da.CentreID,
da.DateRegistered,
da.LastAccessed,
da.RegistrationConfirmationHash,
c.Active AS CentreActive,
COALESCE(ucd.Email, u.PrimaryEmail) AS EmailAddress,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ public class DelegateAccount
public bool CentreActive { get; set; }
public string CandidateNumber { get; set; } = string.Empty;
public DateTime DateRegistered { get; set; }
public DateTime? LastAccessed { get; set; }
public string? Answer1 { get; set; }
public string? Answer2 { get; set; }
public string? Answer3 { get; set; }
Expand Down
1 change: 1 addition & 0 deletions DigitalLearningSolutions.Data/Models/User/DelegateUser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ public class DelegateUser : User
public int UserId { get; set; }
public string CandidateNumber { get; set; } = string.Empty;
public DateTime? DateRegistered { get; set; }
public DateTime? LastAccessed { get; set; }
public int JobGroupId { get; set; }
public string? JobGroupName { get; set; }
public string? Answer1 { get; set; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public DelegateUserCard(DelegateEntity delegateEntity)
Password = delegateEntity.UserAccount.PasswordHash;
CandidateNumber = delegateEntity.DelegateAccount.CandidateNumber;
DateRegistered = delegateEntity.DelegateAccount.DateRegistered;
LastAccessed = delegateEntity.DelegateAccount.LastAccessed;
JobGroupId = delegateEntity.UserAccount.JobGroupId;
JobGroupName = delegateEntity.UserAccount.JobGroupName;
Answer1 = delegateEntity.DelegateAccount.Answer1;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,10 @@ IEnumerable<DelegateRegistrationPrompt> delegateRegistrationPrompts
{
RegistrationDate = delegateUser.DateRegistered.Value.ToString(DateHelper.StandardDateFormat);
}
if (delegateUser.LastAccessed.HasValue)
{
LastAccessed = delegateUser.LastAccessed.Value.ToString(DateHelper.StandardDateFormat);
}

DelegateRegistrationPrompts = delegateRegistrationPrompts;
RegistrationConfirmationHash = delegateUser.RegistrationConfirmationHash;
Expand All @@ -61,6 +65,7 @@ IEnumerable<DelegateRegistrationPrompt> delegateRegistrationPrompts
public int JobGroupId { get; set; }
public string? JobGroup { get; set; }
public string? RegistrationDate { get; set; }
public string? LastAccessed { get; set; }
public string ProfessionalRegistrationNumber { get; set; }
public string? RegistrationConfirmationHash { get; set; }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,91 +4,98 @@

<div class="searchable-element nhsuk-expander-group word-break" id="@Model.DelegateInfo.Id-card">

<details class="nhsuk-details nhsuk-expander">
<summary class="nhsuk-details__summary">
<span class="nhsuk-details__summary-text" id="@Model.DelegateInfo.Id-name">
<span class="searchable-element-title" name="name">@Model.DelegateInfo.TitleName</span>
@if (Model.DelegateInfo.Email == null)
@("(Email address not set)")
else
@DisplayStringHelper.GetEmailDisplayString(Model.DelegateInfo.Email)
<details class="nhsuk-details nhsuk-expander">
<summary class="nhsuk-details__summary">
<span class="nhsuk-details__summary-text" id="@Model.DelegateInfo.Id-name">
<span class="searchable-element-title" name="name">@Model.DelegateInfo.TitleName</span>
@if (Model.DelegateInfo.Email == null)
@("(Email address not set)")
else
@DisplayStringHelper.GetEmailDisplayString(Model.DelegateInfo.Email)

</span>
</summary>
</span>
</summary>

<div class="nhsuk-details__text">
<div class="nhsuk-details__text">

<partial name="SearchablePage/_FilterableTags" model="@Model.Tags" />
<partial name="SearchablePage/_FilterableTags" model="@Model.Tags" />

<dl class="nhsuk-summary-list details-list-with-button">
<div class="nhsuk-summary-list__row details-list-with-button__row">
<dt class="nhsuk-summary-list__key">
Name
</dt>
<partial name="_SummaryFieldValue" model="@Model.DelegateInfo.Name" />
</div>
<dl class="nhsuk-summary-list details-list-with-button">
<div class="nhsuk-summary-list__row details-list-with-button__row">
<dt class="nhsuk-summary-list__key">
Name
</dt>
<partial name="_SummaryFieldValue" model="@Model.DelegateInfo.Name" />
</div>

<div class="nhsuk-summary-list__row details-list-with-button__row">
<dt class="nhsuk-summary-list__key ">
Email
</dt>
<partial name="_SearchableSummaryFieldValue" model=@(Model.DelegateInfo.Email, "email") />
</div>
<div class="nhsuk-summary-list__row details-list-with-button__row">
<dt class="nhsuk-summary-list__key ">
Email
</dt>
<partial name="_SearchableSummaryFieldValue" model=@(Model.DelegateInfo.Email, "email") />
</div>

<div class="nhsuk-summary-list__row details-list-with-button__row">
<dt class="nhsuk-summary-list__key">
ID
</dt>
<partial name="_SearchableSummaryFieldValue" model=@(Model.DelegateInfo.CandidateNumber, "candidate-number") />
</div>
<div class="nhsuk-summary-list__row details-list-with-button__row">
<dt class="nhsuk-summary-list__key">
ID
</dt>
<partial name="_SearchableSummaryFieldValue" model=@(Model.DelegateInfo.CandidateNumber, "candidate-number") />
</div>

<div class="nhsuk-summary-list__row details-list-with-button__row">
<dt class="nhsuk-summary-list__key">
Registration date
</dt>
<partial name="_SummaryFieldValue" model="@Model.DelegateInfo.RegistrationDate" />
<div hidden name="registration-date">@Model.DelegateInfo.RegistrationDate</div>
</div>
<div class="nhsuk-summary-list__row details-list-with-button__row">
<dt class="nhsuk-summary-list__key">
Registration date
</dt>
<partial name="_SummaryFieldValue" model="@Model.DelegateInfo.RegistrationDate" />
<div hidden name="registration-date">@Model.DelegateInfo.RegistrationDate</div>
</div>

<div class="nhsuk-summary-list__row details-list-with-button__row">
<dt class="nhsuk-summary-list__key">
Job group
</dt>
<partial name="_SummaryFieldValue" model="@Model.DelegateInfo.JobGroup" />
<div hidden data-filter-value="@Model.JobGroupFilter"></div>
</div>
<div class="nhsuk-summary-list__row details-list-with-button__row">
<dt class="nhsuk-summary-list__key">
Last Accessed date
</dt>
<partial name="_SummaryFieldValue" model="@Model.DelegateInfo.LastAccessed" />
</div>

<div class="nhsuk-summary-list__row details-list-with-button__row">
<dt class="nhsuk-summary-list__key">
Professional Registration Number
</dt>
<partial name="_SummaryFieldValue" model="@Model.DelegateInfo.ProfessionalRegistrationNumber" />
</div>
<div class="nhsuk-summary-list__row details-list-with-button__row">
<dt class="nhsuk-summary-list__key">
Job group
</dt>
<partial name="_SummaryFieldValue" model="@Model.DelegateInfo.JobGroup" />
<div hidden data-filter-value="@Model.JobGroupFilter"></div>
</div>

@foreach (var delegateRegistrationPrompt in Model.DelegateInfo.DelegateRegistrationPrompts)
{
<div class="nhsuk-summary-list__row details-list-with-button__row">
<dt class="nhsuk-summary-list__key">@delegateRegistrationPrompt.Prompt</dt>
<partial name="_SummaryFieldValue" model="@delegateRegistrationPrompt.Answer" />
@if (Model.RegistrationPromptFilters.ContainsKey(delegateRegistrationPrompt.PromptNumber))
{
<div hidden data-filter-value="@Model.RegistrationPromptFilters[delegateRegistrationPrompt.PromptNumber]"></div>
}
</div>
}
</dl>
<div class="nhsuk-summary-list__row details-list-with-button__row">
<dt class="nhsuk-summary-list__key">
Professional Registration Number
</dt>
<partial name="_SummaryFieldValue" model="@Model.DelegateInfo.ProfessionalRegistrationNumber" />
</div>

<a class="nhsuk-button" asp-controller="ViewDelegate" asp-action="Index" asp-route-delegateId="@Model.DelegateInfo.Id" role="button">Manage delegate</a>
<a class="nhsuk-button nhsuk-button--secondary"
role="button"
data-return-page-enabled="true"
asp-controller="SetDelegatePassword"
asp-action="Index"
asp-route-delegateId="@Model.DelegateInfo.Id"
asp-route-isFromViewDelegatePage="false"
asp-route-returnPageQuery="@Model.ReturnPageQuery?.ToString()">
Set password
</a>
</div>
</details>
@foreach (var delegateRegistrationPrompt in Model.DelegateInfo.DelegateRegistrationPrompts)
{
<div class="nhsuk-summary-list__row details-list-with-button__row">
<dt class="nhsuk-summary-list__key">@delegateRegistrationPrompt.Prompt</dt>
<partial name="_SummaryFieldValue" model="@delegateRegistrationPrompt.Answer" />
@if (Model.RegistrationPromptFilters.ContainsKey(delegateRegistrationPrompt.PromptNumber))
{
<div hidden data-filter-value="@Model.RegistrationPromptFilters[delegateRegistrationPrompt.PromptNumber]"></div>
}
</div>
}
</dl>

<a class="nhsuk-button" asp-controller="ViewDelegate" asp-action="Index" asp-route-delegateId="@Model.DelegateInfo.Id" role="button">Manage delegate</a>
<a class="nhsuk-button nhsuk-button--secondary"
role="button"
data-return-page-enabled="true"
asp-controller="SetDelegatePassword"
asp-action="Index"
asp-route-delegateId="@Model.DelegateInfo.Id"
asp-route-isFromViewDelegatePage="false"
asp-route-returnPageQuery="@Model.ReturnPageQuery?.ToString()">
Set password
</a>
</div>
</details>
</div>
Loading