feat(planning): implement constraint-first leave planner
This commit is contained in:
1 parent
ba8dbe92d9
commit
7ceaf1a57a
32 files changed
+4842
-880
No files matched your search
@@ -54,10 +54,29 @@ export class UserInput {
|
||||
},
|
||||
);
|
||||
const expiresLabel = this.tr().userInput.expires;
|
||||
return `${day.numberOfDays} ${typeName} (${expiresLabel} ${expiryDate})`;
|
||||
const classification = day.classification
|
||||
? this.getClassificationLabel(day.classification)
|
||||
: '';
|
||||
const reason = day.classification ? this.getReasonLabel(day.classification) : '';
|
||||
const explanation = classification ? `${classification}: ${reason}; ` : '';
|
||||
return `${day.numberOfDays} ${typeName} (${explanation}${expiresLabel} ${expiryDate})`;
|
||||
});
|
||||
});
|
||||
|
||||
private getClassificationLabel(classification: NonNullable<VacDay['classification']>): string {
|
||||
const labels = this.tr().userInput.remainingClassification;
|
||||
if (classification === 'unavoidable-expiry') return labels.unavoidableExpiry;
|
||||
if (classification === 'at-risk') return labels.atRisk;
|
||||
return labels.deferred;
|
||||
}
|
||||
|
||||
private getReasonLabel(classification: NonNullable<VacDay['classification']>): string {
|
||||
const labels = this.tr().userInput.remainingReason;
|
||||
if (classification === 'unavoidable-expiry') return labels.unavoidableExpiry;
|
||||
if (classification === 'at-risk') return labels.atRisk;
|
||||
return labels.deferred;
|
||||
}
|
||||
|
||||
protected hasRemainingDays = computed(() => this.remainingDays() > 0);
|
||||
|
||||
protected get daysOff() {
|
||||
|
||||
Reference in new issue
Block a user