C1: CreateBatch shadowed err with := in loop, causing partial commits on
failure. Fixed with named return and execErr loop variable.
H1: OrderBy concatenated raw into SQL query. Added whitelist validation.
H2: Organization.List dropped query args in SelectContext call.
H3: CourseRepository.Get wrapped sql.ErrNoRows without translating to
ErrNotFound, breaking the port contract.
Medium: Create now returns the created entity via Get; fixed prepared
statement leak in Organization.Create; unified time.Now() to UTC.
Move pagination logic to preserve filter query parameters (school_id,
order_by, asc, per_page) when navigating between pages.
- Added QueryParams field to Pagination struct and pageURL() helper
- Server-side: buildListCoursesQueryParams() encodes active filters into
pagination links as query string
- Client-side: setupPaginationLinks() intercepts pagination link clicks,
reads current filter state from DOM selects, and constructs full URLs
with all parameters preserved
- Added data-paginated/data-base-url/data-current-page attributes to
pagination nav for JS targeting
Closes#1
dataSources changed from map[string]ReduxDataSource (objects) to
map[string]string (simple key-value pairs). Dictionaries block removed
from ReduxConfig entirely. ReduxConfigSorting now includes Name and
Direction fields alongside Property.
Before script has been separated on two groups: for learning type and
course category and for school and sorting. It means when school is
choosen, learning type and course category resets on update.
TODO: need to add pagination
* Added command and query for organizations
* Saving unknown organizations into database in `background` service
* Added `List` method in `OrganizationRepository`