コード例 #1
0
ファイル: mobilisation.py プロジェクト: Frazerbesa/mspray
    def post(self, request):
        """Handle a Mobilisation submission."""
        try:
            create_mobilisation_visit(request.data)
        except IntegrityError:
            logger.error("Mobilisation submission already exists.")
            status_response = status.HTTP_202_ACCEPTED
        else:
            status_response = status.HTTP_201_CREATED

        return Response(status=status_response)
コード例 #2
0
ファイル: tasks.py プロジェクト: Frazerbesa/mspray
def fetch_mobilisation():
    """Fetch mobilisation submissions."""
    formid = getattr(settings, "MOBILISATION_FORM_ID", None)
    if formid:
        data_ids = get_missing_ids(formid, Mobilisation)
        for data_id in data_ids:
            data = fetch_form_data(formid, dataid=data_id)
            if data:
                try:
                    create_mobilisation_visit(data)
                except IntegrityError:
                    logger.exception("{} Record not found.".format(formid))
                    continue
コード例 #3
0
 def test_create_mobilisation_visit(self):
     """Test create_mobilisation_visit() function."""
     data_setup()
     mobilisation_visit = create_mobilisation_visit(MOBILISATION_VISIT_DATA)
     self.assertIsInstance(mobilisation_visit, Mobilisation)
     self.assertTrue(mobilisation_visit.is_mobilised)
     self.assertTrue(mobilisation_visit.spray_area.is_mobilised)
コード例 #4
0
    def test_link_mobilisation_visit_via_spatial_query(self):
        """Test create_mobilisation_visit() function."""
        data_setup()
        gps_data = MOBILISATION_VISIT_DATA.copy()
        self.assertEqual(gps_data['spray_area'], '01_1')

        gps_data["osmstructure:way:id"] = 525683350
        gps_data['osmstructure:ctr:lat'] = -15.418780034209806
        gps_data['osmstructure:ctr:lon'] = 28.35196267147328

        mobilisation = create_mobilisation_visit(gps_data)
        self.assertIsNotNone(mobilisation.spray_area)
        self.assertIsInstance(mobilisation, Mobilisation)
        self.assertEqual(mobilisation.spray_area.name, 'Akros_1')
コード例 #5
0
    def test_link_mobilisation_via_spray_area(self):
        """Test create_mobilisation_visit() function."""
        data_setup()
        gps_data = MOBILISATION_VISIT_DATA.copy()
        self.assertEqual(gps_data['spray_area'], '01_1')

        gps_data["osmstructure:way:id"] = 528516754
        gps_data['osmstructure:ctr:lat'] = None
        gps_data['osmstructure:ctr:lon'] = None
        gps_data['spray_area'] = 'Akros_1'

        mobilisation = create_mobilisation_visit(gps_data)
        self.assertEqual(mobilisation.spray_area.name, 'Akros_1')
        self.assertIsNotNone(mobilisation.spray_area)
        self.assertIsInstance(mobilisation, Mobilisation)