Skip to content

Releases: albertms10/cabin_booking

Version 0.8

15 Jan 23:36
517b1b2
Compare
Choose a tag to compare

What's Changed

  • chore(deps): bump ossf/scorecard-action from 2.0.6 to 2.1.0 by @dependabot in #145
  • chore(deps): bump actions/setup-java from 3.8.0 to 3.9.0 by @dependabot in #146
  • chore(deps): bump github/codeql-action from 2.1.36 to 2.1.37 by @dependabot in #147
  • chore(deps): bump ossf/scorecard-action from 2.1.0 to 2.1.1 by @dependabot in #149
  • chore(deps): bump ossf/scorecard-action from 2.1.1 to 2.1.2 by @dependabot in #150
  • chore(deps): bump actions/cache from 3.0.11 to 3.2.1 by @dependabot in #152
  • refactor(holiday)!: extend DateRange instead of DateRangeItem by @albertms10 in #153
  • refactor(model): rename fromJson constructors by @albertms10 in #154
  • test(model): add tests for SchoolYear and DateRange JSON methods by @albertms10 in #155
  • test(date_range): add test for toString method by @albertms10 in #156
  • refactor(date_range): rename fromDate factory constructor by @albertms10 in #157
  • build(pubspec): bump versions as of dart_code_metrics 5.3.0 by @albertms10 in #158
  • test(iterable_extension): use const by @albertms10 in #159
  • refactor(current_time_indicator): rename hideLabel by @albertms10 in #160
  • fix(date_time_extension): rewrite addLocalTimeOfDay UTC operation by @albertms10 in #161
  • fix(recurring_booking): use correct copyWith default values by @albertms10 in #162
  • refactor(single_booking): replace recurringBookingId with referenced object by @albertms10 in #163
  • chore(deps): bump actions/cache from 3.2.1 to 3.2.2 by @dependabot in #165
  • fix(single_booking): use correct copyWith default values by @albertms10 in #166
  • fix(booking_preview_panel_action_bar): pass a copy of the booking object to BookingDialog by @albertms10 in #167
  • refactor(single_booking): replace cabinId with referenced instance by @albertms10 in #164
  • feat(date_ranger): implement new textualDateTime methods by @albertms10 in #168
  • refactor!: rename ManagerCollection by @albertms10 in #169
  • fix(booking): call textualDateTime method on toString by @albertms10 in #170
  • test(date_range): test case local DateTime range by @albertms10 in #171
  • chore(deps): bump actions/cache from 3.2.2 to 3.2.3 by @dependabot in #173
  • chore(deps): bump actions/upload-artifact from 3.1.1 to 3.1.2 by @dependabot in #172
  • test(model): add test cases for Item.copyWith methods by @albertms10 in #174
  • refactor(cabin): remove redirection methods to BookingCollection by @albertms10 in #175
  • test(date_range_item): add test cases for main class methods by @albertms10 in #176
  • chore(deps): bump github/codeql-action from 2.1.37 to 2.1.38 by @dependabot in #177
  • refactor(cabin): expose BookingCollection from constructor by @albertms10 in #178
  • fix(date_ranger): exclude endDate instant in includes by @albertms10 in #180
  • refactor(school_year): use textualDateTime for toString by @albertms10 in #181
  • refactor(model): move constructor bodies to initializer list by @albertms10 in #182
  • refactor(booking_collection): use singleBookingFromId by @albertms10 in #183
  • perf(booking_form): set Cabin reference on CabinDropdown changed by @albertms10 in #184
  • refactor(booking_collection): rewrite serializable methods by @albertms10 in #185

Full Changelog: v0.7...v0.8

Version 0.7

12 Dec 22:31
Compare
Choose a tag to compare

What's Changed

  • build(macos): bump deployment target to 10.13 by @albertms10 in #79
  • feat(utils): add roundToNearest methods for num and TimeOfDay by @albertms10 in #80
  • refactor(time_of_day_extension): use increment method by @albertms10 in #81
  • refactor(model): rewrite enum members by @albertms10 in #82
  • refactor(cabin_icon): rewrite Widget adding a .progress constructor by @albertms10 in #84
  • feat: remove booking status by @albertms10 in #83
  • refactor(constants): add defaultSlotDuration by @albertms10 in #86
  • perf: prefer Iterable.of by @albertms10 in #85
  • fix(date_range_item): correctly initialize members by @albertms10 in #88
  • refactor(booking): store start and end DateTimes instead of TimeOfDays by @albertms10 in #87
  • feat(model): consistently store UTC DateTimes by @albertms10 in #90
  • fix(booking): return dateOnly on date getter by @albertms10 in #91
  • feat(date_time_extension): add relative date getters by @albertms10 in #92
  • refactor(utils): throw ArgumentError instead of assert by @albertms10 in #94
  • fix(map_extension): prevent from mutating this Map in fillEmptyKeyValues by @albertms10 in #95
  • docs(utils): document methods by @albertms10 in #93
  • test(utils): add tests for Color and Map extensions by @albertms10 in #96
  • refactor(icon_menu_item_content): remove unused Widget by @albertms10 in #97
  • refactor(color_extension): throw RangeError when samples is not greater than zero by @albertms10 in #98
  • chore(vscode): add recommended extensions by @albertms10 in #101
  • chore(vscode): add workspace settings by @albertms10 in #100
  • refactor: use directionality utilities by @albertms10 in #99
  • build(windows): migrate to set version information by @albertms10 in #103
  • docs(recurring_booking): fix assert message by @albertms10 in #104
  • chore(l10n): generate untranslated messages file by @albertms10 in #106
  • refactor(model): rethink SingleBooking hierarchy by @albertms10 in #105
  • refactor: remove unnecessary default values by @albertms10 in #108
  • feat(jump_bar): initial implementation by @albertms10 in #69
  • feat(string_extension): add matchesWith method by @albertms10 in #109
  • feat(model): add searchBookings method by @albertms10 in #110
  • refactor(home_page): unify page destination list by @albertms10 in #112
  • fix(cabin_icon): use headline5 text color by @albertms10 in #113
  • refactor(floating_action_button_menu): move methods to Widgets by @albertms10 in #114
  • feat(jump_bar): show booking search results by @albertms10 in #111
  • refactor: sort named arguments to match parameters declaration by @albertms10 in #115
  • feat(jump_bar): improve animation and fields alignment by @albertms10 in #116
  • refactor(booking_form): cast local variable instead of member by @albertms10 in #117
  • refactor(home_page): expose HomePageState via .of method by @albertms10 in #118
  • refactor(home_page): move ActionableFocusedShortcuts down the Widget tree by @albertms10 in #119
  • feat(jump_bar): navigate to booking page on tap a result by @albertms10 in #120
  • fix(map_extension): revert Map copy in fillEmptyKeyValues by @albertms10 in #121
  • perf(date_time_extension): simplify addTimeOfDay method by @albertms10 in #122
  • refactor(date_time_extension): add dayOfWeek method by @albertms10 in #123
  • perf(cabins_table): simplify occupiedDurationPerWeek date range by @albertms10 in #124
  • refactor(date_range): extract, document and test mixin and class by @albertms10 in #125
  • fix(recurring_booking): use startDateTime instead of date only by @albertms10 in #126
  • test(date_range): add test cases and document missing members by @albertms10 in #127
  • test: show parentheses in group names by @albertms10 in #128
  • test(cabin): add tests for Cabin classes by @albertms10 in #129
  • refactor: rename startDateTimestartDate and datedateOnly by @albertms10 in #131
  • docs(model): initial model documentation by @albertms10 in #130
  • refactor(date_ranger): move methods from Booking by @albertms10 in #132
  • refactor(booking): extend DateRangeItem by @albertms10 in #133
  • refactor(model): improve == and hashCode methods by @albertms10 in #134
  • fix(date_time_extension): keep UTC information by @albertms10 in #135
  • ci(analysis): continue on error Upload Coveralls by @albertms10 in #136
  • test(model): add tests for booking and holiday classes by @albertms10 in #137
  • refactor(map_int_color_extension): move to root utils dir and add tests by @albertms10 in #138
  • refactor(heat_map_day): lift up padding and color thresholds logic by @albertms10 in #139
  • ci(scorecards): add analysis workflow by @albertms10 in #140
  • feat(day_navigation): allow changing to days out of school year by @albertms10 in #141
  • ci(scorecards): upload SARIF file artifact by @albertms10 in #142
  • chore(deps): bump github/codeql-action from 2.1.27 to 2.1.36 by @dependabot in #143
  • ci: pin actions versions and restrict permissions by @albertms10 in #144

Full Changelog: v0.6...v0.7

Version 0.6

13 Nov 00:22
32c9864
Compare
Choose a tag to compare

What's Changed

  • perf: prefer product over division by 2 by @albertms10 in #44
  • fix(floating_action_button): show proper tappable children by @albertms10 in #43
  • refactor(material): use proper MaterialType.transparency by @albertms10 in #45
  • fix(recurring_booking): start count at 1 by @albertms10 in #46
  • chore(lints): enable stricter lints by @albertms10 in #47
  • refactor(map_int_color_extension): extract colorFromThreshold method by @albertms10 in #48
  • refactor(heat_map_day): use proper ConditionalParentWidget by @albertms10 in #49
  • feat(booking_preview_panel): implement new preview overlay by @albertms10 in #42
  • feat(popular_times_bar_chart): improve layout and highlight current time by @albertms10 in #50
  • perf(home_page): prevent calling setState on the same navigation index by @albertms10 in #51
  • refactor(summary_page): extract Statistics Widgets by @albertms10 in #52
  • refactor(item): save UTC DateTime fields by @albertms10 in #53
  • fix(summary_page): remove unneeded Consumer Widget by @albertms10 in #54
  • perf(map_int_color_extension): return the color if threshold key exists by @albertms10 in #55
  • chore(deps): bump versions as of Flutter 2.10.3 by @albertms10 in #58
  • refactor(date_range): split from Item hierarchy by @albertms10 in #56
  • refactor(time_of_day): extract increment method by @albertms10 in #59
  • chore(pubspec): replace unauthenticated git:// protocol by @albertms10 in #61
  • fix(time_of_day_extension): return proper Duration on difference by @albertms10 in #60
  • ci(flutter): ignore irrelevant paths on push and pull_request by @albertms10 in #62
  • refactor(items_table): fix indices typo by @albertms10 in #64
  • ci(flutter): extract Flutter SDK version variable and improve workflow syntax by @albertms10 in #63
  • feat(utils): add tokenized string RegExp functions by @albertms10 in #65
  • feat(cabin_booking_app): add keyboard shortcuts support by @albertms10 in #66
  • perf(tests): wrap main test functions by @albertms10 in #67
  • chore(pubspec): bump versions as of dart_code_metrics 4.15.0 by @albertms10 in #68
  • fix(bookings_stack): revert extracting first element by @albertms10 in #71
  • chore(pubspec): bump versions as of Flutter 3.0.1 by @albertms10 in #70
  • refactor: bump versions as of Flutter SDK 3.3.8 by @albertms10 in #72
  • chore(deps): bump actions/upload-artifact from 2 to 3 by @dependabot in #73
  • ci: rewrite analysis and build workflows by @albertms10 in #74
  • refactor: prefer int literals by @albertms10 in #75
  • refactor: adopt library_private_types_in_public_api lint rule by @albertms10 in #76
  • refactor(heat_map_calendar): rename methods starting with get by @albertms10 in #77
  • refactor: prefer asserts with message by @albertms10 in #78

New Contributors

Full Changelog: v0.5...v0.6

Version 0.5

20 Dec 23:09
1a9b0fd
Compare
Choose a tag to compare

UI

Bookings page

  • (feat) Improve locked booking style by @albertmir in #7
  • (feat) Rewrite table adding support for horizontal scrolling by @albertmir in #8
  • fix(bookings_table): wrap with Material Widget by @albertms10 in #27
  • feat(day_navigation): improve week day display and responsiveness by @albertms10 in #28
  • feat(cabin_icon): add percent occupied tooltip by @albertms10 in #29
  • fix(day_navigation): use hintColor by @albertms10 in #33
  • feat(day_navigation): display non-school days badge by @albertms10 in #40

Items table

  • perf(items_table): extract selected state from source data by @albertms10 in #26

Model

  • (fix) Add parameter type to Item equality operator by @chdzma in #11
  • feat(model): reduce JSON properties key length by @albertms10 in #18
  • feat(file_manager): read and write gzip-compressed files by @albertms10 in #19
  • refactor(model): extract as a src private library by @albertms10 in #20
  • perf: use NanoID instead of UUID by @albertms10 in #21
  • feat(school_year_manager): read and write gzip-compressed files by @albertms10 in #22
  • fix(day_handler): pass notifyListeners to SchoolYearManager by @albertms10 in #24
  • fix(managers): properly assign default values whether empty file by @albertms10 in #25
  • fix(file_manager): remove unnecessary JSON file extension by @albertms10 in #31
  • fix(school_year_manager): check if the last school year includes dateTime by @albertms10 in #38

Codebase

New Contributors

Full Changelog: v0.4...v0.5

Version 0.4

22 Feb 22:37
Compare
Choose a tag to compare

UI

  • (refactor) Add ItemsTable as an abstraction for both CabinsTable and SchoolYearsTable
  • (feat) Replace occupancy rate ProgressIndicator with occupancy per week line chart

Summary page

  • (feat) Add bookings count info
  • (feat) Add cabins count info
  • (feat) Add school years count info
  • (feat) Add most booked day
  • (feat) Add bookings count per day heat map calendar (with school year RadioButtonList)
  • (feat) Add popular times bar chart

Bookings page

  • (feat) Improve BookingCard style
    • (feat) Add BookingStatus info button
  • (feat) Animate BookingCard and EmptyBookingSlot time changes
  • (fix) Allow to change an existing BookingRecurringBooking in BookingsForm

School Years page

  • (feat) Add SchoolYearsTable

Model

  • (feat) Save SchoolYearManager to file
  • (refactor) Change FileManager following the Singleton pattern

Codebase

  • (refactor) Rewrite loading files using FutureProvider
  • (refactor) Rewrite Lists as Sets using the SplayTreeSet concrete implementation for proper ordering 5711a86
    • This introduced an unknown issue related to compute isolation, which has been reverted (tracked in #5)

Version 0.3

14 Dec 22:15
Compare
Choose a tag to compare

UI

Item modal

  • (feat) Add creation and modification date info

Cabins page

  • (feat) Add FloatingActionButton for the new Cabin form
  • (feat) Add cabin selection toolbar with the ability to empty or delete a Cabin
  • (feat) Allow sorting the DataTable
  • (feat) Allow specifying a cabin’s components either on creation or on edit
  • (feat) Add accumulated time column with occupancy rate percentage bar
  • (feat) Add most booked time ranges column
  • (feat) Improve CabinsTable accessibility semantics (e.g. tooltips)

Bookings page

  • (feat) Add RecurringBooking form info
  • (feat) Add Cabin occupancy progress indicator
  • (feat) Show EmptyBookingSlot only for future events
  • (feat) Show recurring occurrence number out of total occurrences in recurring booking cards

Model

  • (refactor) Extract Item superclass with id, creation and modification dates logic
  • (refactor) Extract Cabin components member to a more specific CabinComponents object

Codebase

  • (refactor) Rewrite l10n using flutter gen and intl
  • (perf) Strictly use const constructors in Widgets that allow it

GitHub Actions

  • (perf) Improve Flutter CI workflow job tree setup
  • (feat) Provide macos, windows and web Flutter build artifacts in .tar.bz2

Version 0.2

23 Nov 23:28
Compare
Choose a tag to compare

UI

  • (feat) Add NavigationRail as the main navigation
  • (feat) Add cabins page

Cabins page

  • (feat) Add DataTable of Cabin with booking count and occupancy rate

Bookings page

  • (feat) Add FloatingActionButton with main actions
  • (feat) Add support for RecurringBooking
  • (feat) Add support for Booking.isDisabled (locked ranges)
  • (feat) Improve EmptyBookingSlot generation

Codebase

  • (style) Pass pendantic linter check

Version 0.1

16 Nov 23:53
Compare
Choose a tag to compare

UI

Daily time table for bookings in each cabin:

  • (feat) Implement current view date navigation
  • (feat) Show red line with the current time
  • (feat) Implement add/edit Booking (dialog)

Model

  • (feat) Implement data model for Cabin and Booking
  • (feat) Save to and read from JSON file