Revision dfbf5c50 snf-astakos-app/docs/projects_specs.rst

b/snf-astakos-app/docs/projects_specs.rst
7 7

  
8 8
Definition
9 9
----------
10
A **definition** for a project represents the initialization
11
or modification of a project has the following attributes:
10
A **definition** for a project, which represents the initialization
11
or modification of a project, has the following attributes:
12 12

  
13 13
``name``
14 14
    *in dot-hierarchical dns-like form*
......
197 197
4. **Suspended projects**
198 198

  
199 199
    A valid project is declared **terminated** if and only if
200
    
200

  
201 201
    - its ``termination_date`` is null
202 202
    - its ``last_approval_date`` is null,
203 203
      or its ``limit_on_members_number`` and ``limits_on_resources`` are violated
......
232 232
    The status of the project's synchronization with Quotaholder
233 233
    can be either **synchronized** or **unsyncrhonized**.
234 234

  
235
    An alive project is delcared synchronized by setting
235
    An alive project is declared synchronized by setting
236 236
    ``last_application_synced`` to be equal to the ``application``,
237 237
    and setting ``membership_updated`` to false,
238 238

  
......
265 265
    If either ``creation_date`` or ``last_approval_date``
266 266
    is in the future, the project state is declared **inconsistent**
267 267
    but the project is still considered created or approved, respectively.
268
    
268

  
269 269
    If ``termination_date`` is in the future, the project state is declared
270 270
    **inconsistent** but the project is still considered terminated.
271 271

  
......
279 279

  
280 280
    Every application for a project can be followed up with another one.
281 281
    The new application points back to it with its ``precursor`` attribute.
282
    
282

  
283 283
    This means that an applicant can update their application
284 284
    before it has been approved.
285
    
285

  
286 286
    Apart from an applicant, whoever can approve the project,
287 287
    can also post a follow up application for it, modifying
288 288
    some aspects of the definition and approve that instead.
289 289
    For example, a user might request for 100 GB storage,
290 290
    but the Service may approve a project with only 80GB,
291 291
    via a follow up application.
292
    
292

  
293 293
    If the precursor of an application is not associated with a project
294 294
    (i.e. no project references it as its defining ``application``),
295 295
    then a new project entry is created and initialized.
296
    
296

  
297 297
    If the precursor of an application *is* associated with a valid project,
298 298
    then the same project entry is used and is re-initialized according
299 299
    to the new application's definition.
......
366 366

  
367 367
   After committing, the procedure to synchronize the project (see below)
368 368
   should be called.
369
   
369

  
370 370
#. Synchronize a membership with quotaholder
371 371

  
372 372
   This procedure is not required to be an independent procedure
......
374 374
   That is, if user synchronization takes care of all memberships,
375 375
   one can call user synchronization instead of membership synchronization.
376 376

  
377
#. Synchronize a user with quotaholder 
377
#. Synchronize a user with quotaholder
378 378

  
379 379
   User synchronization is equivalent to the synchronization of
380 380
   all the user's memberships.
......
396 396
Interaction with the feature is going through several view elements.
397 397
Each element has two pieces of input,
398 398
the *objects being referenced*, and the *accessing user*,
399
and its appearance and function is accordingly parametrized.
399
and its appearance and function is accordingly parameterized.
400 400

  
401 401
Each *project element* may need to display information
402 402
that internally belongs to its linked object,

Also available in: Unified diff