28
28
from .field_list import required_metadata
29
29
from .filters import CollectionFilter
30
30
from .forms import CollectionForm , ImageMetadataForm , DescriptiveMetadataForm , UploadForm , collection_send
31
- from .models import UUID , Collection , ImageMetadata , DescriptiveMetadata , Project , ProjectPeople , People , Project , EventsLog , Contributor , Funder , Publication , Instrument , Dataset , Specimen , Image , Sheet , Consortium , ProjectConsortium , SWC
31
+ from .models import UUID , Collection , ImageMetadata , DescriptiveMetadata , Project , ProjectPeople , People , Project , EventsLog , Contributor , Funder , Publication , Instrument , Dataset , Specimen , Image , Sheet , Consortium , ProjectConsortium , SWC , ProjectAssociation
32
32
from .tables import CollectionTable , DescriptiveMetadataTable , CollectionRequestTable
33
33
import uuid
34
34
import datetime
@@ -212,6 +212,7 @@ def manageProjects(request):
212
212
short_name = Consortium .objects .get (id = c .id ).short_name
213
213
project .short_names .append (short_name )
214
214
project .short_names = ', ' .join (project .short_names )
215
+ # project.parent_project = ProjectAssociation.objects.get(project_id=project.id)
215
216
return render (request , 'ingest/manage_projects.html' , {'allprojects' :allprojects , 'pi' :pi })
216
217
217
218
# this functions allows pi to see all the collections
@@ -240,27 +241,36 @@ def project_form(request):
240
241
current_user = request .user
241
242
people = People .objects .get (auth_user_id_id = current_user .id )
242
243
project_person = ProjectPeople .objects .filter (people_id = people .id ).all ()
244
+ allprojects = []
245
+ for row in project_person :
246
+ project_id = row .project_id_id
247
+ project = Project .objects .get (id = project_id )
248
+ allprojects .append (project )
249
+
243
250
consortia = Consortium .objects .all
244
251
for attribute in project_person :
245
252
if attribute .is_pi :
246
253
pi = True
247
254
else :
248
255
pi = False
249
- return render (request , 'ingest/project_form.html' , {'pi' :pi , 'consortia' :consortia })
256
+ return render (request , 'ingest/project_form.html' , {'pi' :pi , 'allprojects' : allprojects , ' consortia' :consortia })
250
257
251
258
# takes the data from project_form
252
259
@login_required
253
260
def create_project (request ):
254
261
new_project = json .loads (request .body )
262
+ print (new_project )
255
263
items = []
256
264
for item in new_project :
257
265
items .append (item ['funded_by' ])
258
266
items .append (item ['name' ])
259
267
items .append (item ['consortia_ids' ])
268
+ items .append (item ['parent_project' ])
260
269
261
270
funded_by = item ['funded_by' ]
262
271
name = item ['name' ]
263
272
consortia_ids = item ['consortia_ids' ]
273
+ parent_project = item ['parent_project' ]
264
274
265
275
# write project to the project table
266
276
project = Project (funded_by = funded_by , name = name )
@@ -272,6 +282,9 @@ def create_project(request):
272
282
project_consortium = ProjectConsortium (project_id = proj_id , consortium_id = c )
273
283
project_consortium .save ()
274
284
285
+ project_association = ProjectAssociation (project_id = proj_id , parent_project_id = int (parent_project ))
286
+ project_association .save ()
287
+
275
288
276
289
# create a project_people row for this pi so they can view project on pi dashboard
277
290
project_id_id = project .id
0 commit comments