Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1from report.models import LanguagePeopleGroupDisability 

2from report.utils import convert_to_int 

3 

4from .common import get_or_create_project 

5 

6 

7def increment(obj, keys, value=1): 

8 _dict = obj 

9 for key in keys[:-1]: 

10 if _dict.get(key) is None: 

11 _dict[key] = {} 

12 _dict = _dict[key] 

13 _dict[keys[-1]] = _dict.get(keys[-1], 0) + value 

14 

15 

16def extract(csv_data, generated_on): 

17 import_data = {} 

18 

19 # Collect Data 

20 for row in csv_data: 

21 pj_number = convert_to_int(row['ProjectID']) 

22 language = row['Language'] 

23 people_group = row['PeopleGroup'] 

24 disability = row['Disability'] 

25 

26 increment( 

27 import_data, 

28 (pj_number, language, people_group, disability) 

29 ) 

30 

31 # Clear database for given date 

32 LanguagePeopleGroupDisability.objects.filter(date=generated_on).all().delete() 

33 

34 # Save Data to DB 

35 for pj_number, language_data in import_data.items(): 

36 project = get_or_create_project(pj_number) 

37 for language, people_group_data in language_data.items(): 

38 for people_group, disability_data in people_group_data.items(): 

39 for disability, count in disability_data.items(): 

40 if count == 0: 40 ↛ 41line 40 didn't jump to line 41, because the condition on line 40 was never true

41 continue 

42 lpgd, _ = LanguagePeopleGroupDisability.objects.get_or_create( 

43 project=project, 

44 date=generated_on, 

45 language=language, 

46 people_group=people_group, 

47 disability=disability, 

48 ) 

49 lpgd.count = count 

50 lpgd.save()