Revision be7b2729
b/snf-astakos-app/docs/projects_specs.rst | ||
---|---|---|
140 | 140 |
*a unique serial number identifying the project* |
141 | 141 |
|
142 | 142 |
``application`` |
143 |
*the last application that was successfully synchronized with Quotaholder.* |
|
144 |
|
|
145 |
``last_application_approved`` |
|
143 | 146 |
*the application which has created or modified the project. |
144 |
An application is approved by setting it to this attribute.*
|
|
147 |
An application is approved by setting it to this attribute. |
|
145 | 148 |
|
146 |
``last_application_synced`` |
|
147 |
*the last application that was successfully synchronized with Quotaholder. |
|
148 | 149 |
Normally, this is the same as the ``application`` above. |
149 |
However, on approval, only ``application`` is set
|
|
150 |
However, on approval, only ``last_application_approved`` is set
|
|
150 | 151 |
so the two attributes differ, marking the project as pending definition |
151 | 152 |
synchronization. Upon successful synchronization with Quotaholder, |
152 |
``last_application_synced`` is also set, |
|
153 |
marking the project definition synchronized. |
|
153 |
``application`` is also set, marking the project definition synchronized. |
|
154 | 154 |
Note that if during the synchronization another approval |
155 |
updates ``application``, then after synchronization the project
|
|
156 |
is still out of sync, and needs another loop.* |
|
155 |
updates ``last_application_approved``, then after synchronization
|
|
156 |
the project is still out of sync, and needs another loop.*
|
|
157 | 157 |
|
158 | 158 |
``creation_date`` |
159 | 159 |
*when the project was created (i.e. was first approved)* |
... | ... | |
244 | 244 |
can be either **synchronized** or **unsyncrhonized**. |
245 | 245 |
|
246 | 246 |
An alive project is declared synchronized by setting |
247 |
``last_application_synced`` to be equal to the ``application``,
|
|
247 |
``application`` to be equal to ``last_application_approved``,
|
|
248 | 248 |
and setting ``membership_dirty`` to false, |
249 | 249 |
|
250 | 250 |
Semantically, the project becomes synchronized when its application |
... | ... | |
258 | 258 |
In general, also considering projects under termination, |
259 | 259 |
a project is declared synchronized if and only if: |
260 | 260 |
|
261 |
- ``last_application_synced`` equals ``application``
|
|
261 |
- ``last_application_approved`` equals ``application``
|
|
262 | 262 |
- ``membership_dirty`` is false |
263 | 263 |
- ``termination_start_date`` is null or ``termination_date`` is set |
264 | 264 |
|
... | ... | |
302 | 302 |
via a follow up application. |
303 | 303 |
|
304 | 304 |
If the precursor of an application is not associated with a project |
305 |
(i.e. no project references it as its defining ``application``),
|
|
305 |
(i.e. no project references it as its defining ``last_application_approved``),
|
|
306 | 306 |
then a new project entry is created and initialized. |
307 | 307 |
|
308 | 308 |
If the precursor of an application *is* associated with a valid project, |
Also available in: Unified diff