Esempio n. 1
0
 def delete_object(self, data):
     move_comment_deleted_geokret_id = self._data_layer.get_object(
         data).move.geokret.id
     super(MoveCommentDetail, self).delete_object(data)
     if not current_app.config['ASYNC_OBJECTS_ENHANCEMENT']:
         update_geokret_and_moves(db.session,
                                  move_comment_deleted_geokret_id)
Esempio n. 2
0
 def blend_move_comment(self, *args, **kwargs):
     with mixer.ctx():
         if kwargs.get('count'):
             move_comments = mixer.cycle(kwargs.get('count')).blend(MoveComment, **kwargs)
             for move_comment in move_comments:
                 update_geokret_and_moves(db.session, move_comment.move.geokret_id, move_comment.move.id)
             return move_comments
         move_comment = mixer.blend(MoveComment, **kwargs)
         update_geokret_and_moves(db.session, move_comment.move.geokret_id, move_comment.move.id)
         return move_comment
Esempio n. 3
0
 def blend_move(self, *args, **kwargs):
     with mixer.ctx():
         if 'geokret' not in kwargs:
             kwargs['geokret'] = mixer.blend(Geokret, created_on_datetime="2019-01-12T16:33:46")
         if kwargs.get('count'):
             last_date = kwargs['geokret'].created_on_datetime
             moves = []
             for _ in range(kwargs.get('count')):
                 last_date = last_date + timedelta(seconds=1)
                 move = mixer.blend(Move, moved_on_datetime=last_date, **kwargs)
                 update_geokret_and_moves(db.session, move.geokret_id, move.id)
                 moves.append(move)
             return moves
         move = mixer.blend(Move, **kwargs)
         update_geokret_and_moves(db.session, move.geokret_id, move.id)
         return move
    def test_update_geokret_missing_status(self):
        """Check Move Tasks: compute GeoKret missing status"""
        geokret = self.mixer.blend(Geokret,
                                   missing=False,
                                   created_on_datetime="2017-12-01T21:54:17")
        move1 = self.mixer.blend(Move,
                                 geokret=geokret,
                                 type=MOVE_TYPE_DROPPED,
                                 moved_on_datetime="2019-01-01T21:54:44")

        move2 = self.mixer.blend(Move,
                                 geokret=geokret,
                                 type=MOVE_TYPE_COMMENT,
                                 moved_on_datetime="2019-01-01T21:54:59")

        self.mixer.blend(MoveComment,
                         move=move1,
                         type=MOVE_COMMENT_TYPE_COMMENT)
        update_geokret_and_moves(self.session, geokret.id,
                                 [move1.id, move2.id])
        self.assertFalse(geokret.missing)

        self.mixer.blend(MoveComment,
                         move=move2,
                         type=MOVE_COMMENT_TYPE_COMMENT)
        update_geokret_and_moves(self.session, move2.geokret.id)
        self.assertFalse(geokret.missing)

        self.mixer.blend(MoveComment,
                         move=move1,
                         type=MOVE_COMMENT_TYPE_MISSING)
        update_geokret_and_moves(self.session, move1.geokret.id)
        self.assertTrue(geokret.missing)

        move3 = self.mixer.blend(Move,
                                 geokret=geokret,
                                 type=MOVE_TYPE_SEEN,
                                 moved_on_datetime="2019-01-01T22:29:07")
        update_geokret_and_moves(self.session, move3.geokret.id)
        self.assertFalse(geokret.missing)

        self.mixer.blend(MoveComment,
                         move=move3,
                         type=MOVE_COMMENT_TYPE_MISSING)
        update_geokret_and_moves(self.session, move3.geokret.id)
        self.assertTrue(geokret.missing)
Esempio n. 5
0
    def update_object(self, data, qs, kwargs):
        old_move = safe_query(self, Move, 'id', kwargs.get('id'), 'id')
        geokrety_to_update = []

        # Comming from Comment require tracking-code
        if old_move.type == MOVE_TYPE_COMMENT and not data.get(
                'tracking_code'):
            raise UnprocessableEntity(
                "Tracking code is missing",
                {'pointer': '/data/attributes/tracking-code'})
        # Now convert tracking-code to GeoKret ID
        if 'tracking_code' in data:
            geokrety_to_update.append(old_move.geokret.id)
            old_move.geokret = safe_query(self, Geokret, 'tracking_code',
                                          data.get('tracking_code'),
                                          'tracking-code')

        # Save update in database
        move = super(MoveDetail, self).update_object(data, qs, kwargs)
        if not current_app.config['ASYNC_OBJECTS_ENHANCEMENT']:
            geokrety_to_update.append(move.geokret.id)
            update_geokret_and_moves(db.session, geokrety_to_update, move.id)
        return move
Esempio n. 6
0
 def update_object(self, data, qs, kwargs):
     move_comment = super(MoveCommentDetail,
                          self).update_object(data, qs, kwargs)
     if not current_app.config['ASYNC_OBJECTS_ENHANCEMENT']:
         update_geokret_and_moves(db.session, move_comment.move.geokret.id)
     return move_comment
Esempio n. 7
0
 def create_object(self, data, kwargs):
     move = super(MovesList, self).create_object(data, kwargs)
     if not current_app.config['ASYNC_OBJECTS_ENHANCEMENT']:
         update_geokret_and_moves(db.session, move.geokret_id, move.id)
     return move