From 83585b781b355ac4da385a969db7358445be0094 Mon Sep 17 00:00:00 2001 From: yash Date: Wed, 1 May 2013 12:53:14 +0530 Subject: [PATCH] creating new branch dimagi2 --- dimagi/__init__.py | 0 dimagi/form_screening.xml | 177 +++ dimagi/mahabubnagar1_cluster.xls | Bin 0 -> 33280 bytes dimagi/mahabubnagar_cluster.xls | Bin 0 -> 33280 bytes dimagi/migrations/0001_initial.py | 36 + ...rror_code__add_field_xmlsubmission_erro.py | 42 + ...sername__add_field_xmlsubmission_start_.py | 53 + dimagi/migrations/__init__.py | 0 dimagi/models.py | 19 + dimagi/scripts/Fixture.xls | Bin 0 -> 244736 bytes dimagi/scripts/Fixture.xlsx | Bin 0 -> 113692 bytes dimagi/scripts/Fixture_gulzar.xlsx | Bin 0 -> 31272 bytes dimagi/scripts/__init__.py | 0 dimagi/scripts/create_initial_cases.py | 16 + dimagi/scripts/fixture_delete.py | 28 + dimagi/scripts/generate_excel.py | 253 ++++ dimagi/scripts/new_gen_excel.py | 314 +++++ dimagi/scripts/person_case | 1033 +++++++++++++++++ dimagi/scripts/save_adoption_data.py | 33 + dimagi/scripts/save_mobile_data.py | 142 +++ dimagi/scripts/trial-2-Fixture_group.xlsx | Bin 0 -> 21453 bytes dimagi/scripts/trial-2-Fixtures_04_22.xlsx | Bin 0 -> 16217 bytes dimagi/scripts/update_functions.py | 123 ++ dimagi/scripts/userfile.json | 1 + dimagi/scripts/userfile_functions.py | 112 ++ dimagi/scripts/userfileappilot.json | 1 + dimagi/scripts/video_schedule.py | 43 + dimagi/scripts/video_schedule.xls | Bin 0 -> 41984 bytes dimagi/submitted/adoption_sample1.xml | 20 + dimagi/submitted/sample1.xml | 125 ++ dimagi/tests.py | 16 + dimagi/urls.py | 6 + dimagi/views.py | 31 + dimagi/xforms/form_adoption.xml | 131 +++ dimagi/xforms/form_screening.xml | 247 ++++ 35 files changed, 3002 insertions(+) create mode 100644 dimagi/__init__.py create mode 100644 dimagi/form_screening.xml create mode 100644 dimagi/mahabubnagar1_cluster.xls create mode 100644 dimagi/mahabubnagar_cluster.xls create mode 100644 dimagi/migrations/0001_initial.py create mode 100644 dimagi/migrations/0002_auto__add_field_xmlsubmission_error_code__add_field_xmlsubmission_erro.py create mode 100644 dimagi/migrations/0003_auto__add_field_xmlsubmission_username__add_field_xmlsubmission_start_.py create mode 100644 dimagi/migrations/__init__.py create mode 100644 dimagi/models.py create mode 100644 dimagi/scripts/Fixture.xls create mode 100644 dimagi/scripts/Fixture.xlsx create mode 100644 dimagi/scripts/Fixture_gulzar.xlsx create mode 100644 dimagi/scripts/__init__.py create mode 100644 dimagi/scripts/create_initial_cases.py create mode 100644 dimagi/scripts/fixture_delete.py create mode 100644 dimagi/scripts/generate_excel.py create mode 100644 dimagi/scripts/new_gen_excel.py create mode 100644 dimagi/scripts/person_case create mode 100644 dimagi/scripts/save_adoption_data.py create mode 100644 dimagi/scripts/save_mobile_data.py create mode 100644 dimagi/scripts/trial-2-Fixture_group.xlsx create mode 100644 dimagi/scripts/trial-2-Fixtures_04_22.xlsx create mode 100644 dimagi/scripts/update_functions.py create mode 100644 dimagi/scripts/userfile.json create mode 100644 dimagi/scripts/userfile_functions.py create mode 100644 dimagi/scripts/userfileappilot.json create mode 100644 dimagi/scripts/video_schedule.py create mode 100644 dimagi/scripts/video_schedule.xls create mode 100644 dimagi/submitted/adoption_sample1.xml create mode 100644 dimagi/submitted/sample1.xml create mode 100644 dimagi/tests.py create mode 100644 dimagi/urls.py create mode 100644 dimagi/views.py create mode 100644 dimagi/xforms/form_adoption.xml create mode 100644 dimagi/xforms/form_screening.xml diff --git a/dimagi/__init__.py b/dimagi/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dimagi/form_screening.xml b/dimagi/form_screening.xml new file mode 100644 index 0000000000..aebfd394b9 --- /dev/null +++ b/dimagi/form_screening.xml @@ -0,0 +1,177 @@ + + + Screening + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Enter Attendance + + + Attendance Record + + + Current Index + + + + Question Asked + + + + + + Yes + + + No + + + Interested + + + Yes + + + No + + + Village + + + Mediator + + + Group + + + Video + + + Date + + + Time + + + + + + + + + \ No newline at end of file diff --git a/dimagi/mahabubnagar1_cluster.xls b/dimagi/mahabubnagar1_cluster.xls new file mode 100644 index 0000000000000000000000000000000000000000..dc8d1c2839e89de8aa85e7ec64d8db28352100de GIT binary patch literal 33280 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 PXZio&{^`9n3jhBG{ooa> literal 0 HcmV?d00001 diff --git a/dimagi/mahabubnagar_cluster.xls b/dimagi/mahabubnagar_cluster.xls new file mode 100644 index 0000000000000000000000000000000000000000..e468fcf73720d30f187a3a07ac2362dd3a779c4c GIT binary patch literal 33280 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 IfA#DC7maaa&j0`b literal 0 HcmV?d00001 diff --git a/dimagi/scripts/Fixture.xlsx b/dimagi/scripts/Fixture.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..fb894a60e93b474cd2bf3d944f160a757903103c GIT binary patch literal 113692 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 z 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
vGdl=NwK@L0+=<+8b|Yq)-94KtR>Vhi=&5`; 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
^F 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 literal 0 HcmV?d00001 diff --git a/dimagi/scripts/Fixture_gulzar.xlsx b/dimagi/scripts/Fixture_gulzar.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3b6654346d3a5be676d1b5f519b48830bea4b195 GIT binary patch literal 31272 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 Z)m}}+5x^5TIF#UT8y*gh@-67Q{{wzS+w%Yb literal 0 HcmV?d00001 diff --git a/dimagi/scripts/__init__.py b/dimagi/scripts/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dimagi/scripts/create_initial_cases.py b/dimagi/scripts/create_initial_cases.py new file mode 100644 index 0000000000..31ed6fa4e5 --- /dev/null +++ b/dimagi/scripts/create_initial_cases.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +import settings +from django.core.management import setup_environ +setup_environ(settings) +from userfile_functions import read_userfile, make_upload_file, upload_file + +data = read_userfile('userfile.json') +for entry in data: + print entry['username'] + villages = entry['villages'] + filename = entry['username'] + '.xml' + file_to_upload = make_upload_file(villages, filename) + break + + + diff --git a/dimagi/scripts/fixture_delete.py b/dimagi/scripts/fixture_delete.py new file mode 100644 index 0000000000..b8e886be98 --- /dev/null +++ b/dimagi/scripts/fixture_delete.py @@ -0,0 +1,28 @@ +import urllib2 + +print "Fetching ..." +opener = urllib2.build_opener(urllib2.HTTPHandler) +opener.addheaders =[('User-agent', 'Mozilla/5.0'), + ('user', 'nandini@digitalgreen:digitalgreen'), + ('Cookie', 'csrftoken=97a5a243ad2abf742d6efb8c8d761c4f; sessionid=2b175aad09329500ba61126ecc88cf20; __utma=166502700.872983835.1346667629.1354086932.1354120837.88; __utmb=166502700.3.10.1354120837; __utmc=166502700; __utmz=166502700.1352897150.78.5.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)')] +response = opener.open('https://www.commcarehq.org/a/digitalgreen/fixtures/data-types/') +print "Data Types Retrieved" +string_response = response.read() + +types = string_response.split('fields') +ids_to_delete = [] +for i in range(len(types)-1): + ids_to_delete.append(types[i+1].partition('_id": "')[2].partition('"}')[0]) +print ids_to_delete +if len(ids_to_delete) == 0: + print "Nothing to delete" +else: + for id in ids_to_delete: + try: + request_string = 'https://www.commcarehq.org/a/digitalgreen/fixtures/data-types/' + str(id) + request = urllib2.Request(request_string) + request.get_method = lambda: 'DELETE' + url = opener.open(request) + print "Deleted item : " + str(id) + except Exception as ex: + print " Could not delete item : " + str (id) diff --git a/dimagi/scripts/generate_excel.py b/dimagi/scripts/generate_excel.py new file mode 100644 index 0000000000..75b05f1c6b --- /dev/null +++ b/dimagi/scripts/generate_excel.py @@ -0,0 +1,253 @@ +# -*- coding: utf-8 -*- +import settings +from django.core.management import setup_environ +setup_environ(settings) +from dashboard.models import * +import video_schedule +import xlrd +import xlwt +import sys +import time +from datetime import datetime,timedelta + +three_months = datetime.now() - timedelta(days = 300) + +def truncate_id(id): + return id + +def find_exact_villages(cluster_dict): + + village_not_found = 0 + for cluster in cluster_dict: + for counter,vill in enumerate(cluster['villages']): + village_info = [] + village_info = Village.objects.filter(village_name = vill).values_list('id','village_name') + if village_info: + cluster['villages'][counter] = village_info[0][1] + else: + village_info = Village.objects.filter(village_name__icontains = vill).values_list('id','village_name') + cluster['villages'][counter] = village_info[0][1] + if not village_info: + village_not_found +=1 + return cluster_dict + + +def write_person_info(cluster_dict, workbook): + person_info = [] + sheet = workbook.add_sheet('person') + row = 0 + sheet.write(row, 0, "field: id") + sheet.write(row, 1, "field: name ") + sheet.write(row, 2, "field: group_id") + sheet.write(row, 3, "field: seen") + sheet.write(row, 4, "group 1") + row += 1 + for cluster in cluster_dict: + for vill in cluster['villages']: + village_person_info = Person.objects.filter(village__village_name = vill).values_list('id','person_name','group') + person_info.append(village_person_info) + for person in village_person_info: + person_id = truncate_id(person[0]) + group_id = truncate_id(person[2]) + sheet.write(row, 0, unicode(person_id)) + sheet.write(row, 1, person[1]) + sheet.write(row, 2, unicode(group_id)) + watched = PersonMeetingAttendance.objects.filter(person = person[0], screening__date__gt = three_months).values_list('screening__videoes_screened').distinct().count() + if watched > 0: + sheet.write(row, 3, '1') + print watched + else: + sheet.write(row, 3, '0') + sheet.write(row, 4, cluster['cluster']) + row += 1 + if len(village_person_info) < 1: + print " No person found in " + cluster['cluster'] + return sheet + +def write_group_info(cluster_dict, workbook): + group_info = [] + sheet = workbook.add_sheet('group') + row = 0 + sheet.write(row, 0, "field: id") + sheet.write(row, 1, "field: name ") + sheet.write(row, 2, "field: village_id") + sheet.write(row, 3, "field: seen") + sheet.write(row, 4, "group 1") + row += 1 + for cluster in cluster_dict: + for vill in cluster['villages']: + village_persongroup_info = PersonGroups.objects.filter(village__village_name = vill).values_list('id','group_name','village') + group_info.append(village_persongroup_info) + for group in village_persongroup_info: + watched = PersonMeetingAttendance.objects.filter(person__group = group[0], screening__date__gt = three_months).values_list('screening__videoes_screened').distinct().count() + group_id = truncate_id(group[0]) + vill_id = truncate_id(group[2]) + sheet.write(row, 0, str(group_id)) + sheet.write(row, 1, group[1]) + sheet.write(row, 2, str(vill_id)) + if watched > 0: + sheet.write(row, 3, '1') + else: + sheet.write(row, 3, '0') + sheet.write(row, 4, cluster['cluster']) + row += 1 + return sheet + +def write_village_info(cluster_dict, workbook): + village_info = [] + sheet = workbook.add_sheet('village') + row = 0 + sheet.write(row, 0, "field: id") + sheet.write(row, 1, "field: name ") + sheet.write(row, 2, "field: seen ") + sheet.write(row, 3, "group 1") + row += 1 + village_not_found = 0 + for cluster in cluster_dict: + for vill in cluster['villages']: + + village_info = Village.objects.filter(village_name = vill).values_list('id','village_name') + if village_info: + watched = PersonMeetingAttendance.objects.filter(person__village = village_info[0][0], screening__date__gt = three_months).values_list('screening__videoes_screened').distinct().count() + village_id = truncate_id(village_info[0][0]) + sheet.write(row, 0, str(village_id)) + sheet.write(row, 1, village_info[0][1]) + if watched > 0: + sheet.write(row, 2, '1') + else: + sheet.write(row, 2, '0') + + sheet.write(row, 3, cluster['cluster']) + row += 1 + else: + village_not_found +=1 + print vill + " not found" + print str(village_not_found) + " villages not found " + return sheet + +def write_mediator_info(mediator_dict, workbook): + mediator_info = [] + sheet = workbook.add_sheet('mediator') + row = 0 + sheet.write(row, 0, "field: id") + sheet.write(row, 1, "field: name ") + sheet.write(row, 2, "field: village_id") + sheet.write(row, 3, "group 1") + row += 1 + mediator_not_found = 0 + for mediator in mediator_dict: + mediator_info = Animator.objects.filter(assigned_villages__village_name = mediator['village']).values_list('id','name','village__id') + if len(mediator_info)<1: + mediator_info = Animator.objects.filter(village__village_name__icontains = mediator['village']).values_list('id','name', + 'village__id') + if(mediator_info): + mediator_id = truncate_id(mediator_info[0][0]) + vill_id = truncate_id(mediator_info[0][2]) + sheet.write(row, 0, str(mediator_id)) + sheet.write(row, 1, mediator_info[0][1]) + sheet.write(row, 2, str(vill_id)) + sheet.write(row, 3, mediator['cluster']) + row += 1 + else: + mediator_not_found += 1 + print str(mediator_not_found) + " mediators not found" + return sheet + +def write_person_watched_video_info(cluster_dict, workbook): + person_info = [] + sheet = workbook.add_sheet('videoseen') + row = 0 + sheet.write(row, 0, "field: id") + sheet.write(row, 1, "field: name ") + sheet.write(row, 2, "field: video_id") + sheet.write(row, 3, "group 1") + row += 1 + for cluster in cluster_dict: + for vill in cluster['villages']: + village_person_info = Person.objects.filter(village__village_name = vill).values_list('id','person_name','group') +# person_info.append(village_person_info) + for person in village_person_info: + vid_id_list = PersonMeetingAttendance.objects.filter(person = person[0], screening__date__gt = three_months).values_list('screening__videoes_screened', flat = True) + for vid_id in vid_id_list: + print vid_id + if (vid_id): + vid_name = Video.objects.filter(id = vid_id).values_list('title') + person_id = truncate_id(person[0]) + group_id = truncate_id(person[2]) + sheet.write(row, 0, str(person_id)) + sheet.write(row, 1, vid_name[0]) + sheet.write(row, 2, str(vid_id)) + sheet.write(row, 3, cluster['cluster']) + row += 1 + else: + print "not found" + + if len(village_person_info) < 1: + print " No person found in " + cluster['cluster'] + return sheet + +def write_video_schedule_info(vid_dict, workbook): + sheet = workbook.add_sheet('video') + row = 0 + sheet.write(row, 0, "field: id") + sheet.write(row, 1, "field: name") + sheet.write(row, 2, "field: low") + sheet.write(row, 3, "field: high") + sheet.write(row, 4, 'group 1') + row += 1 + for record in vid_dict: + vid_name = Video.objects.filter(id = record['id']).values_list('title') + if vid_name: + sheet.write(row, 0, str(record['id'])) + sheet.write(row, 1, vid_name[0][0]) + sheet.write(row, 2, record['low_val']) + sheet.write(row, 3, record['high_val']) + sheet.write(row, 4, 'JADCHERLA') # for testing + row += 1 + else: + print str(record['id']) + " not found" + return sheet + + +wb = xlrd.open_workbook('..\mahabubnagar1_cluster.xls') +wb.sheet_names() +sh = wb.sheet_by_index(0) +clusters_to_take = [1] +index=0 +reload(sys) +print sys.getdefaultencoding() +permission_group = [] +cluster_village_dict = [] +mediator_village_dict = [] + +while index < len(clusters_to_take): + i=clusters_to_take[index] + name = sh.cell(rowx=i,colx=0).value + print "Processing values of cluster " + name + cluster_village_dict.append({'cluster':name , 'villages': [sh.cell(rowx=i+vill,colx=1).value for vill in range(0,2)]}) + for village in range(0,2): + mediator_village_dict.append({'mediator': sh.cell(rowx=i+village,colx=1).value, + 'village': sh.cell(rowx=i+village,colx=1).value, + 'cluster': name}) + + index += 1 + +workbook = xlwt.Workbook(encoding = 'utf-8') + +cluster_village_dict = find_exact_villages(cluster_village_dict) + +person_sheet = write_person_info(cluster_village_dict, workbook) +group_sheet = write_group_info(cluster_village_dict, workbook) +village_sheet = write_village_info(cluster_village_dict, workbook) +mediator_sheet = write_mediator_info(mediator_village_dict, workbook) +video_sheet = write_person_watched_video_info(cluster_village_dict, workbook) +video_schedule_dict = video_schedule.get_video_schedule() +video_schedule_sheet = write_video_schedule_info(video_schedule_dict,workbook) +workbook.save('trial-2-Fixture.xls') +print "Done" + + + + + + diff --git a/dimagi/scripts/new_gen_excel.py b/dimagi/scripts/new_gen_excel.py new file mode 100644 index 0000000000..6f386b0c81 --- /dev/null +++ b/dimagi/scripts/new_gen_excel.py @@ -0,0 +1,314 @@ +# -*- coding: utf-8 -*- +import settings +from django.core.management import setup_environ +setup_environ(settings) +from dashboard.models import * +import video_schedule +import xlrd +import xlwt +import sys +import time +from datetime import datetime,timedelta + +three_months = datetime.now() - timedelta(days = 365) + +def truncate_id(id): + return id + +def find_exact_villages(cluster_dict): + + village_not_found = 0 + mediator_dict= [] + for cluster in cluster_dict: + counter = 0 + for vill in cluster['villages']: + if vill == '': + print "blank" + else: + village_info = [] + village_info = Village.objects.filter(village_name = vill).values_list('id','village_name') + if village_info: + cluster['villages'][counter] = village_info[0][1] + counter += 1 + mediator_dict.append(({'mediator': '', + 'village': village_info[0][1], + 'cluster': cluster['cluster']})) + else: + village_info = Village.objects.filter(village_name__icontains = vill).values_list('id','village_name') + cluster['villages'][counter] = village_info[0][1] + counter += 1 + mediator_dict.append(({'mediator': '', + 'village': village_info[0][1], + 'cluster': cluster['cluster']})) + if not village_info: + village_not_found +=1 + return cluster_dict, mediator_dict + + +def write_person_info(cluster_dict, workbook): + person_info = [] + sheet = workbook.add_sheet('person') + row = 0 + sheet.write(row, 0, "field: id") + sheet.write(row, 1, "field: name ") + sheet.write(row, 2, "field: group_id") + sheet.write(row, 3, "field: seen") + sheet.write(row, 4, "group 1") + row += 1 + vid_list = [] + for cluster in cluster_dict: + for vill in cluster['villages']: + village_person_info = Person.objects.filter(village__village_name = vill).values_list('id','person_name','group') + person_info.append(village_person_info) + for person in village_person_info: + person_id = truncate_id(person[0]) + group_id = truncate_id(person[2]) + sheet.write(row, 0, unicode(person_id)) + sheet.write(row, 1, person[1]) + sheet.write(row, 2, unicode(group_id)) + vid_id_list = PersonMeetingAttendance.objects.filter(person = person[0], screening__date__gt = three_months).values_list('screening__videoes_screened', flat = True) + if len(vid_id_list) > 0: + arr = '' + for vid in vid_id_list: + vid_list.append(vid) + arr = arr + str(vid) + ' ' + sheet.write(row, 3, arr) + else: + sheet.write(row, 3, '0') + sheet.write(row, 4, cluster['cluster']) + row += 1 + if Person.objects.filter(village__village_name= vill, group = None).count() > 0: + p = Person.objects.filter(village__village_name= vill, group = None).values_list('id', 'person_name','village') + for person, name, vill_id in p: + sheet.write(row, 0, str(person)) + sheet.write(row, 1, unicode(name)) + sheet.write(row, 2, str(vill_id)) + watched = PersonMeetingAttendance.objects.filter(person = person, screening__date__gt = three_months).values_list('screening__videoes_screened').distinct().count() + if watched > 0: + sheet.write(row, 3, '1') + else: + sheet.write(row, 3, '0') + row += 1 + if len(village_person_info) < 1: + print " No person found in " + cluster['cluster'] + + sheet = workbook.add_sheet('all_videos') + row = 0 + sheet.write(row, 0, "field: id") + sheet.write(row, 1, "field: name ") + vid_list = set(vid_list) + row += 1 + for id in vid_list: + vid_obj = Video.objects.get(id = id) + title = vid_obj.title + sheet.write(row, 0, str(id)) + sheet.write(row, 1, unicode(title)) + row += 1 + return sheet + +def write_group_info(cluster_dict, workbook): + group_info = [] + sheet = workbook.add_sheet('group') + row = 0 + sheet.write(row, 0, "field: id") + sheet.write(row, 1, "field: name ") + sheet.write(row, 2, "field: village_id") + sheet.write(row, 3, "field: seen") + sheet.write(row, 4, "group 1") + row += 1 + for cluster in cluster_dict: + for vill in cluster['villages']: + village_persongroup_info = PersonGroups.objects.filter(village = vill).values_list('id','group_name','village') + group_info.append(village_persongroup_info) + for group in village_persongroup_info: + watched = PersonMeetingAttendance.objects.filter(person__group = group[0], screening__date__gt = three_months).values_list('screening__videoes_screened').distinct().count() + group_id = truncate_id(group[0]) + vill_id = truncate_id(group[2]) + sheet.write(row, 0, str(group_id)) + sheet.write(row, 1, group[1]) + sheet.write(row, 2, str(vill_id)) + if watched > 0: + sheet.write(row, 3, '1') + else: + sheet.write(row, 3, '0') + sheet.write(row, 4, cluster['cluster']) + row += 1 + if Person.objects.filter(village = vill, group = None).count() > 0: + sheet.write(row, 0, str(vill_id)) + sheet.write(row, 1, 'Without Group') + sheet.write(row, 2, str(vill_id)) + watched = PersonMeetingAttendance.objects.filter(person__village = vill_id, person__group = None, screening__date__gt = three_months).values_list('screening__videoes_screened').distinct().count() + if watched > 0: + sheet.write(row, 3, '1') + else: + sheet.write(row, 3, '0') + row += 1 + + return sheet + +def write_village_info(cluster_dict, workbook): + village_info = [] + sheet = workbook.add_sheet('village') + row = 0 + sheet.write(row, 0, "field: id") + sheet.write(row, 1, "field: name ") + sheet.write(row, 2, "field: seen ") + sheet.write(row, 3, "group 1") + row += 1 + village_not_found = 0 + for cluster in cluster_dict: + for vill in cluster['villages']: + + village_info = Village.objects.filter(id = vill).values_list('id','village_name') + if village_info: + watched = PersonMeetingAttendance.objects.filter(person__village = village_info[0][0], screening__date__gt = three_months).values_list('screening__videoes_screened').distinct().count() + village_id = truncate_id(village_info[0][0]) + sheet.write(row, 0, str(village_id)) + sheet.write(row, 1, village_info[0][1]) + if watched > 0: + sheet.write(row, 2, '1') + else: + sheet.write(row, 2, '0') + + sheet.write(row, 3, cluster['cluster']) + row += 1 + else: + village_not_found +=1 + print vill + " not found" + print str(village_not_found) + " villages not found " + return sheet + +def write_mediator_info(mediator_dict, workbook): + mediator_info = [] + sheet = workbook.add_sheet('mediator') + row = 0 + sheet.write(row, 0, "field: id") + sheet.write(row, 1, "field: name ") + sheet.write(row, 2, "field: village_id") + sheet.write(row, 3, "group 1") + row += 1 + mediator_not_found = 0 + for mediator in mediator_dict: + mediator_info = AnimatorAssignedVillage.objects.filter(village__village_name = mediator['village']).values_list('animator_id','animator__name','village_id') + if len(mediator_info)<1: + mediator_info = AnimatorAssignedVillage.objects.filter(village__village_name__icontains = mediator['village']).values_list('animator__id','animator__name','village_id') + if(mediator_info): + mediator_id = truncate_id(mediator_info[0][0]) + vill_id = truncate_id(mediator_info[0][2]) + sheet.write(row, 0, str(mediator_id)) + sheet.write(row, 1, mediator_info[0][1]) + sheet.write(row, 2, str(vill_id)) + sheet.write(row, 3, mediator['cluster']) + row += 1 + else: + mediator_not_found += 1 + print "no mediator for " + mediator['village'] + print str(mediator_not_found) + " mediators not found" + return sheet + +def write_distinct(vid_list, workbook): + sheet = workbook.add_sheet('unique_video') + row = 0 + sheet.write(row, 0, "field: id") + sheet.write(row, 1, "field: name") + sheet.write(row, 2, 'group 1') + row += 1 + for id in vid_list: + vid_name = Video.objects.filter(id = id).values_list('title') + if vid_name: + sheet.write(row, 0, str(id)) + sheet.write(row, 1, unicode(vid_name[0][0])) + sheet.write(row, 2, 'KURNOOL') # for testing + row += 1 + return sheet + + +def write_person_watched_video_info(cluster_dict, workbook): + person_info = [] + sheet = workbook.add_sheet('videoseen') + row = 0 + sheet.write(row, 0, "field: id") +# sheet.write(row, 1, "field: name ") + sheet.write(row, 1, "field: video_id") + sheet.write(row, 2, "group 1") + row += 1 + for cluster in cluster_dict: + for vill in cluster['villages']: + village_person_info = Person.objects.filter(village__village_name = vill).values_list('id','person_name','group') +# person_info.append(village_person_info) + for person in village_person_info: + vid_id_list = PersonMeetingAttendance.objects.filter(person = person[0], screening__date__gt = three_months).values_list('screening__videoes_screened', flat = True) + for vid_id in vid_id_list: + if (vid_id): + vid_name = Video.objects.filter(id = vid_id).values_list('title') + person_id = truncate_id(person[0]) + group_id = truncate_id(person[2]) + sheet.write(row, 0, str(person_id)) +# sheet.write(row, 1, vid_name[0]) + sheet.write(row, 1, str(vid_id)) + sheet.write(row, 2, cluster['cluster']) + row += 1 + else: + print "not found" + + if len(village_person_info) < 1: + print " No person found in " + cluster['cluster'] + return sheet + +def write_video_schedule_info(vid_dict, workbook): + sheet = workbook.add_sheet('video') + row = 0 + sheet.write(row, 0, "field: id") +# sheet.write(row, 1, "field: name") + sheet.write(row, 1, "field: low") + sheet.write(row, 2, "field: high") + sheet.write(row, 3, 'group 1') + row += 1 + for record in vid_dict: + vid_name = Video.objects.filter(id = record['id']).values_list('title') + if vid_name: + sheet.write(row, 0, str(record['id'])) +# sheet.write(row, 1, vid_name[0][0]) + sheet.write(row, 1, record['low_val']) + sheet.write(row, 2, record['high_val']) + sheet.write(row, 3, 'KURNOOL') # for testing + row += 1 + else: + print str(record['id']) + " not found" + return sheet + +from userfile_functions import read_userfile +data = read_userfile('userfileappilot.json') +cluster_village_dict = [] +mediator_dict = [] +for entry in data: + print entry['username'] + villages = entry['villages'] + cluster_village_dict.append({'cluster': entry['username'], + 'villages': entry['villages']}) + for v in villages: + village = Village.objects.get(id = v).village_name + mediator = Animator.objects.filter(assigned_villages = v)[0] + mediator_dict.append({'mediator':mediator, + 'village': village, + 'cluster' : entry['username']}) +workbook = xlwt.Workbook(encoding = 'utf-8') +group_sheet = write_group_info(cluster_village_dict, workbook) +village_sheet = write_village_info(cluster_village_dict, workbook) +mediator_sheet = write_mediator_info(mediator_dict, workbook) +video_schedule_dict, video_list = video_schedule.get_video_schedule() +print video_list +video_list = Screening.objects.filter(village__block__district__state__state_name = 'Andhra Pradesh').values_list('videoes_screened', flat=True) +video_list = set(video_list) +print video_list +video_distinct_sheet = write_distinct(video_list,workbook) +video_schedule_sheet = write_video_schedule_info(video_schedule_dict,workbook) +workbook.save('trial-2-Fixtures_02_25.xls') + + + + + + + + diff --git a/dimagi/scripts/person_case b/dimagi/scripts/person_case new file mode 100644 index 0000000000..e8155aa6b4 --- /dev/null +++ b/dimagi/scripts/person_case @@ -0,0 +1,1033 @@ +(dp0 +S'person_caseid_dict' +p1 +(dp2 +V10000000120996 +p3 +V0f614362-1c07-45f0-a624-205896aa056d +p4 +sV10000000120997 +p5 +Vaade9403-8035-41de-bb49-6ffc8450f073 +p6 +sV10000000120994 +p7 +V2831c646-95f3-4848-ae16-2474f419ea4c +p8 +sV10000000120995 +p9 +V3d8284c9-2f76-4b20-ba6b-c83ce6223105 +p10 +sV10000000120992 +p11 +V67fd8643-5dfd-449f-b42c-f329082e9b05 +p12 +sV10000000120993 +p13 +V778939fb-159b-4a6e-8a3c-015061c0cc9d +p14 +sV10000000120990 +p15 +V2f6a8c81-8cf9-4c7f-aefa-f09b8c572912 +p16 +sV10000000120991 +p17 +V1c84b5d3-72d3-4ad0-a9df-a7b2a1984e96 +p18 +sV10000000120998 +p19 +Vaa7c4d59-3f24-418c-a8de-598ad45e1d6d +p20 +sV10000000120714 +p21 +V748699a7-f144-459b-84a9-5266c55991a6 +p22 +sV10000000120715 +p23 +V41813544-5313-469a-9701-a9a7338aef85 +p24 +sV10000000120716 +p25 +Vb54a0cfa-00b5-4271-8315-18c583c52faa +p26 +sV10000000120717 +p27 +Vbfa5c21b-41d3-4678-8bba-8db847a60bc0 +p28 +sV10000000120710 +p29 +V5308c80d-bf28-41a5-be10-866dd3f6dafb +p30 +sV10000000120711 +p31 +Vc4dc5a57-134f-4fc6-8099-286d7d66aa50 +p32 +sV10000000120712 +p33 +V23122059-8135-4f47-a898-896f4116ad42 +p34 +sV10000000120713 +p35 +Vcb6cdc9f-a7c8-4aa9-a740-dd910ca8c8be +p36 +sV10000000121021 +p37 +V4a34f148-a039-42c1-be05-d74e9a7879d8 +p38 +sV10000000121020 +p39 +V872b071e-0b70-4b20-8b7e-d9cb7074f425 +p40 +sV10000000120914 +p41 +V23eeea5d-4bf0-4a05-b40f-0c8c1dadd9c7 +p42 +sV10000000120915 +p43 +V1d1aff66-2b54-46ef-b201-d0bc0e3b4eaf +p44 +sV10000000120912 +p45 +V80d6df88-ee8b-4ef8-a6fe-715e96bfcb54 +p46 +sV10000000120913 +p47 +V14a1a1a0-be4b-470c-ae31-32aee26f16e2 +p48 +sV10000000120910 +p49 +Ve65cd8ee-b489-4767-a527-afd934cf3b4d +p50 +sV10000000120911 +p51 +V073ebb3f-51e5-4ad9-9756-8b8e17517d95 +p52 +sV10000000120893 +p53 +Vfa972b32-df47-49ee-a78d-53f5db8176f5 +p54 +sV10000000120654 +p55 +V89b5333c-af54-425d-b1a9-b500b7843a1b +p56 +sV10000000120657 +p57 +Vfacda7b3-ef74-4391-8de2-cdfb6ad889bd +p58 +sV10000000120656 +p59 +V457281a1-fe23-4571-a62a-3bc5984aa381 +p60 +sV10000000120651 +p61 +V437dff7e-52b0-4805-89cd-6f2dcca11815 +p62 +sV10000000120650 +p63 +Vea802db1-d646-4766-9a0b-764571f695f8 +p64 +sV10000000120653 +p65 +V23c7cbc6-ff7b-4620-a558-902e1e981fcd +p66 +sV10000000120652 +p67 +Vc579ad86-d7f5-4b48-b9d8-c9a46c48c460 +p68 +sV10000000120659 +p69 +V7edcf865-a684-473c-80bf-b8b6e20a375f +p70 +sV10000000120658 +p71 +Vf46a3a71-5ada-4a93-9ffc-0fac37e31bff +p72 +sV10000000120792 +p73 +V90f2ff65-5341-4528-aa31-00f2d492ff6e +p74 +sV10000000119589 +p75 +V47fab35f-343e-408f-bf2b-4b27a771e26d +p76 +sV10000000120892 +p77 +V87721c37-ea1e-460c-bbe0-90d9e6a0bffc +p78 +sV10000000119594 +p79 +Ve14b83c0-08d0-44aa-a9de-fb43dfd62825 +p80 +sV10000000119595 +p81 +V2678f951-892a-4c81-b2a8-e3e48dca1939 +p82 +sV10000000119592 +p83 +V69ba5238-9ae4-4e17-8df2-58410b3fa769 +p84 +sV10000000119593 +p85 +V39d48180-e2eb-4fa8-bfe8-46fd5e2d87dd +p86 +sV10000000119590 +p87 +V4f250384-1709-458c-bf6d-1db5aa396eec +p88 +sV10000000119591 +p89 +V5dd17902-33d4-4c26-b812-1b102d56bbae +p90 +sV10000000128093 +p91 +Va08f6f10-9885-4d1e-80ec-bb7264895082 +p92 +sV10000000120808 +p93 +Va4f37b7f-f00d-46c6-aa29-4173ccab2229 +p94 +sV10000000128097 +p95 +Veb0554b8-0262-4db3-914a-34260c295390 +p96 +sV10000000120988 +p97 +V8f92394b-3b34-4c45-b71c-576aecd2603d +p98 +sV10000000128095 +p99 +Vba7de444-7b12-4521-af75-ac402d9b980e +p100 +sV10000000128094 +p101 +V56b62ee1-4eef-4cf3-9d9f-f6fc6867ebc2 +p102 +sV10000000121014 +p103 +V5d56c8d6-c415-4168-acf9-bdf4419adc7d +p104 +sV10000000121015 +p105 +V613474ab-bc09-48c5-90b8-477e5748ed17 +p106 +sV10000000121016 +p107 +V2147d134-5ed8-4f92-bd9e-3e2e08759963 +p108 +sV10000000121017 +p109 +V821e3b97-8501-4cca-8018-cfaa5fa43811 +p110 +sV10000000120909 +p111 +V876f6ed7-dfb3-4ea7-a24c-8343a7d30e7a +p112 +sV10000000121011 +p113 +V86b3d93c-6b19-46e9-87de-d31d62e21e07 +p114 +sV10000000121012 +p115 +V89469a82-916e-4c42-9c05-e64ab8de83f3 +p116 +sV10000000121013 +p117 +V420af9f0-10f6-4bb7-bcc4-1a7b0299783b +p118 +sV10000000120709 +p119 +V9ab5b66c-f37e-4ac9-bf5b-78e7db5f6817 +p120 +sV10000000120708 +p121 +Vd3309538-8362-4efa-be6d-128aee4ec540 +p122 +sV10000000121018 +p123 +Vac3f2077-f072-4011-92ea-7c31310c1895 +p124 +sV10000000121019 +p125 +Vec68f422-6812-48b4-be4b-4535232d0209 +p126 +sV10000000120660 +p127 +Vdd650ea6-b8ce-4e85-b9bc-144e20fa089a +p128 +sV10000000120661 +p129 +V6b5b1dd6-f6ba-4075-8338-f0fb637c0d36 +p130 +sV10000000120662 +p131 +Vc8e9323a-45e2-4fe3-b17c-c76321adc16a +p132 +sV10000000120663 +p133 +Va086063c-935d-4bc4-a10f-bcbda7dded0a +p134 +sV10000000120664 +p135 +V07caf331-845a-490d-bf8c-4c7d4e95b77a +p136 +sV10000000120665 +p137 +V94f160ba-ae70-4517-a1c9-f345e74a902a +p138 +sV10000000120666 +p139 +V8e294e0c-94e3-48d1-b577-0507d9198e02 +p140 +sV10000000119288 +p141 +V8af7d581-b9c8-42ad-a163-7fe2bc89c7cb +p142 +sV10000000119289 +p143 +V81a8fec7-1bea-4f90-a13b-d2529fcabc30 +p144 +sV10000000119286 +p145 +V3b40f546-01d4-4818-b8e4-ca5d2abf71a6 +p146 +sV10000000119287 +p147 +V2ead3ad2-cf76-446a-85b0-eb37b4c33a41 +p148 +sV10000000119284 +p149 +Vecf7ada0-0b34-47f1-b1cb-7af1d311c6b9 +p150 +sV10000000119285 +p151 +Vd2ccbf90-26ce-4217-9cb8-c3a0b89861aa +p152 +sV10000000119587 +p153 +V52510cac-b1a1-494d-a018-4208aa779780 +p154 +sV10000000119586 +p155 +V754e979a-545f-43e1-b313-4389b8791404 +p156 +sV10000000120918 +p157 +V61d9c31b-d624-455a-b8cd-577e90dfd582 +p158 +sV10000000124608 +p159 +V8be15721-c2f6-43a7-8a4c-5a56793242ea +p160 +sV10000000124609 +p161 +V2950a29d-d7a7-4cdd-a4a7-38d7b2ca09e4 +p162 +sV10000000124606 +p163 +V2a39c43b-a9bf-41d4-9439-7b0e2fd93c4d +p164 +sV10000000124607 +p165 +V65e12e9d-c00b-4320-95ef-ede476466acf +p166 +sV10000000124604 +p167 +Vccbba58c-40d4-4b35-b898-49b420c659b9 +p168 +sV10000000124605 +p169 +Vb1b69829-b4a6-4638-b701-fe6510ce7c6d +p170 +sV10000000124602 +p171 +V8d8e2554-4048-4cdb-9b34-fa079199432d +p172 +sV10000000119588 +p173 +V3cea505b-4602-427d-b3cd-3fc0c3d3595a +p174 +sV10000000124600 +p175 +Vf235128b-2d6c-4bbf-9a18-237af8318384 +p176 +sV10000000124601 +p177 +V99b83434-0d08-4992-83ca-c8041a2c2197 +p178 +sV10000000120938 +p179 +V70a7ee3b-c86a-4535-a478-6856dc783f06 +p180 +sV10000000120939 +p181 +V24ebf6e8-0328-46f1-9665-79482140df57 +p182 +sV10000000120679 +p183 +V3047773f-84ee-4395-af0e-ff1832c64918 +p184 +sV10000000120678 +p185 +V0b6e6dea-0234-4d87-bbb8-78a72bccbe7e +p186 +sV10000000120932 +p187 +Vf3fe1ee8-046f-4725-ab5b-985178201ba2 +p188 +sV10000000120933 +p189 +Vac7dbe4b-a01d-4b25-b111-54987115a791 +p190 +sV10000000120934 +p191 +V14607108-35f3-4fca-8ba6-83cbe33da936 +p192 +sV10000000120935 +p193 +V76e66acd-407e-41bb-bbcb-d9c028f4e46e +p194 +sV10000000120936 +p195 +V0e9bb23a-0260-4b2e-b9a4-9ac4522a2827 +p196 +sV10000000120937 +p197 +Va8e730ba-d74a-43ff-aeb0-a464449c9c22 +p198 +sV10000000124593 +p199 +V1f177349-f119-4dcb-b936-4b37f3b58d8d +p200 +sV10000000120640 +p201 +V773bb096-53eb-4aa1-a070-9485f9f0f545 +p202 +sV10000000128647 +p203 +Vd616c7df-e3a6-41e3-9665-b7811634b2b1 +p204 +sV10000000119291 +p205 +Va66df2dd-243f-4786-9748-867e60507718 +p206 +sV10000000119290 +p207 +Vf534d238-217c-49e2-9b2d-baf053451781 +p208 +sV10000000119293 +p209 +V9228415e-eb15-4378-ac04-e23bde24a91e +p210 +sV10000000119292 +p211 +Vb0d23622-53aa-430e-bd73-2658940ea663 +p212 +sV10000000119294 +p213 +V8051ef3e-2b06-4aaf-9757-e0940e85551f +p214 +sV10000000120655 +p215 +V353c3ebe-a23f-4a25-b793-6f4e1bea214c +p216 +sV10000000124598 +p217 +Ve41e22b8-3977-474a-b529-e0977f062d9a +p218 +sV10000000124599 +p219 +V099eb0a3-a320-47ae-baee-536b2dbc3770 +p220 +sV10000000124596 +p221 +V73fbf381-4376-4dc4-ac43-5d52843f2b5c +p222 +sV10000000124597 +p223 +Vef287ffb-976d-4147-aa54-e52b98e40004 +p224 +sV10000000124594 +p225 +V4f0b7742-3e9f-4a5b-815a-bf2e4573570e +p226 +sV10000000124595 +p227 +Va78b58be-2c26-4199-a8d4-1acfb058bfc3 +p228 +sV10000000124611 +p229 +V6104b446-42c1-4f4f-8b11-bba85388058a +p230 +sV10000000124610 +p231 +Vf1707292-4207-467e-aa5b-5027baf1e8d2 +p232 +sV10000000124590 +p233 +Ve43253b7-b1d3-4d97-971a-ae4bd650fb9c +p234 +sV10000000124591 +p235 +Va40bd2cb-5b3f-4c0b-bd47-9b2d58ca4ab5 +p236 +sV10000000124592 +p237 +V4471e14e-008c-48ca-b0b5-85b706264bb1 +p238 +sV10000000124613 +p239 +Vcf22af60-6480-4543-8ee0-87f93296b76d +p240 +sV10000000124612 +p241 +V91a0fed2-678d-4077-a8f2-c5a2bfe81c86 +p242 +sV10000000121076 +p243 +V54dba461-cb71-4c7f-86c4-aa4423ea8dc1 +p244 +sV10000000121077 +p245 +V2f37a0d3-d160-4ab8-8eaf-9bf72e443c32 +p246 +sV10000000121074 +p247 +V049de798-2606-4f40-a874-72052a5cf4b6 +p248 +sV10000000121075 +p249 +V8c55d7b7-79e7-4424-b76b-0abbee652fab +p250 +sV10000000121072 +p251 +V1e7a8603-faf8-4a49-aa23-e443a43a4bcf +p252 +sV10000000121073 +p253 +Vbf389117-b3d2-422f-a1f1-fe8580e6a85f +p254 +sV10000000121070 +p255 +V1cfc2a18-5003-4e35-b43a-a07fc960ef96 +p256 +sV10000000121071 +p257 +Va902f4f1-9244-4be7-b71b-82e2310b9b58 +p258 +sV10000000121045 +p259 +V1dfc374f-6edb-4b2a-b2c8-819f4246de13 +p260 +sV10000000121078 +p261 +V5a37d671-1ca9-43d7-b7ca-ebd3e4814d16 +p262 +sV10000000121079 +p263 +Vee4bfff7-da6b-451c-b154-5f3322043012 +p264 +sV10000000120682 +p265 +Vfd5f2a01-0947-44fd-bd4e-62d71a5e3848 +p266 +sV10000000120683 +p267 +Ve8894902-1c97-4946-9aec-fb86cdc069dc +p268 +sV10000000120680 +p269 +V82183386-42eb-4f8c-a0d4-66821e613579 +p270 +sV10000000120681 +p271 +Veabfcbee-8177-4f52-a7a2-28e695d00014 +p272 +sV10000000120686 +p273 +Vce5803ba-9f54-486a-ba11-f690e2e6685d +p274 +sV10000000120687 +p275 +Vc3e7eb80-b0d2-49c2-b957-fe5a91848df2 +p276 +sV10000000120684 +p277 +Va726030e-2bc5-4d63-a238-3ac494240ccb +p278 +sV10000000120685 +p279 +V27250873-af26-4897-b5e2-3950db6b6445 +p280 +sV10000000120688 +p281 +V7add1cf4-738a-4100-a511-3d37b94f2ac5 +p282 +sV10000000120689 +p283 +V91077662-7902-4e0a-b1ac-1e37e7b9de07 +p284 +sV10000000120804 +p285 +V61e14429-1207-4d24-b452-2e167c31245b +p286 +sV10000000120805 +p287 +Ve337766a-d2e6-4f2d-89d4-fd97099add4b +p288 +sV10000000120806 +p289 +Vececfe63-448d-456e-a6de-9e721078d509 +p290 +sV10000000120807 +p291 +V7d2e2f87-3f2a-46c0-8d3e-58e04d6cca5e +p292 +sV10000000124589 +p293 +V1bce77cc-88ed-46ba-8ea6-7ae8b8e4890a +p294 +sV10000000124588 +p295 +V71b7d292-7095-4aa6-a7c7-c6d26df879c5 +p296 +sV10000000124585 +p297 +Vff103474-7986-40e4-be1d-4d32c3a41482 +p298 +sV10000000124584 +p299 +Vac5a6407-ec4a-4d5b-89a2-671ea1c52a30 +p300 +sV10000000124587 +p301 +V3e38bfe0-55af-4700-8051-f7af0155e43d +p302 +sV10000000124586 +p303 +Ve7492d05-f4a1-4e6a-85d1-b26b1f5c5a57 +p304 +sV10000000124581 +p305 +Vdd8c7295-a9e6-4122-ad5f-e30ed34d477a +p306 +sV10000000120809 +p307 +V8be74c70-036d-428a-aa55-fbd7c102dfc9 +p308 +sV10000000124583 +p309 +V21f9bfb5-e3f1-48b4-ab47-0aa9c3257d73 +p310 +sV10000000124582 +p311 +V3a6c931c-8dce-49a2-9574-f2295240eb6a +p312 +sV10000000119321 +p313 +V9a69b2ed-4ec0-46a6-98df-80dd6aa6906a +p314 +sV10000000119320 +p315 +Vbe56fa11-128b-403e-86d4-67db3d42bc5f +p316 +sV10000000120950 +p317 +Va57fa205-6df7-4dee-be75-be3efcd0bc51 +p318 +sV10000000119322 +p319 +V5e7e8aa3-4285-4ca4-b845-c145d9f46b2c +p320 +sV10000000120888 +p321 +Veff04e8a-4b54-49d2-bdd9-f54eb7ef8f59 +p322 +sV10000000120889 +p323 +Vfbf5769b-798e-442e-8d74-2fba9b52d54c +p324 +sV10000000120884 +p325 +V44523320-d534-4036-a09a-7ca51b0975f1 +p326 +sV10000000120885 +p327 +Vd4f4c17d-fe28-4521-aa66-4f080422e141 +p328 +sV10000000120886 +p329 +Vd4b16e6e-b3be-4aba-b741-5f6589b61651 +p330 +sV10000000120887 +p331 +Vafea0820-4f97-4cab-8705-2f04dc8d1554 +p332 +sV10000000121065 +p333 +V3148d896-3b70-447b-abf9-eb89e9688526 +p334 +sV10000000121064 +p335 +V62f4d0fa-5e91-4424-a515-dceae3162448 +p336 +sV10000000121067 +p337 +V99df05ba-1e88-482c-834a-254aba1fbac7 +p338 +sV10000000121066 +p339 +Va0dff9b7-bcc2-4443-ae9e-2a2e0b8ba704 +p340 +sV10000000121061 +p341 +Vfb58c956-fe8b-4869-8e59-dba5efa24345 +p342 +sV10000000121060 +p343 +V01778088-9149-4092-9e21-dae673d13a98 +p344 +sV10000000121063 +p345 +V711ac4ef-fcc9-48d3-945a-02f222c71350 +p346 +sV10000000121062 +p347 +Va2bd933f-b5be-45b3-8c62-4d055ceb685c +p348 +sV10000000121069 +p349 +Vcb0d0108-3862-4e44-ad12-4b35ef4e58f4 +p350 +sV10000000121068 +p351 +Vb828bf0b-9c84-427e-9a6d-74891087a156 +p352 +sV10000000120812 +p353 +Vb8e04d60-9bff-4642-bf69-f5da71b997d0 +p354 +sV10000000120811 +p355 +V202981b7-21d0-4da3-a139-54c8d054e0d3 +p356 +sV10000000120810 +p357 +Vba58efa4-2f53-4ab5-a56c-407dd63b9db9 +p358 +sV10000000119318 +p359 +V12ba4b47-b9c2-4cff-b4f4-0bb6ecaa6bac +p360 +sV10000000119319 +p361 +V278253aa-63c8-4f7a-b83b-349efc853bef +p362 +sV10000000119314 +p363 +V18a7e8a7-1ee2-4b8f-b45a-322b87a393a3 +p364 +sV10000000119315 +p365 +Ve4898b9b-756b-4aee-b699-33f16e853229 +p366 +sV10000000119316 +p367 +Vefe24548-a664-434b-855d-b7c2589c5b0b +p368 +sV10000000119317 +p369 +V1aff445c-ffd9-4692-820f-f9820c430eb6 +p370 +sV10000000128101 +p371 +Vbde65726-c886-4408-aa3b-da1da86ec099 +p372 +sV10000000128100 +p373 +Vb4076263-560f-4012-b29c-9ff1c70d2053 +p374 +sV10000000119313 +p375 +V30c9c879-79aa-4682-960e-8c01396043ea +p376 +sV10000000120941 +p377 +V285f04ee-ff06-44e2-9569-53499b114906 +p378 +sV10000000120940 +p379 +V8e179373-cbb7-49ed-9e58-28d9922d358a +p380 +sV10000000120943 +p381 +V797d5c4b-0ea3-49a7-a761-d1e8045cd2c6 +p382 +sV10000000120942 +p383 +Vf6f635eb-d361-4445-8804-d9e3865b134b +p384 +sV10000000120945 +p385 +V51cf2cf9-6b13-45de-b52a-0cb6c4ce2a50 +p386 +sV10000000120944 +p387 +V67c647f5-0c87-4c23-856d-bc7ad83dfd07 +p388 +sV10000000120947 +p389 +V924371da-99b2-458c-b299-870727773780 +p390 +sV10000000120946 +p391 +V6702b7cc-75f4-40d4-aaa1-5dd897d88367 +p392 +sV10000000120949 +p393 +V27489450-6f97-407d-85bc-38f769726de0 +p394 +sV10000000120948 +p395 +Vd3afad01-068f-469f-867b-c74a76c3b218 +p396 +sV10000000120891 +p397 +Vc1db2a96-ebeb-40c7-b8c3-439dbd75d814 +p398 +sV10000000120890 +p399 +V846f98f8-2cc8-422f-8fe1-277948b8fe60 +p400 +sV10000000120897 +p401 +V721882a5-c8a8-46a0-a940-bf3ddf5c83c0 +p402 +sV10000000120896 +p403 +V4c6f69e1-5b58-46d7-ba13-3eb00506927a +p404 +sV10000000120895 +p405 +V69ee07d2-86b5-4584-86d7-67ce5265673d +p406 +sV10000000120894 +p407 +V9a5671ca-8988-4726-bfc3-3e9998a7418c +p408 +sV10000000121050 +p409 +Vb18ea45d-1790-4312-87b5-cdc11dcc21d1 +p410 +sV10000000121051 +p411 +Vda345510-dd13-407f-b8e2-9c6fdef84c1f +p412 +sV10000000121052 +p413 +V8e7eb7b6-3c36-4134-91ef-50315a5d51a9 +p414 +sV10000000121053 +p415 +Vd099f727-2adc-48a4-a2d7-51c180aeb7e6 +p416 +sV10000000121054 +p417 +V1f62b593-6ace-4ed9-9225-f2fa426737c6 +p418 +sV10000000121055 +p419 +V3196d00e-98e9-4463-9f9e-25bf73a84ec7 +p420 +sV10000000121056 +p421 +V54b0d379-d087-412c-9858-31bce2a4fec1 +p422 +sV10000000121057 +p423 +V005a608d-9812-4ed1-b6e2-b98136384cfa +p424 +sV10000000121058 +p425 +V0348d04a-1d5c-44af-9c8c-4a9cf6b7f421 +p426 +sV10000000121059 +p427 +V25fa95d0-f834-4ed4-a135-d4327c83702b +p428 +sV10000000128099 +p429 +V6b1ed7d7-d557-4c02-9871-1ef45e704754 +p430 +sV10000000128098 +p431 +Vd590ca7f-b73c-47eb-b975-374e13caa1df +p432 +sV10000000120637 +p433 +V19b6077e-1b8b-49dd-9b1a-61b7a5230a70 +p434 +sV10000000120636 +p435 +Vbc995b91-4711-43f3-872b-dfcc7cc527d2 +p436 +sV10000000121049 +p437 +V17dc8bf3-0cde-4323-b30c-a5c8abab3e26 +p438 +sV10000000121048 +p439 +V1baf0b1d-bed9-495f-b195-21a72e2aceb9 +p440 +sV10000000121047 +p441 +V5e04c2f6-5987-4bca-93a2-ebcb5fb5af66 +p442 +sV10000000121046 +p443 +Va8977a94-af4b-4dae-86ab-62cf51e1acc6 +p444 +sV10000000120639 +p445 +Ve78ad62b-25a8-4725-af3d-66e38f0a2a8b +p446 +sV10000000120638 +p447 +V56f9a4a1-d99a-4d1b-bdfc-4b08cb2b050f +p448 +sV10000000121043 +p449 +V9484a6d1-bf04-4981-8a01-5be667c24770 +p450 +sV10000000121042 +p451 +V5577695c-23bc-4d7d-bab7-418d27a1a9c1 +p452 +sV10000000121041 +p453 +V5ee5fdb1-937f-49eb-b382-57a3389a7804 +p454 +sV10000000121040 +p455 +V4dc90cfb-9986-4111-978c-8efde29d92a8 +p456 +sV10000000121044 +p457 +V1089d6fe-2cd4-4ca2-b643-901b087b17c3 +p458 +sV10000000120916 +p459 +V42b081da-cada-4f86-81db-fb769be3ac9b +p460 +sV10000000128646 +p461 +V0d0c8a89-fc02-4729-be65-39eeeb201106 +p462 +sV10000000120989 +p463 +Vfa56096c-1527-4f0f-a23b-73c8771b73eb +p464 +sV10000000128644 +p465 +V924f3238-c23f-4ae0-b648-a82f5a65a8aa +p466 +sV10000000128645 +p467 +Vc579f1d6-585a-4c62-9c96-8630db92a3fd +p468 +sV10000000128642 +p469 +V9ab689e7-7da7-408d-a967-bce673652dbd +p470 +sV10000000128643 +p471 +V022bef78-0e81-4313-9a03-b72af6644278 +p472 +sV10000000128640 +p473 +V03d9806a-e7e8-4905-a9cb-24d98a8e03c7 +p474 +sV10000000128096 +p475 +V83716ae9-c6d9-4130-b630-f051ff23c5ca +p476 +sV10000000121038 +p477 +Veeefb677-84e1-47b9-a9f2-091337202605 +p478 +sV10000000121039 +p479 +Vfabefc35-f100-4b34-b932-9f1ab6ca9da8 +p480 +sV10000000120917 +p481 +Vf83f47f9-e8bc-4ef7-80f2-9b58b8d1f18f +p482 +sV10000000121036 +p483 +V7b083ee4-211a-47ee-b8cd-f366ce07035d +p484 +sV10000000121037 +p485 +Vbebe2aa9-0c1c-477a-8b6c-2b5be5eeeda0 +p486 +sV10000000121035 +p487 +Vf9612c84-5848-4c31-aa26-597711668a7d +p488 +sV10000000120646 +p489 +V00e1038e-8e78-48a3-bc52-bd92f3332d78 +p490 +sV10000000120647 +p491 +V459ee200-e7ad-4f54-8bef-551bd273ef21 +p492 +sV10000000120644 +p493 +Vee697888-803d-4b34-8818-f0d9ce512b26 +p494 +sV10000000120645 +p495 +Vcbba320a-619e-4169-a267-e5108e9d5860 +p496 +sV10000000120642 +p497 +V2d7ac09b-7f92-4064-a788-51d21f23d7a8 +p498 +sV10000000120643 +p499 +V8ac27bdb-5ddf-4631-b2b8-29fa40e02bf9 +p500 +sV10000000128641 +p501 +Vee03f94a-cd38-485f-a3a4-18176c7bcb6c +p502 +sV10000000120641 +p503 +Vb1bc1bca-f510-4d04-b9ac-3c22d6aecc96 +p504 +sV10000000120648 +p505 +Vd9a88398-d9e5-41e0-ba18-0ab841d01e10 +p506 +sV10000000120649 +p507 +Vd4a42a3e-c955-4640-bcb4-44ca5f855d52 +p508 +sV10000000128639 +p509 +V8ca0a9b0-58cb-4064-bd80-e0a97bb1f11d +p510 +sV10000000128638 +p511 +V6323edc2-c77f-4ded-b5c3-880e8bdb0c6e +p512 +sV10000000128637 +p513 +V234d3491-f412-4a24-ace0-bba5ca6ae378 +p514 +sV10000000124603 +p515 +V17964ad9-c3c8-42b3-8bce-14e64945948f +p516 +ss. \ No newline at end of file diff --git a/dimagi/scripts/save_adoption_data.py b/dimagi/scripts/save_adoption_data.py new file mode 100644 index 0000000000..f7d8f4622e --- /dev/null +++ b/dimagi/scripts/save_adoption_data.py @@ -0,0 +1,33 @@ +from django.core.management import setup_environ +import settings +setup_environ(settings) +from xml.dom import minidom +import time +from datetime import datetime,timedelta +from dashboard.models import * + +def save_adoption_data(): + xml_tree = minidom.parse(r'C:\Users\dg_systems\Documents\GitHub\dg\dimagi\submitted\adoption_sample1.xml') + xml_data=xml_tree.getElementsByTagName('data') + for record in xml_data: + screening_data = {} + screening_data['date'] = record.getElementsByTagName('date')[0].firstChild.data + screening_data['selected_village'] = record.getElementsByTagName('selected_village')[0].firstChild.data + screening_data['selected_group'] = record.getElementsByTagName('selected_group')[0].firstChild.data + screening_data['selected_mediator'] = record.getElementsByTagName('selected_mediator')[0].firstChild.data + screening_data['selected_person'] = record.getElementsByTagName('selected_person')[0].firstChild.data + screening_data['selected_video'] = record.getElementsByTagName('selected_video')[0].firstChild.data + + + # saving the person_adopt_practice record + pap = PersonAdoptPractice( person_id = screening_data['selected_person'], + date_of_adoption = screening_data['date'], + video_id = screening_data['selected_video']) + try: + pap.save() + status = pap.id + except Exception as exception: + print "Exception occurred- " + str(exception) + status = -1 # -1 correspoding to error + return status + diff --git a/dimagi/scripts/save_mobile_data.py b/dimagi/scripts/save_mobile_data.py new file mode 100644 index 0000000000..34ef3c5435 --- /dev/null +++ b/dimagi/scripts/save_mobile_data.py @@ -0,0 +1,142 @@ +import site, sys +sys.path.append('/home/ubuntu/code/dg_test') +site.addsitedir('/home/ubuntu/.virtualenv/dg_production/lib/python2.7/site-packages/') +from django.core.management import setup_environ +import settings +setup_environ(settings) +from xml.dom import minidom +import time +from datetime import datetime,timedelta +from dashboard.models import Screening, PersonMeetingAttendance, PersonAdoptPractice +from dimagi.models import XMLSubmission +from dimagi.models import error_list +from django.core.exceptions import ValidationError + + +def save_screening_data(xml_tree): + status = {} + error_msg = '' + xml_data = xml_tree.getElementsByTagName('data') + for record in xml_data: + try: + screening_data = {} + screening_data['date'] = record.getElementsByTagName('date')[0].firstChild.data + screening_data['time'] = record.getElementsByTagName('time')[0].firstChild.data + screening_data['selected_village'] = record.getElementsByTagName('selected_village')[0].firstChild.data + screening_data['selected_group'] = record.getElementsByTagName('selected_group')[0].firstChild.data + screening_data['selected_mediator'] = record.getElementsByTagName('selected_mediator')[0].firstChild.data + screening_data['selected_video'] = record.getElementsByTagName('selected_video')[0].firstChild.data + if screening_data['selected_video'] == 0 : + screening_data['selected_video'] = record.getElementsByTagName('additional_selected_video')[0].firstChild.data + + screening_data['attendance_record'] = record.getElementsByTagName('attendance_record') + pma_record = [] + for person in screening_data['attendance_record']: + if int(person.getElementsByTagName('attended')[0].firstChild.data) == 1: + pma = {} + pma['person_id'] = person.getElementsByTagName('attendee_id')[0].firstChild.data + pma['interested'] = person.getElementsByTagName('interested')[0].firstChild.data + if person.getElementsByTagName('question_asked')[0].firstChild: + pma['question'] = person.getElementsByTagName('question_asked')[0].firstChild.data + else: + pma['question'] = "" + pma_record.append(pma) + error_msg = 'Successful' + + + # time is returned as string, doing funky things to retrieve it in time format + temp_time = screening_data['time'].split('.') + temp_time = time.strptime(temp_time[0], "%H:%M:%S") + temp_time = datetime(*temp_time[:6]) + screening_data['start_time'] = temp_time.time() + screening_data['end_time'] = temp_time + timedelta(minutes = 45) + screening_data['end_time'] = screening_data['end_time'].time() + # save screening record + try: + screening = Screening ( date = screening_data['date'], + start_time = screening_data['start_time'], + end_time = screening_data['end_time'], + location = 'Mobile', + village_id = screening_data['selected_village'], + animator_id = screening_data['selected_mediator'] ) + + if screening.full_clean() == None: # change to full_clean() + screening.save() + status['screening'] = 1 + screening.farmer_groups_targeted = [screening_data['selected_group']] + screening.videoes_screened = [screening_data['selected_video']] + screening.save() + status['pma'] = 1 + try : + for person in pma_record: + pma = PersonMeetingAttendance ( screening_id = screening.id, + person_id = person['person_id'], + interested = person['interested'], + expressed_question = person['question'] ) + if pma.full_clean() == None: + pma.save() + else: + status['pma'] = error_list['PMA_SAVE_ERROR'] + error_msg = 'Not valid' + except ValidationError, e: + status['pma'] = error_list['PMA_SAVE_ERROR'] + error_msg = unicode(e) + else: + status['screening'] = error_list['SCREENING_SAVE_ERROR'] + error_msg = 'Not valid' + + except Exception as ex: + status['screening'] = error_list['SCREENING_SAVE_ERROR'] + error_msg = unicode(ex) + + except Exception as ex: + status['screening'] = error_list['SCREENING_READ_ERROR'] + error_msg = unicode(ex) + + return status['screening'],error_msg + + +def save_adoption_data(xml_tree): + xml_data=xml_tree.getElementsByTagName('data') + error_msg = '' + for record in xml_data: + try: + screening_data = {} + screening_data['date'] = record.getElementsByTagName('selected_date')[0].firstChild.data + screening_data['selected_person'] = record.getElementsByTagName('selected_person')[0].firstChild.data + screening_data['selected_video'] = record.getElementsByTagName('selected_video')[0].firstChild.data + + try: + pap = PersonAdoptPractice( person_id = screening_data['selected_person'], + date_of_adoption = screening_data['date'], + video_id = screening_data['selected_video'], + ) + + if pap.full_clean() == None: + pap.save() + status = 1 + error_msg = 'Sucessful' + except ValidationError ,e: + status = error_list['ADOPTION_SAVE_ERROR'] + error_msg = unicode(e) + + except Exception as ex: + status = error_list['ADOPTION_READ_ERROR'] + error_msg = unicode(ex) + + return status, error_msg + + + +if __name__ == "__main__": + xml_file = r'C:\Users\Yash\Desktop\trial.xml' + xml_parse = minidom.parse(xml_file) + data = xml_parse.getElementsByTagName('data') + if data[0].attributes["name"].value.lower() == 'screening' : + status,msg = save_screening_data(xml_parse) + elif data[0].attributes["name"].value.lower() == 'adoption' : + status,msg = save_adoption_data(xml_parse) + else : + status = -1 + print status + print msg diff --git a/dimagi/scripts/trial-2-Fixture_group.xlsx b/dimagi/scripts/trial-2-Fixture_group.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ee8ba0ee583c78d4e5ecad0af17706f7c3944bd9 GIT binary patch literal 21453 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 z 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 wLO^mB8xYWccrd?{|GV}1J9#L_-^l;8Me\n') + f.write('\n') + f.write('1\n') + f.write('\n') + i = 0 + f.write('\n') + f.write('\n') + f.write('person\n') + f.write('' + owner_id + '\n') + f.write('\n') + f.write('\n') + f.write('\n') + f.write('' + '1' + '\n') + f.write('\n') + f.write('\n') + # Writing closing meta info of the form + i += 1 + f.write('\n') + f.write('2523fc995ccfd1d27c15111ec8987be6\n') + f.write('2729386f-7fd2-42cc-807f-786bf2dc952b\n') + f.write('\n') + f.write('') + f.close() + return f + +def get_person_id_from_pma(instance): + PersonMeetingAttendance = get_model('dashboard','PersonMeetingAttendance') + person_id = PersonMeetingAttendance.objects.get(id = instance.model_id).person.id + return person_id + +def update_case(sender, **kwargs): + instance = kwargs["instance"] + action = instance.action + print instance.entry_table + if instance.entry_table == 'Person' or instance.entry_table == 'PersonMeetingAttendance': + if instance.entry_table == 'Person': + person_id = instance.model_id + elif instance.entry_table == 'PersonMeetingAttendance': + person_id = get_person_id_from_pma(instance) + case_id = get_case_id(person_id) + filename = 'person' + str(person_id) + '.xml' + if action == 0 or action == 1: + write_person_detail(person_id,filename,0, case_id ) + else: + close_case(case_id, filename) +# Uncomment the line below if cron job is not active/ or to have real time changes in pma +# response = upload_file(filename) +# print response + +def write_dict(dict, filename): + f = open(filename,'w') + data = json.dumps(dict) + f.write(data) + +def read_dict(filename): + json_data=open(filename).read() + data = json.loads(json_data) + return data + +def update_case_person_dict(user_id): + case_person_dict = {} + data = get_user_data(user_id) + for case in data: + if case['properties'].has_key('id'): + person_id = case['properties']['id'] + case_person_dict[person_id] = case['case_id'] + write_dict(case_person_dict, 'user.csv') + return case_person_dict + +if __name__ == '__main__': + user_id = 'krishna' + person_id = 5000001002 +# data = get_user_data(user_id) +# already_exists = check_person_id(data, person_id) +# if not already_exists: +# write_person_detail(person_id,'person.xml' ) +# response = upload_file('person.xml') +# print response +# close_case('cbb7d038-4905-4776-a798-e0c9f1ddcf98','close.xml') + dict = update_case_person_dict(user_id) + print dict + print len(dict) + dd = read_dict('user.csv') + print dd \ No newline at end of file diff --git a/dimagi/scripts/userfile.json b/dimagi/scripts/userfile.json new file mode 100644 index 0000000000..ac52bd43ca --- /dev/null +++ b/dimagi/scripts/userfile.json @@ -0,0 +1 @@ +[{"username": "y", "villages": [10000000020974, 10000000020975, 10000000021293, 10000000020958, 10000000020960, 10000000020956], "user_id": "f097d1d213ad3a08fee6643133465660"}, {"username": "y2", "villages": [10000000020974, 10000000020975, 10000000021293, 10000000020958, 10000000020960, 10000000020956], "user_id": "f097d1d213ad3a08fee6643133465660"}] \ No newline at end of file diff --git a/dimagi/scripts/userfile_functions.py b/dimagi/scripts/userfile_functions.py new file mode 100644 index 0000000000..014b9e75c2 --- /dev/null +++ b/dimagi/scripts/userfile_functions.py @@ -0,0 +1,112 @@ +import settings +from django.core.management import setup_environ +setup_environ(settings) +import csv,datetime, json, urllib2, uuid +from django.db.models import get_model +from poster.encode import multipart_encode +from poster.streaminghttp import register_openers + +def write_userfile(file, data): + f = open(file,'w') + f.write(data) + +def read_userfile(file): + json_data=open(file).read() + data = json.loads(json_data) + return data + +def rm_bom(filename): + print filename + out = r'C:\Users\Yash\Documents\GitHub\dg\dimagi\scripts\try2.xml' + with open(filename, 'rb') as source_file: + with open(out, 'w+b') as dest_file: + contents = source_file.read() + dest_file.write(contents.decode('utf-8').encode('utf-8-sig')) + return out + +def write_person_detail(person_ids, filename, i=0, case_id=None): + import codecs + f = open(filename, "w") + Person = get_model('dashboard','Person') + PersonMeetingAttendance = get_model('dashboard','PersonMeetingAttendance') + PersonAdoptPractice = get_model('dashboard','PersonAdoptPractice') + f.write('\n') + f.write('\n') + f.write('' + str(len(person_ids)) + '\n') + for person_id in person_ids: + person = Person.objects.get(id = person_id) + # f = open(filename,'w') + case_id = uuid.uuid4() + # owner_id = 'f097d1d213ad3a08fee6643133465660' + # Getting list of videos seen + vids = PersonMeetingAttendance.objects.filter(person = person).values_list('screening__videoes_screened', flat = True) + videos_seen = '' + for vid in vids: + videos_seen = videos_seen + str(vid) + ' ' + # Getting list of videos adopted + adopts = PersonAdoptPractice.objects.filter(person = person).values_list('video', flat = True) + videos_adopted = '' + for vid in adopts: + videos_adopted = videos_adopted + str(vid) + ' ' + # Putting all the info in xml tags + f.write('\n') + f.write('\n') + f.write('\n') + f.write('person\n') + f.write('' + '2523fc995ccfd1d27c15111ec8987be6' + '\n') + f.write('' + unicode(person.person_name) + '\n') + f.write('\n') + f.write('\n') + f.write('' + str(person.id) + '\n') + f.write('' + str(person.group.id)+ '\n') + f.write('' + videos_seen + '\n') + f.write('' + '' + '\n') + f.write('\n') + f.write('\n') + f.write('\n') + # Writing closing meta info of the form + i += 1 + + f.write('\n') + f.write('2523fc995ccfd1d27c15111ec8987be6\n') + f.write('2729386f-7fd2-42cc-807f-786bf2dc952b\n') + f.write('\n') + f.write('') + f.close() +# f = rm_bom(filename) + return f + +def make_upload_file(villages, filename): + Person = get_model('dashboard','Person') + person_ids = Person.objects.filter(village__in = villages).values_list('id',flat=True) + f = write_person_detail(person_ids, filename) +# response = upload_file(filename) +# print response + + +def upload_file(file): + register_openers() +# print 'uploading ' + file + datagen, headers = multipart_encode({"xml_submission_file": open(file, "r")}) + request = urllib2.Request("https://www.commcarehq.org/a/dgappilot/receiver", datagen, headers) + response = urllib2.urlopen(request).read() + return response + + +if __name__ == '__main__': + file = 'userfileappilot.json' +# user_villages = [] +# json_data = json.dumps([{'user_id': '53d48b7a60a11661405244b98581d3ea', +# 'username': 'krishna', +# 'villages' : [10000000020940,10000000020936,10000000020938,10000000021295]}, +## {'user_id': 'f097d1d213ad3a08fee6643133465660', +## 'username': 'y2', +## 'villages' : [10000000020974,10000000020975,10000000021293, +## 10000000020958,10000000020960,10000000020956]} +# ]) +# data = json.loads(json_data) +# write_userfile(file,json_data) + data = read_userfile(file) + print data + villages = data[0]['villages'] + make_upload_file(villages, r'C:\Users\Yash\Documents\GitHub\dg\dimagi\scripts\try.xml') diff --git a/dimagi/scripts/userfileappilot.json b/dimagi/scripts/userfileappilot.json new file mode 100644 index 0000000000..23da82afb2 --- /dev/null +++ b/dimagi/scripts/userfileappilot.json @@ -0,0 +1 @@ +[{"username": "krishna", "villages": [10000000020940, 10000000020936, 10000000020938, 10000000021295], "user_id": "krishna"}] \ No newline at end of file diff --git a/dimagi/scripts/video_schedule.py b/dimagi/scripts/video_schedule.py new file mode 100644 index 0000000000..074b3c2482 --- /dev/null +++ b/dimagi/scripts/video_schedule.py @@ -0,0 +1,43 @@ +import settings +from django.core.management import setup_environ +setup_environ(settings) +from dashboard.models import * +import xlrd + +def get_video_schedule(): + book = xlrd.open_workbook("video_schedule.xls", formatting_info=1) + sheets = book.sheet_names() + sheet = book.sheet_by_index(0) # using the first sheet + dates = ['2013-01-01','2013-01-16','2013-02-01','2013-02-16','2013-03-01','2013-03-16','2013-04-01','2013-04-16','2013-05-01','2013-05-16','2013-06-01','2013-06-16', + '2013-07-01','2013-07-16','2013-08-01','2013-08-16','2013-09-01','2013-09-16','2013-10-01','2013-10-16','2013-11-01','2013-11-16','2013-12-01','2013-12-16','2013-12-31'] + row = 2 + vid_dict = [] + vid_list = [] + print sheet.nrows + while( row < sheet.nrows): + col = 0 + vid_id = Video.objects.filter(title = sheet.cell(row, col).value).values_list('id', flat = True) + col += 1 + if len(vid_id) == 1 : + vid_list.append(vid_id[0]) + while( col < sheet.ncols ): + format_info = sheet.cell_xf_index(row, col) + format_info = book.xf_list[format_info] + bg_color = format_info.background.pattern_colour_index + if bg_color == 13: + low = col + while( col < sheet.ncols): + format_info = sheet.cell_xf_index(row, col) + format_info = book.xf_list[format_info] + bg_color = format_info.background.pattern_colour_index + if bg_color == 13: + col += 1 + else: + high = col + vid_dict.append({'id': vid_id[0], + 'low_val': dates[low-2], + 'high_val': dates[high-2] }) + break + col += 1 + row += 1 + return vid_dict, vid_list \ No newline at end of file diff --git a/dimagi/scripts/video_schedule.xls b/dimagi/scripts/video_schedule.xls new file mode 100644 index 0000000000000000000000000000000000000000..507b3e0097b680309e45de7a0da3859caf158084 GIT binary patch literal 41984 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 z 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 AX#fBK literal 0 HcmV?d00001 diff --git a/dimagi/submitted/adoption_sample1.xml b/dimagi/submitted/adoption_sample1.xml new file mode 100644 index 0000000000..3d6ca6a6e3 --- /dev/null +++ b/dimagi/submitted/adoption_sample1.xml @@ -0,0 +1,20 @@ + +2012-08-28 +10000000020532 +56000001035 +56000001034 +56000001042 +10000000020197 +OK + +N79XOAF43JTG1FT2EQISGBUQ0 +2012-08-28T16:47:13.404+05:30 +2012-08-28T16:48:23.009+05:30 +ap +bd47bcb58cd8ece0bad7141abbcc5347 +5d829bdd-6e13-4046-81f0-8717d40404b1 + +v2.0.0 (50fdad-87b598-unvers-2.1.0-Nokia/S40-generic) #190 b:2012-Aug-23 r:2012-Aug-28 + + + \ No newline at end of file diff --git a/dimagi/submitted/sample1.xml b/dimagi/submitted/sample1.xml new file mode 100644 index 0000000000..a56091ec6b --- /dev/null +++ b/dimagi/submitted/sample1.xml @@ -0,0 +1,125 @@ + +2012-08-29 + +10000000020531 +56000001144 +10000000020479 +56000001093 + +56000001153 56000001145 56000001158 56000001154 56000001151 56000001147 56000001155 56000001146 56000001152 56000001157 56000001150 56000001148 56000001156 56000001149 + + +14 +OK + +0 + +56000001153 +Sulochana +1 +0 + + + +1 + +56000001145 +Suvernamma +0 + + +2 + +56000001158 +Vijayalaxmi +0 + + +3 + +56000001154 +Ambabai +0 + + +4 + +56000001151 +Laxmamma +0 + + +5 + +56000001147 +Shamalamma +0 + + +6 + +56000001155 +Nagamani +0 + + +7 + +56000001146 +Suryakala +0 + + +8 + +56000001152 +Padma +0 + + +9 + +56000001157 +Krishnamma +0 + + +10 + +56000001150 +Komuramma +0 + + +11 + +56000001148 +Nirmalamma +0 + + +12 + +56000001156 +Suverna +0 + + +13 + +56000001149 +Jayamma +0 + + +E18QMIQJEY8HWZDRBRYKP1U8J +2012-08-29T11:41:42.404+05:30 +2012-08-29T11:44:09.912+05:30 +ap +bd47bcb58cd8ece0bad7141abbcc5347 +ce8b6bf5-d2bb-4838-873f-4e7e2397f06d + +v2.0.0 (50fdad-87b598-unvers-2.1.0-Nokia/S40-generic) #192 b:2012-Aug-23 r:2012-Aug-28 + + + \ No newline at end of file diff --git a/dimagi/tests.py b/dimagi/tests.py new file mode 100644 index 0000000000..501deb776c --- /dev/null +++ b/dimagi/tests.py @@ -0,0 +1,16 @@ +""" +This file demonstrates writing tests using the unittest module. These will pass +when you run "manage.py test". + +Replace this with more appropriate tests for your application. +""" + +from django.test import TestCase + + +class SimpleTest(TestCase): + def test_basic_addition(self): + """ + Tests that 1 + 1 always equals 2. + """ + self.assertEqual(1 + 1, 2) diff --git a/dimagi/urls.py b/dimagi/urls.py new file mode 100644 index 0000000000..2ac3183bf6 --- /dev/null +++ b/dimagi/urls.py @@ -0,0 +1,6 @@ +from django.conf.urls.defaults import patterns, url +from views import save_submission + +urlpatterns = patterns('', + url(r'^submission/$', save_submission), +) diff --git a/dimagi/views.py b/dimagi/views.py new file mode 100644 index 0000000000..a85b9826ca --- /dev/null +++ b/dimagi/views.py @@ -0,0 +1,31 @@ +from django.http import HttpResponse +from models import XMLSubmission +from xml.dom import minidom +from scripts import save_mobile_data + +def save_submission(request): + submission = XMLSubmission() + submission.xml_data = request.raw_post_data + submission.save() + status, msg = save_in_db(submission) + submission.error_code = status + submission.error_message = msg + try: + submission.save() + except Exception as ex: + error = ex + return HttpResponse(status=201) + + +def save_in_db(submission): + xml_string = submission.xml_data + xml_parse = minidom.parseString(xml_string) + data = xml_parse.getElementsByTagName('data') + if data[0].attributes["name"].value.lower() == 'screening' : + status, msg = save_mobile_data.save_screening_data(xml_parse) + elif data[0].attributes["name"].value.lower() == 'adoption' : + status, msg = save_mobile_data.save_adoption_data(xml_parse) + else : + status = -1 + msg = 'error in form' + return status, msg diff --git a/dimagi/xforms/form_adoption.xml b/dimagi/xforms/form_adoption.xml new file mode 100644 index 0000000000..9def1de3c6 --- /dev/null +++ b/dimagi/xforms/form_adoption.xml @@ -0,0 +1,131 @@ + + + Adoption + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Your form has been completed. Press Done to continue + + + Village + + + Mediator + + + Group + + + Video + + + Person + + + Date + + + + + మీ ఫోరం ఫిల్ అయ్యింది. ప్రెస్ డన్ + + + గ్రామము + + + కార్యకర్త + + + గ్రూప్ పేరు + + + చిత్రం పేరు + + + రైతు + + + తేది + + + + + + + + + \ No newline at end of file diff --git a/dimagi/xforms/form_screening.xml b/dimagi/xforms/form_screening.xml new file mode 100644 index 0000000000..3d9c1f7da4 --- /dev/null +++ b/dimagi/xforms/form_screening.xml @@ -0,0 +1,247 @@ + + + Screening + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Your form has been completed. Press Done to continue + + + Enter Attendance + + + Attendance Record + + + Current Index + + + + Question Asked + + + + + + Yes + + + No + + + Interested + + + Yes + + + No + + + Village + + + Mediator + + + Group + + + Video + + + Date + + + Time + + + + + మీ ఫోరం ఫిల్ అయ్యింది. ప్రెస్ డన్ + + + హాజారు పట్టి + + + హాజారు నమోదు + + + క్రమ సంఖ్యా + + + + అడిగిన ప్రశ్న + + + + + + వచ్చారు + + + రాలేదు + + + ఆసక్తి + + + అవును + + + కాదు + + + గ్రామము + + + కార్యకర్త + + + గ్రూప్ పేరు + + + చిత్రం పేరు + + + తేది + + + సమయం + + + + + + + + + \ No newline at end of file