from ais.djais.models import *
from ais.show_targets_ships import format_fleet, kml_to_kmz
from ais.common import COUNTRIES_MID, Nmea, NmeaFeeder, strmmsi_to_mmsi, SHIP_TYPES, STATUS_CODES, AIS_STATUS_NOT_AVAILABLE, AIS_ROT_NOT_AVAILABLE, AIS_LATLON_SCALE, AIS_LON_NOT_AVAILABLE, AIS_LAT_NOT_AVAILABLE, AIS_COG_SCALE, AIS_COG_NOT_AVAILABLE, AIS_NO_HEADING, AIS_SOG_SCALE, AIS_SOG_NOT_AVAILABLE, AIS_SOG_MAX_SPEED, add_nmea1, add_nmea5_partial, load_fleet_to_uset
-from ais.ntools import datetime_to_timestamp, clean_ais_charset
+from ais.ntools import datetime_to_timestamp, clean_ais_charset, clean_latitude, clean_longitude
from ais.inputs.common import is_id4_active
from ais.inputs.stats import STATS_DIR
from ais.inputs.config import peers_get_config
filter_sog_le = forms.FloatField(required=False, label=u'Only if speed ≤ (knots)')
filter_sog_ge = forms.FloatField(required=False, label=u'Only if speed ≥ (knots)')
filter_destination = forms.CharField(required=False, label=u'Only if destination starts with', max_length=20, help_text=u'Use AIS upper case letters')
+ reference_latitude = forms.CharField(required=False)
+ reference_longitude = forms.CharField(required=False)
def clean_start_date(self):
period_type = self.cleaned_data.get('period_type', None)
raise forms.ValidationError('That is field is required.')
return end_date
+ def clean_reference_latitude(self):
+ lat = self.cleaned_data.get('reference_latitude', None)
+ if lat is None:
+ return None
+ try:
+ clean_lat = clean_latitude(lat)
+ except LatLonFormatError, err:
+ raise forms.ValidationError(*err.args)
+ return lat # return the text
+
+ def clean_reference_longitude(self):
+ lon = self.cleaned_data.get('reference_longitude', None)
+ if lon is None:
+ return None
+ try:
+ clean_lon = clean_longitude(lon)
+ except LatLonFormatError, err:
+ raise forms.ValidationError(*err.args)
+ return lon # return the text
+
def clean(self):
cleaned_data = self.cleaned_data
period_type = self.cleaned_data.get('period_type', None)
or data['longitude'] != AIS_LON_NOT_AVAILABLE \
or data['cog'] != AIS_COG_NOT_AVAILABLE \
or data['heading'] != AIS_NO_HEADING:
-
toto = (strmmsi, data['timestamp'], data['status'], AIS_ROT_NOT_AVAILABLE, data['sog'], data['latitude'], data['longitude'], data['cog'], data['heading'], source)
result += 'UPDATING NMEA 1: '+repr(toto)+'<br>'
add_nmea1(*toto)