def _transmogrify_contacts(now_app, now_sub, mms_now_sub): for c in now_sub.contacts: emailValidator = re.compile(r'[^@]+@[^@]+\.[^@]+') now_party_appt = None if c.type == 'Individual' and c.contacttype and c.ind_lastname and c.ind_firstname and c.ind_phonenumber: now_party = Party( party_name=c.ind_lastname, first_name=c.ind_firstname, party_type_code='PER', phone_no=c.ind_phonenumber[:3] + "-" + c.ind_phonenumber[3:6] + "-" + c.ind_phonenumber[6:], email=c.email if c.email and emailValidator.match(c.email) else None, ) now_party_mine_party_appt_type = MinePartyAppointmentType.find_by_mine_party_appt_type_code( _map_contact_type(c.contacttype)) now_party_appt = app_models.NOWPartyAppointment( mine_party_appt_type_code=now_party_mine_party_appt_type. mine_party_appt_type_code, mine_party_appt_type=now_party_mine_party_appt_type, party=now_party) if c.type == 'Organization' and c.contacttype and c.org_legalname and c.dayphonenumber: now_party = Party( party_name=c.org_legalname, party_type_code='ORG', phone_no=c.dayphonenumber[:3] + "-" + c.dayphonenumber[3:6] + "-" + c.dayphonenumber[6:], phone_ext=c.dayphonenumberext, email=c.email if c.email and emailValidator.match(c.email) else None, ) now_party_mine_party_appt_type = MinePartyAppointmentType.find_by_mine_party_appt_type_code( _map_contact_type(c.contacttype)) now_party_appt = app_models.NOWPartyAppointment( mine_party_appt_type_code=now_party_mine_party_appt_type. mine_party_appt_type_code, mine_party_appt_type=now_party_mine_party_appt_type, party=now_party) if now_party_appt: validPostalCode = re.compile(r"\s*([a-zA-Z]\s*\d\s*){3}$") post_code = c.mailingaddresspostalzip.replace( " ", "") if c.mailingaddresspostalzip and validPostalCode.match( c.mailingaddresspostalzip.replace(" ", "")) else None if c.mailingaddressline1 and c.mailingaddresscity and c.mailingaddressprovstate and c.mailingaddresscountry: now_address = Address( address_line_1=c.mailingaddressline1, address_line_2=c.mailingaddressline2, city=c.mailingaddresscity, sub_division_code=c.mailingaddressprovstate.replace( " ", ""), post_code=post_code, address_type_code='CAN' if c.mailingaddresscountry == 'Canada' else 'USA') now_party_appt.party.address.append(now_address) now_app.contacts.append(now_party_appt) return
def test_get_mine_party_appt_type(test_client, db_session, auth_headers): get_resp = test_client.get('/parties/mines/relationship-types', headers=auth_headers['full_auth_header']) get_data = json.loads(get_resp.data.decode()) assert get_resp.status_code == 200 assert len(get_data) == len(MinePartyAppointmentType.get_active())
def get(self): return MinePartyAppointmentType.get_active()
def get(self): return MinePartyAppointmentType.find_all_active()
def setup_data(session): # Clear data clear_data(session) # Insert Region Code for region_code_value, display_order_value in zip( TEST_REGION_CODES, TEST_REGION_CODE_DISPLAY_ORDER): region_code = MineRegionCode(mine_region_code=region_code_value, description=TEST_REGION_DESCRIPTION, display_order=display_order_value, **DUMMY_USER_KWARGS) region_code.save() # Insert Mine Tenure Types for code, description in zip(TEST_MINE_TENURE_TYPE_CODES, TEST_MINE_TENURE_TYPE_DESCRIPTIONS): mine_tenure_type_code = MineTenureTypeCode(mine_tenure_type_code=code, description=description, **DUMMY_USER_KWARGS) mine_tenure_type_code.save() # Insert Mine Disturbance Codes for code, description in zip(TEST_MINE_DISTURBANCE_CODES, TEST_MINE_DISTURBANCE_DESCRIPTIONS): mine_disturbance_code = MineDisturbanceCode(mine_disturbance_code=code, description=description, **DUMMY_USER_KWARGS) mine_disturbance_code.save() # Insert Mine Commodity Codes for code, description in zip(TEST_MINE_COMMODITY_CODES, TEST_MINE_COMMODITY_DESCRIPTIONS): mine_commodity_code = MineCommodityCode(mine_commodity_code=code, description=description, **DUMMY_USER_KWARGS) mine_commodity_code.save() # Test Mine Data mine = Mine(mine_guid=uuid.UUID(TEST_MINE_GUID), mine_no=TEST_MINE_NO, mine_name=TEST_MINE_NAME, mine_region=TEST_REGION_CODE, **DUMMY_USER_KWARGS) mine.save() # Test Mine Type mine_type = MineType(mine_type_guid=uuid.UUID(TEST_MINE_TYPE_GUID), mine_guid=uuid.UUID(TEST_MINE_GUID), mine_tenure_type_code=TEST_MINE_TENURE_TYPE_CODES[0], active_ind=True, **DUMMY_USER_KWARGS) mine_type.save() # Test Mine Type Detail mine_type_detail = MineTypeDetail( mine_type_detail_xref_guid=uuid.UUID(TEST_MINE_TYPE_DETAIL_GUID), mine_type_guid=uuid.UUID(TEST_MINE_TYPE_GUID), mine_disturbance_code=TEST_MINE_DISTURBANCE_CODES[0], active_ind=True, **DUMMY_USER_KWARGS) mine_type_detail.save() # Test Tenure Data tenure = MineralTenureXref( mineral_tenure_xref_guid=uuid.UUID(TEST_TENURE_GUID), mine_guid=uuid.UUID(TEST_MINE_GUID), tenure_number_id=TEST_TENURE_ID, **DUMMY_USER_KWARGS) tenure.save() # Test Location Data mine_location = MineLocation( mine_location_guid=uuid.UUID(TEST_LOCATION_GUID), mine_guid=uuid.UUID(TEST_MINE_GUID), latitude=TEST_LAT_1, longitude=TEST_LONG_1, effective_date=datetime.today(), expiry_date=datetime.today(), **DUMMY_USER_KWARGS) mine_location.save() # Test Person Type Codes for k, v in PARTY_STATUS_CODE.items(): party_code = PartyTypeCode(party_type_code=v, description=v, **DUMMY_USER_KWARGS) party_code.save() session.commit() # Test Party Region Codes for code, description in zip(TEST_SUB_DIVISION_CODES, TEST_SUB_DIVISION_CODE_DESCRIPTIONS): sub_division_code = SubDivisionCode(sub_division_code=code, description=description, **DUMMY_USER_KWARGS) sub_division_code.save() # Test Operation Codes for k, v in MINE_OPERATION_STATUS.items(): mine_operation_status_code = MineOperationStatusCode( mine_operation_status_code=v['value'], description=v['label'], **DUMMY_USER_KWARGS) mine_operation_status_code.save() for k, v in MINE_OPERATION_STATUS_REASON.items(): mine_operation_status_reason_code = MineOperationStatusReasonCode( mine_operation_status_reason_code=v['value'], description=v['label'], **DUMMY_USER_KWARGS) mine_operation_status_reason_code.save() for k, v in MINE_OPERATION_STATUS_SUB_REASON.items(): mine_operation_status_sub_reason_code = MineOperationStatusSubReasonCode( mine_operation_status_sub_reason_code=v['value'], description=v['label'], **DUMMY_USER_KWARGS) mine_operation_status_sub_reason_code.save() session.commit() # Insert Operation Code Xref for status_k, status_v in MINE_OPERATION_STATUS.items(): for reason_k, reason_v in MINE_OPERATION_STATUS_REASON.items(): for sub_k, sub_v in MINE_OPERATION_STATUS_SUB_REASON.items(): mine_status_xref = MineStatusXref( mine_status_xref_guid=uuid.uuid4(), mine_operation_status_code=status_v['value'], mine_operation_status_reason_code=reason_v['value'], mine_operation_status_sub_reason_code=sub_v['value'], **DUMMY_USER_KWARGS) mine_status_xref.save() # Test Person Data person = Party(party_guid=uuid.UUID(TEST_PARTY_PER_GUID_1), first_name=TEST_PARTY_PER_FIRST_NAME_1, party_name=TEST_PARTY_PER_PARTY_NAME_1, email=TEST_PARTY_PER_EMAIL_1, phone_no=TEST_PARTY_PER_PHONE_1, phone_ext=TEST_PARTY_PER_PHONE_EXT_1, party_type_code=TEST_PARTY_TYPE, **DUMMY_USER_KWARGS) person.save(commit=False) person2 = Party(party_guid=uuid.UUID(TEST_PARTY_PER_GUID_2), first_name=TEST_PARTY_PER_FIRST_NAME_2, party_name=TEST_PARTY_PER_PARTY_NAME_2, email=TEST_PARTY_PER_EMAIL_2, phone_no=TEST_PARTY_PER_PHONE_2, phone_ext=TEST_PARTY_PER_PHONE_EXT_2, party_type_code=TEST_PARTY_TYPE, **DUMMY_USER_KWARGS) person2.save(commit=False) person3 = Party(party_guid=uuid.UUID(TEST_PARTY_PER_GUID_3), first_name=TEST_PARTY_PER_FIRST_NAME_3, party_name=TEST_PARTY_PER_PARTY_NAME_3, email=TEST_PARTY_PER_EMAIL_3, phone_no=TEST_PARTY_PER_PHONE_3, phone_ext=TEST_PARTY_PER_PHONE_EXT_3, party_type_code=TEST_PARTY_TYPE, **DUMMY_USER_KWARGS) person3.save(commit=False) party_org = Party(party_guid=uuid.UUID(TEST_PARTY_ORG_GUID), party_name=TEST_PARTY_ORG_NAME, email=TEST_PARTY_ORG_EMAIL, phone_no=TEST_PARTY_ORG_PHONE, phone_ext=TEST_PARTY_ORG_EXT, party_type_code=TEST_ORG_TYPE, **DUMMY_USER_KWARGS) party_org.save() # Test Permit Status Codes for permit_code_value in TEST_PERMIT_STATUS_CODES: permit_code = PermitStatusCode( permit_status_code=permit_code_value, description=TEST_PERMIT_STATUS_CODE_NAME_1, **DUMMY_USER_KWARGS) permit_code.save() # Test Permit Data permit = Permit(permit_guid=TEST_PERMIT_GUID_1, mine_guid=TEST_MINE_GUID, permit_no=TEST_PERMIT_NO_1, permit_status_code=TEST_PERMIT_STATUS_CODE_1, **DUMMY_USER_KWARGS) permit.save() permit_amendment_status_code = PermitAmendmentStatusCode( permit_amendment_status_code=TEST_PERMIT_AMENDMENT_STATUS_CODE, description=TEST_PERMIT_AMENDMENT_STATUS_CODE_NAME, **DUMMY_USER_KWARGS) permit_amendment_status_code.save() permit_amendment_status_code2 = PermitAmendmentStatusCode( permit_amendment_status_code=TEST_PERMIT_AMENDMENT_STATUS_CODE_2, description=TEST_PERMIT_AMENDMENT_STATUS_CODE_NAME, **DUMMY_USER_KWARGS) permit_amendment_status_code2.save() permit_amendment_type_code = PermitAmendmentTypeCode( permit_amendment_type_code=TEST_PERMIT_AMENDMENT_TYPE_CODE, description=TEST_PERMIT_AMENDMENT_TYPE_CODE_NAME, **DUMMY_USER_KWARGS) permit_amendment_type_code.save() permit_amendment_type_code2 = PermitAmendmentTypeCode( permit_amendment_type_code=TEST_PERMIT_AMENDMENT_TYPE_CODE_2, description=TEST_PERMIT_AMENDMENT_TYPE_CODE_NAME, **DUMMY_USER_KWARGS) permit_amendment_type_code2.save() required_document_due_date_type1 = RequiredDocumentDueDateType( req_document_due_date_type=TEST_REQUIRED_REPORT_DUE_DATE_TYPE[0], req_document_due_date_description= TEST_REQUIRED_REPORT_DUE_DATE_DESCRIPTION[0], **DUMMY_USER_KWARGS) required_document_due_date_type1.save() required_document_due_date_type2 = RequiredDocumentDueDateType( req_document_due_date_type=TEST_REQUIRED_REPORT_DUE_DATE_TYPE[1], req_document_due_date_description= TEST_REQUIRED_REPORT_DUE_DATE_DESCRIPTION[1], **DUMMY_USER_KWARGS) required_document_due_date_type2.save() required_document_category1 = RequiredDocumentCategory( req_document_category=TEST_REQUIRED_REPORT_CATEGORY_TAILINGS) required_document_category1.save() required_document_category2 = RequiredDocumentCategory( req_document_category='OTH') required_document_category2.save() required_document1 = RequiredDocument( req_document_guid=uuid.UUID(TEST_REQUIRED_REPORT_GUID1), req_document_name=TEST_REQUIRED_REPORT_NAME1, req_document_category=required_document_category1. req_document_category, req_document_due_date_type=TEST_REQUIRED_REPORT_DUE_DATE_TYPE[0], req_document_due_date_period_months=12, **DUMMY_USER_KWARGS) required_document1.save() required_document_sub_category = RequiredDocumentSubCategory( req_document_sub_category_code=TEST_REQUIRED_REPORT_SUB_CATEGORY_1) required_document_sub_category.save() required_document2 = RequiredDocument( req_document_guid=uuid.UUID(TEST_REQUIRED_REPORT_GUID2), req_document_name=TEST_REQUIRED_REPORT_NAME2, req_document_category=required_document_category1. req_document_category, req_document_sub_category_code=required_document_sub_category. req_document_sub_category_code, req_document_due_date_type=TEST_REQUIRED_REPORT_DUE_DATE_TYPE[0], req_document_due_date_period_months=12, **DUMMY_USER_KWARGS) required_document2.save() required_document3 = RequiredDocument( req_document_guid=uuid.UUID(TEST_REQUIRED_REPORT_GUID3), req_document_name=TEST_REQUIRED_REPORT_NAME3, req_document_category=required_document_category2. req_document_category, req_document_due_date_type=TEST_REQUIRED_REPORT_DUE_DATE_TYPE[1], req_document_due_date_period_months=12, **DUMMY_USER_KWARGS) required_document3.save() expected_document_status1 = ExpectedDocumentStatus( exp_document_status_code=TEST_EXPECTED_DOCUMENT_STATUS_CODE1, description="Not Received", display_order=10, **DUMMY_USER_KWARGS) expected_document_status1.save() expected_document_status2 = ExpectedDocumentStatus( exp_document_status_code=TEST_EXPECTED_DOCUMENT_STATUS_CODE2, description="Pending Review", display_order=20, **DUMMY_USER_KWARGS) expected_document_status2.save() expected_document1 = MineExpectedDocument( exp_document_guid=uuid.UUID(TEST_EXPECTED_DOCUMENT_GUID1), req_document_guid=uuid.UUID(TEST_REQUIRED_REPORT_GUID1), mine_guid=TEST_MINE_GUID, exp_document_name=TEST_EXPECTED_DOCUMENT_NAME1, due_date=datetime.strptime('1984-06-18', '%Y-%m-%d'), received_date=datetime.strptime('1984-06-18', '%Y-%m-%d'), exp_document_status_code=expected_document_status1. exp_document_status_code, **DUMMY_USER_KWARGS) expected_document1.save() mine_tsf1 = MineTailingsStorageFacility( mine_tailings_storage_facility_guid= TEST_TAILINGS_STORAGE_FACILITY_GUID1, mine_guid=TEST_MINE_GUID, mine_tailings_storage_facility_name= TEST_TAILINGS_STORAGE_FACILITY_NAME1, **DUMMY_USER_KWARGS) mine_tsf1.save() mpat1 = MinePartyAppointmentType( mine_party_appt_type_code=TEST_MINE_PARTY_APPT_TYPE_CODE1, description=TEST_MINE_PARTY_APPT_TYPE_DESCRIPTION1, grouping_level=2, **DUMMY_USER_KWARGS) mpat1.save() mpat2 = MinePartyAppointmentType( mine_party_appt_type_code=TEST_MINE_PARTY_APPT_TYPE_CODE2, description=TEST_MINE_PARTY_APPT_TYPE_DESCRIPTION2, grouping_level=2, **DUMMY_USER_KWARGS) mpat2.save() mpat3 = MinePartyAppointmentType(mine_party_appt_type_code='EOR', description='Engineer of Record', grouping_level=1, **DUMMY_USER_KWARGS) mpat3.save() mpat4 = MinePartyAppointmentType(mine_party_appt_type_code='PMT', description='Engineer of Record', grouping_level=1, **DUMMY_USER_KWARGS) mpat4.save() mpat5 = MinePartyAppointmentType(mine_party_appt_type_code='MMG', description='Mine Manager', grouping_level=1, **DUMMY_USER_KWARGS) mpat5.save() mine_doc1 = MineDocument( mine_guid=uuid.UUID(TEST_MINE_GUID), document_name=TEST_MINE_DOCUMENT_NAME1, document_manager_guid=TEST_DOCUMENT_MANAGER_FILE_GUID, **DUMMY_USER_KWARGS) mine_doc1.mine_expected_document.append(expected_document1) mine_doc1.save() application_status_code_1 = ApplicationStatusCode( application_status_code='RIP', description='In Review', display_order=10, **DUMMY_USER_KWARGS) application_status_code_1.save() application_status_code_2 = ApplicationStatusCode( application_status_code='APR', description='Approved', display_order=20, **DUMMY_USER_KWARGS) application_status_code_2.save()
def post(self, mine_party_appt_guid=None): if mine_party_appt_guid: raise BadRequest('unexpected mine party appointment guid') data = self.parser.parse_args() end_current = data.get('end_current') mine_party_appt_type_code = data.get('mine_party_appt_type_code') related_guid = data.get('related_guid') mine_guid = data.get('mine_guid') start_date = data.get('start_date') if end_current: if mine_party_appt_type_code == "EOR": current_mpa = MinePartyAppointment.find_current_appointments( mine_guid=mine_guid, mine_party_appt_type_code=mine_party_appt_type_code, mine_tailings_storage_facility_guid=related_guid) elif mine_party_appt_type_code == "PMT": current_mpa = MinePartyAppointment.find_current_appointments( mine_guid=mine_guid, mine_party_appt_type_code=mine_party_appt_type_code, permit_guid=related_guid) else: current_mpa = MinePartyAppointment.find_current_appointments( mine_guid=mine_guid, mine_party_appt_type_code=mine_party_appt_type_code) if len(current_mpa) > 1: raise BadRequest( 'There is currently more than one active appointment.') current_mpa[0].end_date = start_date - timedelta(days=1) current_mpa[0].save() new_mpa = MinePartyAppointment( mine_guid=mine_guid, party_guid=data.get('party_guid'), mine_party_appt_type_code=mine_party_appt_type_code, start_date=start_date, end_date=data.get('end_date'), processed_by=self.get_user_info()) if new_mpa.mine_party_appt_type_code == "EOR": new_mpa.assign_related_guid(related_guid) if not new_mpa.mine_tailings_storage_facility_guid: raise AssertionError( 'mine_tailings_storage_facility_guid must be provided for Engineer of Record' ) #TODO move db foreign key constraint when services get separated pass if new_mpa.mine_party_appt_type_code == "PMT": new_mpa.assign_related_guid(related_guid) if not new_mpa.permit_guid: raise AssertionError( 'permit_guid must be provided for Permittee') #TODO move db foreign key constraint when services get separated pass try: new_mpa.save() except alch_exceptions.IntegrityError as e: if "daterange_excl" in str(e): mpa_type_name = MinePartyAppointmentType.find_by_mine_party_appt_type_code( data.get('mine_party_appt_type_code')).description raise BadRequest( f'Date ranges for {mpa_type_name} must not overlap') return new_mpa.json()
def setup_data(session): # Clear data clear_data(session) # Insert Region Code for region_code_value, display_order_value in zip( TEST_REGION_CODES, TEST_REGION_CODE_DISPLAY_ORDER): region_code = MineRegionCode(mine_region_code=region_code_value, description=TEST_REGION_DESCRIPTION, display_order=display_order_value, **DUMMY_USER_KWARGS) region_code.save() # Insert Mine Tenure Types for code, description in zip(TEST_MINE_TENURE_TYPE_CODES, TEST_MINE_TENURE_TYPE_DESCRIPTIONS): mine_tenure_type_code = MineTenureTypeCode(mine_tenure_type_code=code, description=description, **DUMMY_USER_KWARGS) mine_tenure_type_code.save() # Insert Mine Disturbance Codes for code, description in zip(TEST_MINE_DISTURBANCE_CODES, TEST_MINE_DISTURBANCE_DESCRIPTIONS): mine_disturbance_code = MineDisturbanceCode(mine_disturbance_code=code, description=description, **DUMMY_USER_KWARGS) mine_disturbance_code.save() # Insert Mine Commodity Codes for code, description in zip(TEST_MINE_COMMODITY_CODES, TEST_MINE_COMMODITY_DESCRIPTIONS): mine_commodity_code = MineCommodityCode(mine_commodity_code=code, description=description, **DUMMY_USER_KWARGS) mine_commodity_code.save() # Test Mine Data mine_identity = MineIdentity(mine_guid=uuid.UUID(TEST_MINE_GUID), **DUMMY_USER_KWARGS) mine_detail = MineDetail(mine_detail_guid=uuid.UUID(TEST_MINE_DETAIL_GUID), mine_guid=uuid.UUID(TEST_MINE_GUID), mine_no=TEST_MINE_NO, mine_name=TEST_MINE_NAME, mine_region=TEST_REGION_CODE, **DUMMY_USER_KWARGS) mine_identity.save() mine_detail.save() # Test Mine Type mine_type = MineType(mine_type_guid=uuid.UUID(TEST_MINE_TYPE_GUID), mine_guid=uuid.UUID(TEST_MINE_GUID), mine_tenure_type_code=TEST_MINE_TENURE_TYPE_CODES[0], active_ind=True, **DUMMY_USER_KWARGS) mine_type.save() # Test Mine Type Detail mine_type_detail = MineTypeDetail( mine_type_detail_xref_guid=uuid.UUID(TEST_MINE_TYPE_DETAIL_GUID), mine_type_guid=uuid.UUID(TEST_MINE_TYPE_GUID), mine_disturbance_code=TEST_MINE_DISTURBANCE_CODES[0], active_ind=True, **DUMMY_USER_KWARGS) mine_type_detail.save() # Test Tenure Data tenure = MineralTenureXref( mineral_tenure_xref_guid=uuid.UUID(TEST_TENURE_GUID), mine_guid=uuid.UUID(TEST_MINE_GUID), tenure_number_id=TEST_TENURE_ID, **DUMMY_USER_KWARGS) tenure.save() # Test Location Data mine_location = MineLocation( mine_location_guid=uuid.UUID(TEST_LOCATION_GUID), mine_guid=uuid.UUID(TEST_MINE_GUID), latitude=TEST_LAT_1, longitude=TEST_LONG_1, effective_date=datetime.today(), expiry_date=datetime.today(), **DUMMY_USER_KWARGS) mine_location.save() # Test Person Type Codes for k, v in PARTY_STATUS_CODE.items(): party_code = PartyTypeCode(party_type_code=v, description=v, **DUMMY_USER_KWARGS) party_code.save() session.commit() # Test Operation Codes for k, v in MINE_OPERATION_STATUS.items(): mine_operation_status_code = MineOperationStatusCode( mine_operation_status_code=v['value'], description=v['label'], **DUMMY_USER_KWARGS) mine_operation_status_code.save() for k, v in MINE_OPERATION_STATUS_REASON.items(): mine_operation_status_reason_code = MineOperationStatusReasonCode( mine_operation_status_reason_code=v['value'], description=v['label'], **DUMMY_USER_KWARGS) mine_operation_status_reason_code.save() for k, v in MINE_OPERATION_STATUS_SUB_REASON.items(): mine_operation_status_sub_reason_code = MineOperationStatusSubReasonCode( mine_operation_status_sub_reason_code=v['value'], description=v['label'], **DUMMY_USER_KWARGS) mine_operation_status_sub_reason_code.save() session.commit() # Test Person Data person = Party(party_guid=uuid.UUID(TEST_PARTY_PER_GUID_1), first_name=TEST_PARTY_PER_FIRST_NAME_1, party_name=TEST_PARTY_PER_PARTY_NAME_1, email=TEST_PARTY_PER_EMAIL_1, phone_no=TEST_PARTY_PER_PHONE_1, phone_ext=TEST_PARTY_PER_PHONE_EXT_1, party_type_code=TEST_PARTY_TYPE, **DUMMY_USER_KWARGS) person.save(commit=False) person2 = Party(party_guid=uuid.UUID(TEST_PARTY_PER_GUID_2), first_name=TEST_PARTY_PER_FIRST_NAME_2, party_name=TEST_PARTY_PER_PARTY_NAME_2, email=TEST_PARTY_PER_EMAIL_2, phone_no=TEST_PARTY_PER_PHONE_2, phone_ext=TEST_PARTY_PER_PHONE_EXT_2, party_type_code=TEST_PARTY_TYPE, **DUMMY_USER_KWARGS) person2.save(commit=False) person3 = Party(party_guid=uuid.UUID(TEST_PARTY_PER_GUID_3), first_name=TEST_PARTY_PER_FIRST_NAME_3, party_name=TEST_PARTY_PER_PARTY_NAME_3, email=TEST_PARTY_PER_EMAIL_3, phone_no=TEST_PARTY_PER_PHONE_3, phone_ext=TEST_PARTY_PER_PHONE_EXT_3, party_type_code=TEST_PARTY_TYPE, **DUMMY_USER_KWARGS) person3.save(commit=False) party_org = Party(party_guid=uuid.UUID(TEST_PARTY_ORG_GUID), party_name=TEST_PARTY_ORG_NAME, email=TEST_PARTY_ORG_EMAIL, phone_no=TEST_PARTY_ORG_PHONE, phone_ext=TEST_PARTY_ORG_EXT, party_type_code=TEST_ORG_TYPE, **DUMMY_USER_KWARGS) party_org.save() # Test Manager Data manager = MgrAppointment(mgr_appointment_guid=uuid.UUID(TEST_MANAGER_GUID), party_guid=uuid.UUID(TEST_PARTY_PER_GUID_1), mine_guid=uuid.UUID(TEST_MINE_GUID), effective_date=datetime.today() - timedelta(days=10), **DUMMY_USER_KWARGS) manager.save() # Test Permit Status Codes for permit_code_value in TEST_PERMIT_STATUS_CODES: permit_code = PermitStatusCode( permit_status_code=permit_code_value, description=TEST_PERMIT_STATUS_CODE_NAME_1, **DUMMY_USER_KWARGS) permit_code.save() # Test Permit Data permit = Permit(permit_guid=TEST_PERMIT_GUID_1, mine_guid=TEST_MINE_GUID, permit_no=TEST_PERMIT_NO_1, permit_status_code=TEST_PERMIT_STATUS_CODE_1, received_date=datetime.today(), issue_date=datetime.today(), **DUMMY_USER_KWARGS) permit.save() # Test Permittee Data permittee = Permittee(permittee_guid=uuid.UUID(TEST_PERMITTEE_GUID), permit_guid=uuid.UUID(TEST_PERMIT_GUID_1), party_guid=uuid.UUID(TEST_PARTY_PER_GUID_1), **DUMMY_USER_KWARGS) permittee.save() required_document_due_date_type1 = RequiredDocumentDueDateType( req_document_due_date_type=TEST_REQUIRED_REPORT_DUE_DATE_TYPE[0], req_document_due_date_description= TEST_REQUIRED_REPORT_DUE_DATE_DESCRIPTION[0], **DUMMY_USER_KWARGS) required_document_due_date_type1.save() required_document_due_date_type2 = RequiredDocumentDueDateType( req_document_due_date_type=TEST_REQUIRED_REPORT_DUE_DATE_TYPE[1], req_document_due_date_description= TEST_REQUIRED_REPORT_DUE_DATE_DESCRIPTION[1], **DUMMY_USER_KWARGS) required_document_due_date_type2.save() required_document_category1 = RequiredDocumentCategory( req_document_category_guid=TEST_REQUIRED_REPORT_CATEGORY_TAILINGS_GUID, req_document_category=TEST_REQUIRED_REPORT_CATEGORY_TAILINGS) required_document_category1.save() required_document_category2 = RequiredDocumentCategory( req_document_category_guid=TEST_REQUIRED_REPORT_CATEGORY_OTHER_GUID, req_document_category=TEST_REQUIRED_REPORT_CATEGORY_OTHER) required_document_category2.save() required_document1 = RequiredDocument( req_document_guid=uuid.UUID(TEST_REQUIRED_REPORT_GUID1), req_document_name=TEST_REQUIRED_REPORT_NAME1, req_document_category_guid=TEST_REQUIRED_REPORT_CATEGORY_TAILINGS_GUID, req_document_due_date_type=TEST_REQUIRED_REPORT_DUE_DATE_TYPE[0], req_document_due_date_period_months=12, **DUMMY_USER_KWARGS) required_document1.save() required_document2 = RequiredDocument( req_document_guid=uuid.UUID(TEST_REQUIRED_REPORT_GUID2), req_document_name=TEST_REQUIRED_REPORT_NAME2, req_document_category_guid=TEST_REQUIRED_REPORT_CATEGORY_TAILINGS_GUID, req_document_due_date_type=TEST_REQUIRED_REPORT_DUE_DATE_TYPE[0], req_document_due_date_period_months=12, **DUMMY_USER_KWARGS) required_document2.save() required_document3 = RequiredDocument( req_document_guid=uuid.UUID(TEST_REQUIRED_REPORT_GUID3), req_document_name=TEST_REQUIRED_REPORT_NAME3, req_document_category_guid=TEST_REQUIRED_REPORT_CATEGORY_OTHER_GUID, req_document_due_date_type=TEST_REQUIRED_REPORT_DUE_DATE_TYPE[1], req_document_due_date_period_months=12, **DUMMY_USER_KWARGS) required_document3.save() expected_document1 = MineExpectedDocument( exp_document_guid=uuid.UUID(TEST_EXPECTED_DOCUMENT_GUID1), req_document_guid=uuid.UUID(TEST_REQUIRED_REPORT_GUID1), mine_guid=TEST_MINE_GUID, exp_document_name=TEST_EXPECTED_DOCUMENT_NAME1, due_date=datetime.strptime('1984-06-18', '%Y-%m-%d'), received_date=datetime.strptime('1984-06-18', '%Y-%m-%d'), **DUMMY_USER_KWARGS) expected_document1.save() mine_tsf1 = MineTailingsStorageFacility( mine_tailings_storage_facility_guid= TEST_TAILINGS_STORAGE_FACILITY_GUID1, mine_guid=TEST_MINE_GUID, mine_tailings_storage_facility_name= TEST_TAILINGS_STORAGE_FACILITY_NAME1, **DUMMY_USER_KWARGS) mine_tsf1.save() mpat1 = MinePartyAppointmentType( mine_party_appt_type_code=TEST_MINE_PARTY_APPT_TYPE_CODE1, description=TEST_MINE_PARTY_APPT_TYPE_DESCRIPTION1, **DUMMY_USER_KWARGS) mpat1.save() mpat2 = MinePartyAppointmentType( mine_party_appt_type_code=TEST_MINE_PARTY_APPT_TYPE_CODE2, description=TEST_MINE_PARTY_APPT_TYPE_DESCRIPTION2, **DUMMY_USER_KWARGS) mpat2.save() mpat3 = MinePartyAppointmentType(mine_party_appt_type_code='EOR', description='Engineer of Record', **DUMMY_USER_KWARGS) mpat3.save() mpa = MinePartyAppointment( mine_party_appt_guid=TEST_MINE_PARTY_APPT_GUID, mine_guid=uuid.UUID(TEST_MINE_GUID), party_guid=uuid.UUID(TEST_PARTY_PER_GUID_1), mine_party_appt_type_code=TEST_MINE_PARTY_APPT_TYPE_CODE1, **DUMMY_USER_KWARGS) mpa.save() mine_doc1 = MineDocument( mine_guid=uuid.UUID(TEST_MINE_GUID), document_name=TEST_MINE_DOCUMENT_NAME1, document_manager_guid=TEST_DOCUMENT_MANAGER_FILE_GUID, **DUMMY_USER_KWARGS) mine_doc1.mine_expected_document.append(expected_document1) mine_doc1.save()