! Version 2 - ironwoodcall/TagTracker GitHub Wiki

Version 2 is intended to make tagtracker more usable by bike parking services that are not set up the same way as Victoria's.

  • allow much more flexible tag labels (issue #427)
  • allow re-use of tags (ie track visits, not tags) (issue #394)
  • reduce device dependency (could it work in a py environment on an ipad?)
  • improve ease of installation and configuration
  • Consider whether a VTime might be a datetime, not just a time.

Reporting structures

I seem to have a lot of reporting classes floating around.


TrackerDay BikeTag BikeVisit


NOT: DayDetail - I think I managed to get rid of this one

MultiDayTotals in tt_dbutil

In tt_daysummary:

  • Is DaySummary necessary? If only used in TT client reporting or db_from_datafile then maybe not. Once the data is in the database, so nlonger need the Moments in order to build the blocks. And who uses the Moments? Maybe a rewrite the commands function would.
  • DaySummary contains list of MomentDetail, list of PeriodDetail, one DayTotals
  • MomentDetail (list of) <-- used to build blocks, don't know if needed beyond that. remove from DaySummary?
  • PeriodDetail (list of) <-- this is basically a BLOCK row
  • DayTotals (one of) <-- this matches a DAY row

SingleBlock - in web_common

BlocksSummary - in web_common

SingleDay - in web_common

  • SingleBlock (list of)

OK FOR NOW: In web_ lock_report -- local and harmless enough for now.

  • _OneBlock - in web_block_report
  • _OneDay - in web_block_report

OK FOR NOW: Module web_daterange_summaries has these. They seem harmless enough, no change needed for now.

  • _DateRangeGroup - in web_period_summaries
  • _DateRangeRow - in web_period_summaries

Implementation notes

Freeform tags

  • what is a valid tag? Anything that's in config
  • fold all tags uc and compress out lead 0s in numeric sequences
  • optional re in config file to test for a valid tag format
.simple - label in its simplest form (uc & compressed)
.comparing - folded UC and all numeric sequences made long
__new__: return self if already defined(?)

Reserved words: Tags can not have these as label: