Skip to content

Commit

Permalink
Added date formatting as config option
Browse files Browse the repository at this point in the history
  • Loading branch information
eyesoft committed Sep 14, 2022
1 parent 0de8557 commit 26230f4
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 24 deletions.
16 changes: 7 additions & 9 deletions custom_components/min_renovasjon/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,7 @@ async def async_setup(hass: HomeAssistant, config: dict):
street_code = config[DOMAIN][CONF_STREET_CODE]
house_no = config[DOMAIN][CONF_HOUSE_NO]
county_id = config[DOMAIN][CONF_COUNTY_ID]
#date_format = config[DOMAIN][CONF_DATE_FORMAT]
date_format = None
date_format = config[DOMAIN][CONF_DATE_FORMAT]
min_renovasjon = MinRenovasjon(hass, street_name, street_code, house_no, county_id, date_format)

hass.data[DOMAIN]["data"] = min_renovasjon
Expand All @@ -65,8 +64,8 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> b
street_code = config_entry.data.get(CONF_STREET_CODE, "")
house_no = config_entry.data.get(CONF_HOUSE_NO, "")
county_id = config_entry.data.get(CONF_COUNTY_ID, "")
#date_format = config_entry.data.get(CONF_DATE_FORMAT, "")
date_format = None
date_format = config_entry.options.get(CONF_DATE_FORMAT, DEFAULT_DATE_FORMAT)

min_renovasjon = MinRenovasjon(hass, street_name, street_code, house_no, county_id, date_format)

hass.data[DOMAIN]["data"] = min_renovasjon
Expand All @@ -84,7 +83,7 @@ def __init__(self, hass, gatenavn, gatekode, husnr, kommunenr, date_format):
self.gatekode = gatekode
self.husnr = husnr
self._kommunenr = kommunenr
#self._date_format = date_format
self._date_format = date_format

@staticmethod
def _url_encode(string):
Expand Down Expand Up @@ -228,7 +227,6 @@ def calender_list(self):
return self._hass.data[DOMAIN]["calendar_list"]

def format_date(self, date):
return date
#if self._date_format == "None":
# return date
#return date.strftime(self._date_format)
if self._date_format == "None":
return date
return date.strftime(self._date_format)
8 changes: 6 additions & 2 deletions custom_components/min_renovasjon/config_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,11 +187,15 @@ async def async_step_init(self, user_input=None):
"""Manage the options."""

if user_input is not None:
if "date_format" not in user_input:
user_input["date_format"] = "None"

self.options.update(user_input)
return self.async_create_entry(title=DOMAIN, data=self.options)

options = self.config_entry.options
fraction_ids = options.get(CONF_FRACTION_IDS, [])
date_format = options.get(CONF_DATE_FORMAT, DEFAULT_DATE_FORMAT)

municipality_code = self.config_entry.data.get(CONF_COUNTY_ID, "")
fraction_list = await self._get_fractions(municipality_code)
Expand All @@ -204,7 +208,8 @@ async def async_step_init(self, user_input=None):
step_id="init",
data_schema=vol.Schema(
{
vol.Required(CONF_FRACTION_IDS, default=fraction_ids): cv.multi_select(fractions)
vol.Required(CONF_FRACTION_IDS, default=fraction_ids): cv.multi_select(fractions),
vol.Optional(CONF_DATE_FORMAT, description={"suggested_value": date_format}): cv.string
}
)
)
Expand All @@ -220,4 +225,3 @@ async def _get_fractions(self, municipality_code) -> Dict:
return json.loads(response.decode("UTF-8"))

return None

1 change: 0 additions & 1 deletion custom_components/min_renovasjon/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,3 @@
ADDRESS_LOOKUP_URL = "https://ws.geonorge.no/adresser/v1/sok?"
APP_CUSTOMERS_URL = "https://www.webatlas.no/wacloud/servicerepository/CatalogueService.svc/json/GetRegisteredAppCustomers"
KOMTEK_API_BASE_URL = "https://norkartrenovasjon.azurewebsites.net/proxyserver.ashx"

12 changes: 6 additions & 6 deletions custom_components/min_renovasjon/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ def get_name(self):
@property
def state(self):
"""Return the state/date of the fraction."""
return self._state
return self._min_renovasjon.format_date(self._state)

async def async_update(self):
"""Update calendar."""
Expand All @@ -103,15 +103,15 @@ async def async_update(self):
pickupDate = fraction[3].date()
today = date.today()
diff = pickupDate - today
self._state = fraction[3]

self._attributes['days_to_pickup'] = diff.days
self._attributes['formatted_date'] = self._min_renovasjon.format_date(fraction[3])
self._attributes['formatted_date'] = self._min_renovasjon.format_date(self._state)
self._attributes['raw_date'] = self._state
self._attributes['date_next_pickup'] = fraction[4]
self._attributes['fraction_id'] = self._fraction_id
self._attributes['fraction_name'] = fraction[1]
self._attributes['fraction_icon'] = fraction[2]

self._state = fraction[3]


async def async_added_to_hass(self):
await self.async_update()

5 changes: 3 additions & 2 deletions custom_components/min_renovasjon/strings.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,10 @@
"title": "Min Renovasjon fractions",
"description": "Select fractions from which sensors are to be made.",
"data": {
"fraction_ids": "Fractions"
"fraction_ids": "Fractions",
"date_format": "Date formatting"
}
}
}
}
}
}
5 changes: 3 additions & 2 deletions custom_components/min_renovasjon/translations/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,10 @@
"title": "Min Renovasjon fractions",
"description": "Select fractions from which sensors are to be made.",
"data": {
"fraction_ids": "Fractions"
"fraction_ids": "Fractions",
"date_format": "Date formatting"
}
}
}
}
}
}
5 changes: 3 additions & 2 deletions custom_components/min_renovasjon/translations/no.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,10 @@
"title": "Min Renovasjon avfallstyper",
"description": "Velg de avfallstypene det skal lages sensor av.",
"data": {
"fraction_ids": "Avfallstyper"
"fraction_ids": "Avfallstyper",
"date_format": "Datoformatering"
}
}
}
}
}
}

0 comments on commit 26230f4

Please sign in to comment.