def save_in_db(submission): xml_string = submission.xml_data xml_parse = minidom.parseString(xml_string) status = error_list['SUCCESS'] msg = "No error." if xml_parse.getElementsByTagName('data'): data = xml_parse.getElementsByTagName('data') try: if data[0].attributes["name"].value.lower( ) == 'screening form' or data[0].attributes["name"].value.lower( ) == 'screening form [en]': status, msg = save_mobile_data.save_screening_data(xml_parse) elif data[0].attributes["name"].value.lower( ) == 'adoption form' or data[0].attributes["name"].value.lower( ) == 'adoption form [en]': status, msg = save_mobile_data.save_adoption_data(xml_parse) else: status = error_list['UNIDENTIFIED_FORM'] msg = 'Unidentified form. Data Tag with some other form name.' except Exception as ex: error = "Error in saving submission in save_in_db function " + str( ex) sendmail("Exception in Mobile COCO", error) elif xml_parse.getElementsByTagName('device_report'): status = error_list['DEVICE_REPORT'] msg = 'device_report' else: status = error_list['UNIDENTIFIED_FORM'] msg = 'Unidentified form. No data tag.' return status, msg
def save_in_db(submission): xml_string = submission.xml_data xml_parse = minidom.parseString(xml_string) status = error_list['SUCCESS'] msg = "No error." if xml_parse.getElementsByTagName('data'): data = xml_parse.getElementsByTagName('data') try: if data[0].attributes["name"].value.lower() == 'screening form' or data[0].attributes["name"].value.lower() == 'screening form [en]': status, msg = save_mobile_data.save_screening_data(xml_parse) elif data[0].attributes["name"].value.lower() == 'adoption form' or data[0].attributes["name"].value.lower() == 'adoption form [en]': status, msg = save_mobile_data.save_adoption_data(xml_parse) else: status = error_list['UNIDENTIFIED_FORM'] msg = 'Unidentified form. Data Tag with some other form name.' except Exception as ex: error = "Error in saving submission in save_in_db function " + str(ex) sendmail("Exception in Mobile COCO", error) elif xml_parse.getElementsByTagName('device_report'): status = error_list['DEVICE_REPORT'] msg = 'device_report' else: status = error_list['UNIDENTIFIED_FORM'] msg = 'Unidentified form. No data tag.' return status, msg
def save_pma(pma_record, Sid, status): for person in pma_record: try: PersonExisting = PersonMeetingAttendance.objects.filter(screening_id=Sid, person_id=person['person_id']) if not(len(PersonExisting)): pma = PersonMeetingAttendance(screening_id=Sid, person_id=person['person_id']) pma.full_clean() pma.save() status = 1 except ValidationError, e: status = error_list['PMA_SAVE_ERROR'] error = "Error in Saving PMA : " + str(e) sendmail("Exception in Mobile COCO. Error in Saving PMA {Line 164)", error)
def handle(self, *args, **options): xml_data = XMLSubmission.objects.filter(error_code=-3) print len(xml_data) length = 0 for obj in xml_data: length = length + 1 xml_string = obj.xml_data xml_parse = minidom.parseString(xml_string) print "#" + str(obj.id) old_msg = obj.error_message old_code = obj.error_code status = error_list['SUCCESS'] msg = "success" if xml_parse.getElementsByTagName('data'): data = xml_parse.getElementsByTagName('data') try: if data[0].attributes["name"].value.lower( ) == 'screening form' or data[0].attributes[ "name"].value.lower() == 'screening form [en]': status, msg = save_mobile_data.save_screening_data( xml_parse) elif data[0].attributes["name"].value.lower( ) == 'adoption form' or data[0].attributes[ "name"].value.lower() == 'adoption form [en]': status, msg = save_mobile_data.save_adoption_data( xml_parse) else: status = error_list['UNIDENTIFIED_FORM'] msg = 'Unidentified form. Data Tag with some other form name.' except Exception as ex: error = "Error in update_screening_xml : " + str(ex) sendmail("Exception in update_screening_xml", error) elif xml_parse.getElementsByTagName('device_report'): status = error_list['DEVICE_REPORT'] msg = 'device_report' else: status = error_list['UNIDENTIFIED_FORM'] msg = 'Unidentified form. No data tag.' try: obj.error_code = status obj.error_message = msg obj.save() except Exception as ex: error = "Error in Updating XML Submission : " + str(ex) sendmail("Exception in update_screening_xml", error) print old_msg, old_code, obj.error_message, obj.error_code print length
def handle(self, *args, **options): xml_data = XMLSubmission.objects.filter(error_code=-3) print len(xml_data) length = 0 for obj in xml_data: length = length + 1 xml_string = obj.xml_data xml_parse = minidom.parseString(xml_string) print "#" + str(obj.id) old_msg = obj.error_message old_code = obj.error_code status = error_list["SUCCESS"] msg = "success" if xml_parse.getElementsByTagName("data"): data = xml_parse.getElementsByTagName("data") try: if ( data[0].attributes["name"].value.lower() == "screening form" or data[0].attributes["name"].value.lower() == "screening form [en]" ): status, msg = save_mobile_data.save_screening_data(xml_parse) elif ( data[0].attributes["name"].value.lower() == "adoption form" or data[0].attributes["name"].value.lower() == "adoption form [en]" ): status, msg = save_mobile_data.save_adoption_data(xml_parse) else: status = error_list["UNIDENTIFIED_FORM"] msg = "Unidentified form. Data Tag with some other form name." except Exception as ex: error = "Error in update_screening_xml : " + str(ex) sendmail("Exception in update_screening_xml", error) elif xml_parse.getElementsByTagName("device_report"): status = error_list["DEVICE_REPORT"] msg = "device_report" else: status = error_list["UNIDENTIFIED_FORM"] msg = "Unidentified form. No data tag." try: obj.error_code = status obj.error_message = msg obj.save() except Exception as ex: error = "Error in Updating XML Submission : " + str(ex) sendmail("Exception in update_screening_xml", error) print old_msg, old_code, obj.error_message, obj.error_code print length
def update_case(cases, filename, project_name): file = codecs.open(filename, "w",'utf-8') PersonMeetingAttendance = get_model('activities','PersonMeetingAttendance') PersonAdoptPractice = get_model('activities','PersonAdoptPractice') Person = get_model('people','Person') count = 0 content_array = [] for case in cases: case_id = case.guid owner_id = case.user.guid url = "".join(["https://www.commcarehq.org/a/", project_name, "/api/v0.5/case/", case_id, "/?type=json"]) person = Person.objects.get(id=case.person_id) vids = PersonMeetingAttendance.objects.filter(person=person).values_list('screening__videoes_screened', flat = True).distinct() videos_seen = " ".join([unicode(v) for v in vids]) # Getting list of videos adopted adopts = PersonAdoptPractice.objects.filter(person=person).values_list('video', flat = True).distinct() videos_adopted = " ".join([unicode(a) for a in adopts]) #check for changes in the cases in dimagi try: r = requests.get(url, auth=HTTPDigestAuth(DIMAGI_USERNAME, DIMAGI_PASSWORD)) data = json.loads(r.content) except Exception as e: error = "Person Name: "+str(person.person_name)+" Person ID: "+str(person.id)+" Case ID: "+str(case_id)+" Error: "+str(e) sendmail("Error in Uploading Cases", error) video_seen_in_case = sorted(data['properties']['videos_seen'].split()) video_seen_in_db = sorted(videos_seen.split()) print cmp(video_seen_in_case, video_seen_in_db) video_adopt_in_case = sorted(data['properties']['videos_adopted'].split()) video_adopt_in_db = sorted(videos_adopted.split()) print cmp(video_adopt_in_case, video_adopt_in_db) # Write xml for a particular person if (cmp(video_seen_in_case, video_seen_in_db) != 0 or cmp(video_adopt_in_case, video_adopt_in_db) != 0): write_person_update_content(content_array, count, case_id, owner_id, person, videos_seen, videos_adopted) count += 1 write_opening_meta(file, count) for content in content_array: file.write(content) write_closing_meta(file, owner_id, count) file.close()
def save_pma(pma_record, Sid, status): for person in pma_record: try: PersonExisting = PersonMeetingAttendance.objects.filter( screening_id=Sid, person_id=person['person_id']) if not (len(PersonExisting)): pma = PersonMeetingAttendance(screening_id=Sid, person_id=person['person_id']) pma.full_clean() pma.save() status = 1 except ValidationError, e: status = error_list['PMA_SAVE_ERROR'] error = "Error in Saving PMA : " + str(e) sendmail( "Exception in Mobile COCO. Error in Saving PMA {Line 164)", error)
def save_submission(request): submission = XMLSubmission() ##For a test ping from Dimagi try: if not request.body: return HttpResponse(status=201) submission.xml_data = request.body submission.submission_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") submission.save() status, msg = save_in_db(submission) submission.error_code = status submission.error_message = msg update_submission(submission) submission.save() return HttpResponse(status=201) except Exception as ex: error = "Error in save_submission " + str(ex) sendmail("Exception in Mobile COCO", error) return HttpResponse(status=201)
def save_submission(request): submission = XMLSubmission() ##For a test ping from Dimagi try: if not request.body: return HttpResponse(status=201) submission.xml_data = request.body submission.submission_time = datetime.datetime.now().strftime( "%Y-%m-%d %H:%M:%S") submission.save() status, msg = save_in_db(submission) submission.error_code = status submission.error_message = msg update_submission(submission) submission.save() return HttpResponse(status=201) except Exception as ex: error = "Error in save_submission " + str(ex) sendmail("Exception in Mobile COCO", error) return HttpResponse(status=201)
def save_adoption_data(xml_tree): error_msg = '' try: xml_data = xml_tree.getElementsByTagName('data') commcare_user = CommCareUser.objects.get(guid = str(xml_tree.getElementsByTagName('n0:userID')[0].childNodes[0].nodeValue)) cocouser = commcare_user.coco_user for record in xml_data: try: adoption_data = {} adoption_data['date'] = record.getElementsByTagName('selected_date')[0].firstChild.data adoption_data['selected_person'] = record.getElementsByTagName('selected_person')[0].firstChild.data adoption_data['selected_video'] = record.getElementsByTagName('selected_video')[0].firstChild.data try: AdoptionExisting = PersonAdoptPractice.objects.filter(person_id=adoption_data['selected_person'], video_id=adoption_data['selected_video'], date_of_adoption=adoption_data['date']) status = error_list['DUPLICATE_ADOPTION'] error_msg = 'Duplicate Adoption' if not(len(AdoptionExisting)): pap = PersonAdoptPractice(person_id=adoption_data['selected_person'], date_of_adoption=adoption_data['date'], video_id=adoption_data['selected_video'], partner=cocouser.partner, user_created=cocouser.user) pap.full_clean() pap.save() status = 1 error_msg = 'Successful' except ValidationError, e: status = error_list['ADOPTION_SAVE_ERROR'] error_msg = 'adoption_save_error' error = "Error in Saving Adoption : " + str(e) sendmail("Exception in Mobile COCO. Adoption save error (Line 168)", error) except Exception as ex: status = error_list['ADOPTION_READ_ERROR'] error_msg = 'adoption_read_error' error = "Error in Reading Adoption : " + str(ex) sendmail("Exception in Mobile COCO. Adoption read error (Line 152)", error) except Exception as e: status = error_list['USER_NOT_FOUND'] error_msg = 'user_read_error' error = "Error in Reading User : "******"Exception in Mobile COCO. User read error (Line 147)", error) return status, error_msg
def save_screening_data(xml_tree): status = {} error_msg = '' try: xml_data = xml_tree.getElementsByTagName('data') commcare_user = CommCareUser.objects.get(guid=str(xml_tree.getElementsByTagName('n0:userID')[0].childNodes[0].nodeValue)) cocouser = commcare_user.coco_user if commcare_user.mediator.id: mediator = commcare_user.mediator.id 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 if record.getElementsByTagName('selected_mediator'): screening_data['selected_mediator'] = record.getElementsByTagName('selected_mediator')[0].firstChild.data else: screening_data['selected_mediator'] = mediator 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 if record.getElementsByTagName('Feedback')[0].firstChild: screening_data['question_asked'] = record.getElementsByTagName('Feedback')[0].firstChild.data else: screening_data['question_asked'] = "" #Check if 'attendance_record' or 'attended' tag pma_record =[] if record.getElementsByTagName('attendance_record'): screening_data['attendance_record'] = record.getElementsByTagName('attendance_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_record.append(pma) error_msg = 'Successful' else: attendance_list = str(record.getElementsByTagName('attended')[0].firstChild.data) screening_data['attendance_record'] = map(int, str.split(attendance_list)) #if empty: 'NoneType' object has no attribute 'data' error in email. Not Using if statement here. for person in screening_data['attendance_record']: pma = {} pma['person_id'] = person 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() try: ScreeningObject = Screening.objects.get(animator_id=screening_data['selected_mediator'], date=screening_data['date'], start_time=screening_data['start_time'], village_id=screening_data['selected_village']) status['screening'] = 1 # add only if group doesn't exist for group in screening_data['selected_group'].split(" "): GroupExisting = Screening.objects.filter(farmer_groups_targeted=group, id=ScreeningObject.id) if not(len(GroupExisting)): GroupObject = PersonGroup.objects.get(id=group) ScreeningObject.farmer_groups_targeted.add(GroupObject) ScreeningObject.save() status['screening'] = 1 error_msg = 'Successful' else: status['screening'] = error_list['DUPLICATE_SCREENING'] error_msg = 'Duplicate Screening' status['pma'] = save_pma(pma_record, ScreeningObject.id, status['screening']) if status['pma'] == error_list['PMA_SAVE_ERROR']: status['screening'] = error_list['PMA_SAVE_ERROR'] error_msg = 'pma_save_error' except Screening.DoesNotExist as e: screening = Screening(date=screening_data['date'], start_time=screening_data['start_time'], location='Mobile', village_id=screening_data['selected_village'], animator_id=screening_data['selected_mediator'], questions_asked=screening_data['question_asked'], partner=cocouser.partner, user_created=cocouser.user) try: screening.full_clean() screening.save() status['screening'] = 1 try: screening.farmer_groups_targeted = screening_data['selected_group'].split(" ") screening.videoes_screened = screening_data['selected_video'].split(" ") screening.save() except Exception as e: error = "Error in Saving Groups and Videos : " + str(e) status['screening'] = error_list['SCREENING_SAVE_ERROR'] error_msg = 'screening_save_error' sendmail("Exception in Mobile COCO. Error in saving groups and videos (Line 120)", error) status['pma'] = save_pma(pma_record, screening.id, status['screening']) if status['pma'] == error_list['PMA_SAVE_ERROR']: status['screening'] = error_list['PMA_SAVE_ERROR'] error_msg = 'pma_save_error' except ValidationError as err: status['screening'] = error_list['SCREENING_SAVE_ERROR'] error_msg = 'screening_save_error' error = "Error in Saving Screening : " + str(err) sendmail("Exception in Mobile COCO. Screening save error (Line 114)", error) except Exception as ex: status['screening'] = error_list['SCREENING_READ_ERROR'] error_msg = 'screening_read_error' error = "Error in Reading Screening : " + str(ex) sendmail("Exception in Mobile COCO. Error in reading XML.", error) except Exception as e: status['screening'] = error_list['USER_NOT_FOUND'] error_msg = 'user_read_error' error = "Error in Reading User : "******"Exception in Mobile COCO. User not found (Line 17)", error) return status['screening'], error_msg
def save_adoption_data(xml_tree): error_msg = '' try: xml_data = xml_tree.getElementsByTagName('data') commcare_user = CommCareUser.objects.get(guid=str( xml_tree.getElementsByTagName('n0:userID') [0].childNodes[0].nodeValue)) cocouser = commcare_user.coco_user for record in xml_data: try: adoption_data = {} adoption_data['date'] = record.getElementsByTagName( 'selected_date')[0].firstChild.data adoption_data['selected_person'] = record.getElementsByTagName( 'selected_person')[0].firstChild.data adoption_data['selected_video'] = record.getElementsByTagName( 'selected_video')[0].firstChild.data try: adoption_data[ 'verification_date'] = record.getElementsByTagName( 'verification_date')[0].firstChild.data except Exception: adoption_data['verification_date'] = None try: AdoptionExisting = PersonAdoptPractice.objects.filter( person_id=adoption_data['selected_person'], video_id=adoption_data['selected_video'], date_of_adoption=adoption_data['date']) status = error_list['DUPLICATE_ADOPTION'] error_msg = 'Duplicate Adoption' if not (len(AdoptionExisting)): pap = PersonAdoptPractice( person_id=adoption_data['selected_person'], date_of_adoption=adoption_data['date'], video_id=adoption_data['selected_video'], partner=cocouser.partner, user_created=cocouser.user, date_of_verification=adoption_data[ 'verification_date']) pap.full_clean() pap.save() status = 1 error_msg = 'Successful' except ValidationError, e: status = error_list['ADOPTION_SAVE_ERROR'] error_msg = 'adoption_save_error' error = "Error in Saving Adoption : " + str(e) sendmail( "Exception in Mobile COCO. Adoption save error (Line 168)", error) except Exception as ex: status = error_list['ADOPTION_READ_ERROR'] error_msg = 'adoption_read_error' error = "Error in Reading Adoption : " + str(ex) sendmail( "Exception in Mobile COCO. Adoption read error (Line 152)", error) except Exception as e: status = error_list['USER_NOT_FOUND'] error_msg = 'user_read_error' error = "Error in Reading User : "******"Exception in Mobile COCO. User read error (Line 147)", error) return status, error_msg
def save_screening_data(xml_tree): status = {} error_msg = '' try: xml_data = xml_tree.getElementsByTagName('data') commcare_user = CommCareUser.objects.get(guid=str( xml_tree.getElementsByTagName('n0:userID') [0].childNodes[0].nodeValue)) cocouser = commcare_user.coco_user if commcare_user.mediator.id: mediator = commcare_user.mediator.id 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 if record.getElementsByTagName('selected_mediator'): screening_data[ 'selected_mediator'] = record.getElementsByTagName( 'selected_mediator')[0].firstChild.data else: screening_data['selected_mediator'] = mediator 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 if record.getElementsByTagName('Feedback')[0].firstChild: screening_data[ 'question_asked'] = record.getElementsByTagName( 'Feedback')[0].firstChild.data else: screening_data['question_asked'] = "" #Check if 'attendance_record' or 'attended' tag pma_record = [] if record.getElementsByTagName('attendance_record'): screening_data[ 'attendance_record'] = record.getElementsByTagName( 'attendance_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_record.append(pma) error_msg = 'Successful' else: attendance_list = str( record.getElementsByTagName('attended') [0].firstChild.data) screening_data['attendance_record'] = map( int, str.split(attendance_list)) #if empty: 'NoneType' object has no attribute 'data' error in email. Not Using if statement here. for person in screening_data['attendance_record']: pma = {} pma['person_id'] = person 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() try: ScreeningObject = Screening.objects.get( animator_id=screening_data['selected_mediator'], date=screening_data['date'], start_time=screening_data['start_time'], village_id=screening_data['selected_village']) status['screening'] = 1 # add only if group doesn't exist for group in screening_data['selected_group'].split(" "): GroupExisting = Screening.objects.filter( farmer_groups_targeted=group, id=ScreeningObject.id) if not (len(GroupExisting)): GroupObject = PersonGroup.objects.get(id=group) ScreeningObject.farmer_groups_targeted.add( GroupObject) ScreeningObject.save() status['screening'] = 1 error_msg = 'Successful' else: status['screening'] = error_list[ 'DUPLICATE_SCREENING'] error_msg = 'Duplicate Screening' status['pma'] = save_pma(pma_record, ScreeningObject.id, status['screening']) if status['pma'] == error_list['PMA_SAVE_ERROR']: status['screening'] = error_list['PMA_SAVE_ERROR'] error_msg = 'pma_save_error' except Screening.DoesNotExist as e: screening = Screening( date=screening_data['date'], start_time=screening_data['start_time'], location='Mobile', village_id=screening_data['selected_village'], animator_id=screening_data['selected_mediator'], questions_asked=screening_data['question_asked'], partner=cocouser.partner, user_created=cocouser.user) try: screening.full_clean() screening.save() status['screening'] = 1 try: screening.farmer_groups_targeted = screening_data[ 'selected_group'].split(" ") screening.videoes_screened = screening_data[ 'selected_video'].split(" ") screening.save() except Exception as e: error = "Error in Saving Groups and Videos : " + str( e) status['screening'] = error_list[ 'SCREENING_SAVE_ERROR'] error_msg = 'screening_save_error' sendmail( "Exception in Mobile COCO. Error in saving groups and videos (Line 120)", error) status['pma'] = save_pma(pma_record, screening.id, status['screening']) if status['pma'] == error_list['PMA_SAVE_ERROR']: status['screening'] = error_list['PMA_SAVE_ERROR'] error_msg = 'pma_save_error' except ValidationError as err: status['screening'] = error_list[ 'SCREENING_SAVE_ERROR'] error_msg = 'screening_save_error' error = "Error in Saving Screening : " + str(err) sendmail( "Exception in Mobile COCO. Screening save error (Line 114)", error) except Exception as ex: status['screening'] = error_list['SCREENING_READ_ERROR'] error_msg = 'screening_read_error' error = "Error in Reading Screening : " + str(ex) sendmail("Exception in Mobile COCO. Error in reading XML.", error) except Exception as e: status['screening'] = error_list['USER_NOT_FOUND'] error_msg = 'user_read_error' error = "Error in Reading User : "******"Exception in Mobile COCO. User not found (Line 17)", error) return status['screening'], error_msg
def update_case(cases, filename, project_name): file = codecs.open(filename, "w", 'utf-8') PersonMeetingAttendance = get_model('activities', 'PersonMeetingAttendance') PersonAdoptPractice = get_model('activities', 'PersonAdoptPractice') Person = get_model('people', 'Person') count = 0 content_array = [] for case in cases: case_id = case.guid owner_id = case.user.guid url = "".join([ "https://www.commcarehq.org/a/", project_name, "/api/v0.5/case/", case_id, "/?type=json" ]) person = Person.objects.get(id=case.person_id) vids = PersonMeetingAttendance.objects.filter( person=person).values_list('screening__videoes_screened', flat=True).distinct() videos_seen = " ".join([unicode(v) for v in vids]) # Getting list of videos adopted adopts = PersonAdoptPractice.objects.filter(person=person).values_list( 'video', flat=True).distinct() videos_adopted = " ".join([unicode(a) for a in adopts]) #check for changes in the cases in dimagi try: r = requests.get(url, auth=HTTPDigestAuth(DIMAGI_USERNAME, DIMAGI_PASSWORD)) data = json.loads(r.content) except Exception as e: error = "Person Name: " + str( person.person_name) + " Person ID: " + str( person.id) + " Case ID: " + str( case_id) + " Error: " + str(e) sendmail("Error in Uploading Cases", error) video_seen_in_case = sorted(data['properties']['videos_seen'].split()) video_seen_in_db = sorted(videos_seen.split()) print cmp(video_seen_in_case, video_seen_in_db) video_adopt_in_case = sorted( data['properties']['videos_adopted'].split()) video_adopt_in_db = sorted(videos_adopted.split()) print cmp(video_adopt_in_case, video_adopt_in_db) # Write xml for a particular person if (cmp(video_seen_in_case, video_seen_in_db) != 0 or cmp(video_adopt_in_case, video_adopt_in_db) != 0): write_person_update_content(content_array, count, case_id, owner_id, person, videos_seen, videos_adopted) count += 1 write_opening_meta(file, count) for content in content_array: file.write(content) write_closing_meta(file, owner_id, count) file.close()