erasmus-without-paper / ewp-specs-api-omobilities

Specifications of EWP's Outgoing Mobilities API.
MIT License
1 stars 4 forks source link

Tagging snapshots as "awaiting approval" #16

Closed wrygiel closed 7 years ago

wrygiel commented 7 years ago

Currently (v0.3.0), <latest-draft-snapshot> contains the snapshot only:

<xs:element name="latest-draft-snapshot" minOccurs="1" maxOccurs="1" type="SnapshotOf_ComponentsStudied"/>

There is no information as to which parties have approved this draft. (And only after all three parties approve it, this snapshot will be moved to <latest-approved-snapshot>.)

It has been proposed that perhaps we should expose the information on:

For example, we could add the following two attributes to this element:

<xs:element name="latest-draft-snapshot" minOccurs="1" maxOccurs="1">
    <xs:complexType>
        <xs:complexContent>
            <xs:extension base="SnapshotOf_ComponentsStudied">
                <xs:attribute name="has-been-approved-by" use="optional">
                    <xs:simpleType>
                        <xs:list>
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:enumeration value="student"></xs:enumeration>
                                    <xs:enumeration value="sending-hei"></xs:enumeration>
                                    <xs:enumeration value="receiving-hei"></xs:enumeration>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:list>
                    </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="awaits-being-approved-by" use="optional">
                    <xs:simpleType>
                        <xs:list>
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:enumeration value="student"></xs:enumeration>
                                    <xs:enumeration value="sending-hei"></xs:enumeration>
                                    <xs:enumeration value="receiving-hei"></xs:enumeration>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:list>
                    </xs:simpleType>
                </xs:attribute>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
</xs:element>

And then:

<latest-draft-snapshot awaits-being-approved-by="receiving-hei">
    <!--
    This is a clear indicator for the receiving HEI that it should review this
    mobility.
    -->
</latest-draft-snapshot>
<latest-draft-snapshot has-been-approved-by="student" awaits-being-approved-by="sending-hei">
    <!--
    And this indicates that we want the Sending Coordinator to approve it
    first. (We do not need for the Receiving Coordinator to approve it now.)
    -->
</latest-draft-snapshot>
<latest-draft-snapshot has-been-approved-by="student sending-hei">
    <!--
    Is has been approved by all except the Receiving Coordinator, but - for
    some reason - the sending HEI is not requesting the Receiving Coordinator
    to approve it yet.
    -->
</latest-draft-snapshot>

I'm not sure if has-been-approved-by in necessary, but it seems informative. And awaits-being-approved-by would serve a particular purpose (notifying the receiving HEI that we are waiting for their action).

@erasmus-without-paper/all-members

NicoVanMoortel commented 7 years ago

I'm confused. If for example: has-been-approved-by = "sending-hei" Does this not result automatically in: awaits-being-approved-by = "student receiving-hei"?

kaiqu commented 7 years ago

If for example: has-been-approved-by = "sending-hei" Does this not result automatically in: awaits-being-approved-by = "student receiving-hei"?

I agree - it's only necessary with either has-been-approved-by or awaits-being-approved-by (one is deducible from the other).

wrygiel commented 7 years ago

If for example: has-been-approved-by = "sending-hei" Does this not result automatically in: awaits-being-approved-by = "student receiving-hei"?

Perhaps, but not necessarily. I'm not sure yet.

For example, I can imagine a scenario, where your UI has button labelled "send this to the partner for approval". Before this button is pressed, the draft is still being drafted, but is not an official proposal. Maybe such a draft can be approved by the student while still being drafted. And only afterwards the sending coordinator pushes the button. Only then receiving-hei would be added to awaits-being-approved-by.

Of course, in some other system, this might happen automatically without pushing the button. I am not sure how much we can require UI to look like, so I'm thinking about introducing some flexibility.

NicoVanMoortel commented 7 years ago

Why would a receiving HEI be interested in a draft that is not approved by the sending HEI? Maybe even stronger, a draft that is not approved by the sending HEI and by the student.

wrygiel commented 7 years ago

Why would a receiving HEI be interested in a draft that is not approved by the sending HEI?

One of the usecases WP4 was required to support was to allow the receiving HEI to suggest changes in the drafts, or post drafts of their own. Of course, sending HEI will be allowed to ignore such proposals sent by the receiving HEI, but some sending HEIs might import these proposals.

This means that, in theory, this may look like this:

<latest-draft-snapshot has-been-approved-by="receiving-hei" awaits-being-approved-by="sending-hei student">
    <!--
    The Receiving Coordinator suggested some updates to the existing LA.
    These updates were received by the Sending HEI and saved as "latest draft".
    -->
</latest-draft-snapshot>
NicoVanMoortel commented 7 years ago

Ok. To come back to the question, do we need "approved by" and "awaits being approved". In the scenario you give: has-been-approved-by="receiving-hei" means that the student and sending HEI have to approve.

wrygiel commented 7 years ago

I was thinking that perhaps the sending HEI might want to suggest a particular order of approvals. For example, first wait for the draft to be approved by the student, and only afterwards notify the receiving coordinator that it is waiting for his approval?

NicoVanMoortel commented 7 years ago

Why would a sending HEI make such a suggestion? And why would a receiving HEI take it into account...

And even if some use case exists it is not required. It's extra functionality. I would suggest to keep it as clean and simple as possible and try to make a working PoC for it.

wrygiel commented 7 years ago

Why would a sending HEI make such a suggestion?

It doesn't have to, but we could allow it. @janinamincer-daszkiewicz told me that in Poland this needs to be approved in proper order (e.g. because we don't want to disturb the Receiving Coordinator until a student approves it first).

And why would a receiving HEI take it into account...

E.g. the receiving host would notify the receiving coordinator about "new LAs waiting for him" only after such LAs are marked with awaits-being-approved-by="receiving-hei".

Of course, the coordinator may still try to approve it before such notification is received, and the sending host would probably accept such approval (even before it marks it with awaits-being-approved-by="receiving-hei").

wrygiel commented 7 years ago

@NicoVanMoortel, @kaiqu - please look at https://github.com/erasmus-without-paper/ewp-specs-api-mobilities/commit/c7694b5beb207e615e087186d7a6c788850ea5b8 and comment if it makes sense to you.

It would also be nice to hear from @georgschermann. Do I remember correctly, that in SOP it is the receiving-hei which approves the LA before sending-hei does?

kaiqu commented 7 years ago

@kaiqu - please look at c7694b5 and comment if it makes sense to you.

Sorry - since delivering the "final" version of the data model, I have been working with other things, and have dropped out of the EWP mindset. The proposal looks fine to me superficially, but I am leaving for Kiel in a couple of days, and don't have the capacity to dive into the details of snapshots at the moment.

I will probably have to catch up when assisting in the implementation process here at CERES...

georgschermann commented 7 years ago

In our system it depends on the workflow of every university. We provide possibilities for both universities to sign the agreement in it's digital form. Who signs first or who signs it at all depends.

Most common cases in our system are that the university using Mobility-Online signs the digital version first and then create a pre-signed pdf document which is later signed by the partner. Weather the student is incoming or outgoing, its the receiving-hei or the sending-hei first.

wrygiel commented 7 years ago

Weather the student is incoming or outgoing, its the receiving-hei or the sending-hei first.

You have separate LA documents for outgoing and incoming students?

wrygiel commented 7 years ago

Oh, no, sorry - I didn't read you correctly. You have a single LA per mobility, and usually it's the HEI who is using Mobility-Online who signs it first. This HEI may be a sending-hei or receiving-hei.

wrygiel commented 7 years ago

If I understood everyone correctly, then I believe that:

So, I'm not sure - should we leave it, or get rid of it? For now, I think we'll leave it. Most partners will simply ignore it, but it will make adoption easier for some other partners. We might reopen this issue if it turns out that none of the partners seem to be using this feature.