Skip to content
This repository has been archived by the owner on Jan 2, 2024. It is now read-only.

Commit

Permalink
Merge pull request #977 from solita/feature/AE-2029
Browse files Browse the repository at this point in the history
Feature/ae 2029
  • Loading branch information
Juholei authored Nov 21, 2023
2 parents ca1f00a + b863037 commit 6bb6408
Show file tree
Hide file tree
Showing 9 changed files with 395 additions and 100 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -54,16 +54,21 @@
)
);
const osapuoliSpecificDataIndexForOsapuoli = osapuoliId =>
Toimenpiteet.osapuoliSpecificDataIndexForOsapuoli(toimenpide, osapuoliId);
const osapuoliSpecificDataIndexForOsapuoli = osapuoli =>
Toimenpiteet.osapuoliSpecificDataIndexForOsapuoli(
toimenpide,
osapuoli.id,
Osapuolet.getOsapuoliType(osapuoli)
);
const previewOsapuoliDocument = osapuoli => _ => {
// Include osapuoli-specific-data for only the current osapuoli in the
// preview api call and validation so unfilled osapuoli data doesn't
// affect previewing filled ones
const previewToimenpide = Toimenpiteet.toimenpideForOsapuoli(
toimenpide,
osapuoli.id
osapuoli.id,
Osapuolet.getOsapuoliType(osapuoli)
);
preview(
osapuoli.type.preview(id, osapuoli.id, previewToimenpide),
Expand Down Expand Up @@ -138,17 +143,17 @@
lens={R.lensPath([
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'document'
])} />
{#if Toimenpiteet.documentExistsForOsapuoli(toimenpide, osapuoli.id)}
{#if Toimenpiteet.documentExistsForOsapuoli(toimenpide, osapuoli.id, Osapuolet.getOsapuoliType(osapuoli))}
<div class="w-full py-4">
<Select2
bind:model={toimenpide}
lens={R.lensPath([
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'recipient-answered'
])}
format={value =>
Expand All @@ -158,7 +163,7 @@
items={[true, false]} />
</div>

{#if R.path(['type-specific-data', 'osapuoli-specific-data', osapuoliSpecificDataIndexForOsapuoli(osapuoli.id), 'recipient-answered'], toimenpide)}
{#if R.path(['type-specific-data', 'osapuoli-specific-data', osapuoliSpecificDataIndexForOsapuoli(osapuoli), 'recipient-answered'], toimenpide)}
<div class="w-full py-4">
<Textarea
id={'toimenpide.answer-commentary-fi'}
Expand All @@ -168,7 +173,7 @@
lens={R.lensPath([
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'answer-commentary-fi'
])}
required
Expand All @@ -178,7 +183,7 @@
[
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'answer-commentary-fi'
],
schema
Expand All @@ -194,7 +199,7 @@
lens={R.lensPath([
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'answer-commentary-sv'
])}
required
Expand All @@ -204,7 +209,7 @@
[
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'answer-commentary-sv'
],
schema
Expand All @@ -221,7 +226,7 @@
lens={R.lensPath([
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'statement-fi'
])}
required
Expand All @@ -231,7 +236,7 @@
[
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'statement-fi'
],
schema
Expand All @@ -248,7 +253,7 @@
lens={R.lensPath([
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'statement-sv'
])}
required
Expand All @@ -258,7 +263,7 @@
[
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'statement-sv'
],
schema
Expand All @@ -274,7 +279,7 @@
lens={R.lensPath([
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'hallinto-oikeus-id'
])}
modelToItem={Maybe.fold(
Expand All @@ -290,7 +295,7 @@
[
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'hallinto-oikeus-id'
],
schema
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,16 +54,21 @@
)
);
const osapuoliSpecificDataIndexForOsapuoli = osapuoliId =>
Toimenpiteet.osapuoliSpecificDataIndexForOsapuoli(toimenpide, osapuoliId);
const osapuoliSpecificDataIndexForOsapuoli = osapuoli =>
Toimenpiteet.osapuoliSpecificDataIndexForOsapuoli(
toimenpide,
osapuoli.id,
Osapuolet.getOsapuoliType(osapuoli)
);
const previewOsapuoliDocument = osapuoli => _ => {
// Include osapuoli-specific-data for only the current osapuoli in the
// preview api call and validation so unfilled osapuoli data doesn't
// affect previewing filled ones
const previewToimenpide = Toimenpiteet.toimenpideForOsapuoli(
toimenpide,
osapuoli.id
osapuoli.id,
Osapuolet.getOsapuoliType(osapuoli)
);
preview(
osapuoli.type.preview(id, osapuoli.id, previewToimenpide),
Expand Down Expand Up @@ -138,17 +143,17 @@
lens={R.lensPath([
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'document'
])} />
{#if Toimenpiteet.documentExistsForOsapuoli(toimenpide, osapuoli.id)}
{#if Toimenpiteet.documentExistsForOsapuoli(toimenpide, osapuoli.id, Osapuolet.getOsapuoliType(osapuoli))}
<div class="w-full py-4">
<Select2
bind:model={toimenpide}
lens={R.lensPath([
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'recipient-answered'
])}
format={value =>
Expand All @@ -167,7 +172,7 @@
lens={R.lensPath([
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'answer-commentary-fi'
])}
required
Expand All @@ -177,7 +182,7 @@
[
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'answer-commentary-fi'
],
schema
Expand All @@ -193,7 +198,7 @@
lens={R.lensPath([
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'answer-commentary-sv'
])}
required
Expand All @@ -203,7 +208,7 @@
[
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'answer-commentary-sv'
],
schema
Expand All @@ -220,7 +225,7 @@
lens={R.lensPath([
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'statement-fi'
])}
required
Expand All @@ -230,7 +235,7 @@
[
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'statement-fi'
],
schema
Expand All @@ -247,7 +252,7 @@
lens={R.lensPath([
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'statement-sv'
])}
required
Expand All @@ -257,7 +262,7 @@
[
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'statement-sv'
],
schema
Expand All @@ -273,7 +278,7 @@
lens={R.lensPath([
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'hallinto-oikeus-id'
])}
modelToItem={Maybe.fold(
Expand All @@ -289,7 +294,7 @@
[
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'hallinto-oikeus-id'
],
schema
Expand Down
25 changes: 15 additions & 10 deletions src/pages/valvonta-kaytto/notice-bailiff-osapuolet-table.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,12 @@
R.prop('rooli-id')
);
const osapuoliSpecificDataIndexForOsapuoli = osapuoliId =>
Toimenpiteet.osapuoliSpecificDataIndexForOsapuoli(toimenpide, osapuoliId);
const osapuoliSpecificDataIndexForOsapuoli = osapuoli =>
Toimenpiteet.osapuoliSpecificDataIndexForOsapuoli(
toimenpide,
osapuoli.id,
Osapuolet.getOsapuoliType(osapuoli)
);
</script>

<style type="text/postcss">
Expand Down Expand Up @@ -102,13 +106,13 @@
{/if}
</td>
<td class="etp-table--td court-container">
{#if Osapuolet.isOmistaja(osapuoli) && Toimenpiteet.documentExistsForOsapuoli(toimenpide, osapuoli.id)}
{#if Osapuolet.isOmistaja(osapuoli) && Toimenpiteet.documentExistsForOsapuoli(toimenpide, osapuoli.id, Osapuolet.getOsapuoliType(osapuoli))}
<Select
bind:model={toimenpide}
lens={R.lensPath([
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'karajaoikeus-id'
])}
modelToItem={Maybe.fold(
Expand All @@ -126,7 +130,7 @@
[
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'karajaoikeus-id'
],
schema
Expand All @@ -139,22 +143,22 @@
{/if}
</td>
<td class="etp-table--td">
{#if Osapuolet.isOmistaja(osapuoli) && Toimenpiteet.documentExistsForOsapuoli(toimenpide, osapuoli.id)}
{#if Osapuolet.isOmistaja(osapuoli) && Toimenpiteet.documentExistsForOsapuoli(toimenpide, osapuoli.id, Osapuolet.getOsapuoliType(osapuoli))}
<Input
bind:model={toimenpide}
required={true}
type="email"
lens={R.lensPath([
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'haastemies-email'
])}
validators={R.path(
[
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'haastemies-email'
],
schema
Expand Down Expand Up @@ -184,7 +188,8 @@
role="button"
hidden={!Toimenpiteet.documentExistsForOsapuoli(
toimenpide,
osapuoli.id
osapuoli.id,
Osapuolet.getOsapuoliType(osapuoli)
)}
on:click|stopPropagation={disabled ||
preview(
Expand All @@ -209,7 +214,7 @@
lens={R.lensPath([
'type-specific-data',
'osapuoli-specific-data',
osapuoliSpecificDataIndexForOsapuoli(osapuoli.id),
osapuoliSpecificDataIndexForOsapuoli(osapuoli),
'document'
])} />
</div>
Expand Down
10 changes: 10 additions & 0 deletions src/pages/valvonta-kaytto/osapuolet.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,13 @@ export const toimitustapaErrorKey = {
? Maybe.Some('email')
: Maybe.None()
};

/**
* Osapuoli is henkilo if the object has props etunimi and sukunimi, otherwise it's yritys
* @param {Object} osapuoli
* @returns {('henkilo'|'yritys')}
*/
export const getOsapuoliType = osapuoli =>
R.has('etunimi', osapuoli) && R.has('sukunimi', osapuoli)
? 'henkilo'
: 'yritys';
2 changes: 1 addition & 1 deletion src/pages/valvonta-kaytto/schema.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ export const toimenpideSave = {
fine: Validation.MaybeInterval(0, Number.MAX_VALUE),
'osapuoli-specific-data': [
{
'osapuoli-id': [],
osapuoli: { id: [], type: [] },
'hallinto-oikeus-id': Validation.MaybeInterval(0, 5),
'karajaoikeus-id': Validation.MaybeInterval(0, 19),
'haastemies-email': [
Expand Down
Loading

0 comments on commit 6bb6408

Please sign in to comment.