def setData(self, data_name, data_val):
        """
        Set misc data to the DB - should do this for all properties instead of individual pyqtSlots...
        :return:
        """
        if self._current_trip is None:
            self._logger.warning('Attempt to set data with null current trip.')
            return

        data_name = data_name.lower()
        if data_name == 'partial_trip':
            self._current_trip.partial_trip = 'T' if data_val else 'F'
        elif data_name == 'fishing_days_count':
            self._current_trip.fishing_days_count = int(
                data_val) if data_val else None
        elif data_name == 'logbook_type':
            logbook_value = Lookups.get(
                (Lookups.lookup_type == 'VESSEL_LOGBOOK_NAME')
                & (Lookups.description == data_val)).lookup_value
            self._current_trip.logbook_type = logbook_value
            # data_val = logbook_value
        elif data_name == 'logbook_number':
            self._current_trip.logbook_number = data_val
        elif data_name == 'fish_processed':
            self._current_trip.fish_processed = data_val
        elif data_name == 'notes':
            self._current_trip.notes = data_val
        else:
            self._logger.warning(
                'Attempt to set unknown data name: {}'.format(data_name))
            return
        self._set_cur_prop(data_name, data_val)
        self._current_trip.save()

        logging.debug('Set {} to {}'.format(data_name, data_val))
 def getData(self, data_name):
     """
     Shortcut to get data from the DB that doesn't deserve its own property
     (Note, tried to use a dict to simplify this, but DB cursors were not updating)
     :return: Value found in DB
     """
     if self._current_trip is None:
         self._logger.warning('Attempt to get data with null current trip.')
         return None
     data_name = data_name.lower()
     if data_name == 'partial_trip':
         return True if self._current_trip.partial_trip == 'T' else False
     elif data_name == 'fishing_days_count':
         return self._current_trip.fishing_days_count
     elif data_name == 'logbook_type':
         try:
             logbook_value = self._current_trip.logbook_type
             logbook_desc = Lookups.get(
                 (Lookups.lookup_type == 'VESSEL_LOGBOOK_NAME')
                 & (Lookups.lookup_value == logbook_value)).description
             return logbook_desc
         except Lookups.DoesNotExist:
             return None
     elif data_name == 'logbook_number':
         return self._current_trip.logbook_number
     elif data_name == 'fish_processed':
         return self._current_trip.fish_processed
     elif data_name == 'notes':
         return self._current_trip.notes
     else:
         self._logger.warning(
             'Attempt to get unknown data name: {}'.format(data_name))
         return None
 def _get_fishery_ID(self, fishery_name):
     """
     Lookup up fishery ID by fishery_name
     """
     try:
         return Lookups.get((Lookups.lookup_type == 'FISHERY') & (
             Lookups.description == fishery_name)).lookup_value
     except Lookups.DoesNotExist as e:
         self._logger.error(str(e))
     return None
    def lookup_fisheries(fisheries_str):
        """
        Given fisheries, convert to list and return list of ID's from LOOKUPS
        @param fisheries_str: e.g. '15,16'
        @return: e.g. [608, 688]
        """
        found_ids = []
        try:
            fishery_ids = fisheries_str.strip().replace(' ', '').split(',')
            for fish in fishery_ids:
                fish_id = Lookups.get((Lookups.lookup_type == 'FISHERY') & (
                    Lookups.lookup_value == fish.strip())).lookup
                found_ids.append(fish_id)
            return found_ids

        except Lookups.DoesNotExist:
            # noinspection PyUnboundLocalVariable
            logging.error('*** Unable to look up fishery {} in group {} '
                          '(does not exist, check db.)'.format(
                              fish, fisheries_str))
    def lookup_geartypes(geartypes_str):
        """
        Given gear types, convert to list and return list of ID's from LOOKUPS
        @param geartypes_str: e.g. '15,16'
        @return: e.g. [608, 688]
        """
        found_ids = []
        try:
            gear_ids = geartypes_str.strip().replace(' ', '').split(',')
            for geartype in gear_ids:
                gear_id = Lookups.get(
                    ((Lookups.lookup_type == 'FG_GEAR_TYPE')
                     | (Lookups.lookup_type == 'TRAWL_GEAR_TYPE'))
                    & (Lookups.lookup_value == geartype.strip())).lookup
                found_ids.append(gear_id)
            return found_ids

        except Lookups.DoesNotExist:
            # noinspection PyUnboundLocalVariable
            logging.error('*** Unable to look up gear type {} in group {} '
                          '(does not exist, check db.)'.format(
                              geartype, geartypes_str))
    def lookup_protocols(protocols_str):
        """
        Given protocols, convert to list and return list of ID's
        @param protocols_str: e.g. 'FL,WS'
        @return: e.g. [8, 19]
        """
        found_ids = []
        try:
            prot_abbrevs = protocols_str.strip().replace(' ', '').split(',')
            for pa in prot_abbrevs:
                prot_id = Lookups.get((Lookups.lookup_type == 'PROTOCOL') & (
                    Lookups.lookup_value == pa.strip())).lookup
                found_ids.append(prot_id)
            return found_ids

        except Lookups.DoesNotExist:
            # noinspection PyUnboundLocalVariable
            logging.error('*** Unable to look up protocol {} in group {} '
                          '(does not exist, check spreadsheet.)'.format(
                              pa, protocols_str))
        except Exception as e:
            logging.error(f'{e}')
 def _get_fishery_by_ID(fishery_id):
     try:
         return Lookups.get((Lookups.lookup_type == 'FISHERY') & (
             Lookups.lookup_value == fishery_id)).description
     except Lookups.DoesNotExist as e:
         logging.error(e)