Skip to content

Releases: expertZentrale/redmine_expert_agile

redmine_expert_agile 0.2.3

Choose a tag to compare

@github-actions github-actions released this 26 Aug 20:17
9dce8db

redmine_expert_agile 0.2.3 – 2026-08-26

Changed

  • Card colours are picked from the palette itself instead of from a list of colour names. Both
    places that assign one — the administration screen and the colour field on an issue — offered a
    dropdown reading "Green", "Light green", "Turquoise", so the one thing you needed to see while
    choosing, the colour, was the one thing not shown. They now show the palette as the colours
    themselves, with the current one marked and a slashed swatch to clear it. Underneath they are
    still radio buttons, so the keyboard works as before and what gets posted is unchanged.
  • The palette has grown from 9 colours to 18 and is ordered by hue rather than by when each
    colour was added, so related shades sit together. The nine that existed keep their names and
    values, and anything already coloured keeps its colour. One exception: colouring a board by
    assignee derives the colour from the palette, so those cards change colour — nothing is stored
    for them, and the assignment was never meaningful, only stable.
  • The plugin has one entry in the administration menu, named after itself. Its settings were
    reachable only through Administration → Plugins → Configure, while the one thing the plugin did
    put in the administration menu was the card colour screen — listed among Redmine's own areas as
    "Agile card colors", with nothing to say which plugin it belongs to or where the rest of the
    plugin is configured. There is now a single expert Agile entry leading to the settings, the
    same shape the helpdesk plugin uses, and the card colour screen is reached from the colour
    section of those settings. Nothing moved on the settings page itself, and the colour screen is
    unchanged and keeps its address.

Fixed

  • The plugin's administration entry had no icon on Redmine 6 and newer. It asked for the icon
    named "palette" from the plugin's own icon sprite, which this plugin never shipped — and an icon
    requested that way is not looked up in Redmine's core set, so nothing was drawn and the entry
    sat among the core ones as the only item without an icon. The plugin now ships a sprite, and a
    test fails if a menu entry asks for a symbol that is not in it.

redmine_expert_agile 0.2.2

Choose a tag to compare

@github-actions github-actions released this 26 Aug 17:22
9d4c0bc

redmine_expert_agile 0.2.2 – 2026-08-26

Fixed

  • A move the workflow refused was still shown as done. Dragging a card to a column the
    workflow does not allow reported the refusal — and then left the card lying in the target
    column, as though the board had accepted the move it had just called impossible. Only a reload
    put the card back, because the server never wrote anything. The card is now returned to the
    exact position it was picked up from, which is also what happens when a move is refused for any
    other reason. Whether a move is refused at all depends on the workflow of the user's role, so
    the same drag can be fine for one user and refused for another.
  • Any failed move reported a refused status change. The message shown when a request never
    came back — a dropped connection, a server error, a response that was not the expected answer —
    was the workflow one on the board and "sprint or version not available" in the backlog planner,
    neither of which had anything to do with what actually went wrong. Those two remain what the
    server sends when it really does refuse a move; a request that got no answer now says so.

redmine_expert_agile 0.2.1

Choose a tag to compare

@github-actions github-actions released this 19 Aug 13:08
bc674a6

redmine_expert_agile 0.2.1 – 2026-08-19

Fixed

  • Cards could not be reordered inside the "New" column. A card dropped between two others
    jumped to the top of the column instead of staying where it was dropped, and only that column
    was affected. Ranks are created lazily — an issue nobody has dragged yet carries no rank at all
    and sorts, with every other unranked card, after the ranked ones in id order — and "New" is the
    column issues are created in, so it consists of nothing but unranked cards. Placing a card meant
    taking the midpoint of its two neighbours' ranks, and between two cards that have none there is
    no midpoint to take: the move was ranked as though the column were empty, which put the card
    first. The cards above the drop point are now given real ranks, in the order they are already
    displayed in, before the midpoint is taken. Only they are: a drop near the top of a column of
    thousands touches a handful of rows, not thousands — the cards below it are neither read nor
    rewritten, and keep their place.
    Columns that already hold dragged cards were unaffected and stay as they are.
  • Two cards dropped into the same spot could land on the same rank. Anything dropped below the
    last ranked card in a column was ranked one step below that card, so a second drop into the same
    spot repeated the rank of the first and the order between them fell back to issue id. The rank
    is now measured against the whole column rather than the card above the drop point.

redmine_expert_agile 0.2.0

Choose a tag to compare

@github-actions github-actions released this 14 Aug 16:20
ec19390

redmine_expert_agile 0.2.0 – 2026-08-14

Security

  • A saved board or backlog could be opened by anyone who knew its id. Both lookups resolved
    the id straight from the table, so a private board belonging to another user opened for any
    member of the project — its name and its whole filter set, though not issue data, which
    Issue.visible still gates. Both now resolve through visible and global_or_on_project, the
    scope the sidebar and the query controller already used.
  • A saved board or backlog stayed open after it stopped being visible. The session carries
    only an id and outlives the query it points at, so an owner turning a shared board private, or a
    role losing the permission, had no effect until the viewer's session happened to end. The
    session restore now resolves through the same scope and falls back to a fresh board when the
    saved one is gone or no longer visible.

Added

  • The backlog planner has the board's filter and options panel. The backlog tab was the one
    agile screen without one: it built a throwaway query on every request, so it always showed every
    open issue of the project and nothing a user chose survived a page reload. It now carries the
    same panel the board does — Redmine's own filter widget, a collapsible Options fieldset with
    card fields and colouring, and Apply / Clear / Save — persisted in its own session key so
    coming back via the project menu shows the backlog as it was left. There is no status-column or
    WIP part: the planner deliberately ignores where an issue sits in the workflow.
  • Saved backlogs. A backlog can be saved, edited and deleted like a board or a chart, and
    saved backlogs are listed in the agile sidebar, which the backlog tab now renders. They are
    ExpertAgileBacklogQuery rows in Redmine's queries table, visible through the
    view_expert_agile_backlog permission rather than the board's, and
    ExpertAgileBacklogQueriesController is the board's query controller pointed at that class —
    the same reuse the charts variant already uses. Saving needs add_expert_agile_queries, which
    lives in the expert_agile module, so a project running the backlog module alone can filter but
    not save.
  • Backlog cards show the fields the panel selects. They were a fixed set of id, tracker,
    subject, status and story points; they now render the assignee and avatar, estimated hours, done
    ratio, the description excerpt and any selected column including custom fields, exactly as a
    board card does.
  • Screenshots in both READMEs. README.md and README.de.md now open a Screenshots section
    covering the board with its sub-columns and WIP limits, swimlanes, the backlog planner, the
    sprint list, story points on the issue form, burndown, velocity, cumulative flow, the card
    colours screen and the plugin settings — so the plugin can be evaluated without installing it
    first. The images live in docs/screenshots/{en,de}/ and, like the rest of docs/, are excluded
    from the release archives, so the installable package does not grow.
  • scripts/seed_screenshot_demo.rb and scripts/teardown_screenshot_demo.rb build and remove
    the synthetic demo project the screenshots are taken from: five sprints across the
    open/active/closed lifecycle, ~130 issues with backdated status journals so the
    history-replaying charts have something to replay, story points, board positions, time entries,
    card colours and three saved boards. Unlike their helpdesk counterparts these scripts do write
    global state — story points and sprints are off by default and neither feature is visible
    otherwise — so the seed records every value and every row id it touches in an
    expert_agile_screenshot_backup setting and the teardown restores the instance from it.
    RELABEL=de renames the demo statuses between the English and the German capture pass, so both
    screenshot sets share one dataset. Both scripts refuse to run without DEMO_STACK=1: they boot
    under the official Redmine image, which runs in production mode, so Rails.env cannot tell a
    disposable database from a real one and the opt-in has to be typed.

Fixed

  • A chart saved from its own screen was stored as a board. expert_agile_queries/new and
    edit hardcoded the board's routes, so every variant of the query controller posted its form to
    ExpertAgileQueriesController regardless of which screen it came from. Where the shared form
    posts, and what it is titled, is now the controller's business. The charts variant had no Save
    link in the UI, so this only ever bit the API; the backlog would have hit it on the first click.
  • "Show future data on charts" did nothing. The setting was declared, documented in the
    settings screen and read by RedmineExpertAgile.chart_future_data?, but no chart ever consulted
    it: every series was drawn to the end of the selected range, so a burndown looked at mid-sprint
    ran flat from today to the sprint end and a velocity chart showed empty buckets for weeks that
    have not happened. Measured series (:actual, :total, :created, :closed, :trend) now
    stop at today unless the setting is on, while the ideal line — a projection, not a measurement —
    still spans the whole range. An interval bucket that merely contains today is kept, because a
    week is legitimately partial on the day you look at it.
  • Cumulative flow bands were indistinguishable. The band colour was a hue derived from the
    status's index among all of the instance's statuses, so on an installation with fifty statuses
    a six-band chart drew six neighbouring hues — six shades of the same pink, one on top of the
    other. The palette is now spread over the bands the chart actually draws, so the bands are as far
    apart on the colour wheel as they can be.
  • Untranslated column header on the card colours screen. The table header called
    l(:label_name), a key neither the plugin nor Redmine defines, so the admin screen rendered
    "Translation missing: en.label_name". It now uses Redmine's own field_name.
  • The documented test command ran the wrong plugin. Both READMEs put PLUGIN= in front of
    docker-compose … run, where it stays a shell variable and never reaches the container — the
    service fell through to its default and the helpdesk suite ran instead, reporting a clean 417
    green tests while the agile suite was never executed. The command now passes -e PLUGIN=….

redmine_expert_agile 0.1.9

Choose a tag to compare

@github-actions github-actions released this 11 Aug 09:18

redmine_expert_agile 0.1.9 – 2026-08-11

Fixed

  • Backlog lanes overlapped each other. The board's fixed 300px column width was written as an
    unscoped .ea-cell rule, and the backlog reuses that class — so every drop zone rendered 314px
    wide inside a 280px lane and spilled over its neighbour. The width now belongs to the board's
    table, and the plugin's boxes size with border-box.

Changed

  • The backlog planner looks like a planning tool. The sprint/version switch is a segmented
    control rather than two bare links. A sprint lane shows its status, its date range and the days
    left, so you can tell which sprint is running without leaving the page; a version lane shows its
    date. The unplanned column is dashed to mark it as the source rather than a target, lanes carry
    the same accent colour they have on the board, an empty lane says what to do with it, and each
    lane scrolls internally so a large backlog no longer makes the page thousands of pixels tall.

Added

  • Controller tests for the backlog planner, which had none: lane structure, exactly one drop
    target per lane, container ids, totals, the sprint metadata, module and permission gating, and
    planning an issue into and back out of a sprint.

redmine_expert_agile 0.1.8

Choose a tag to compare

@github-actions github-actions released this 11 Aug 08:06

redmine_expert_agile 0.1.8 – 2026-08-11

Changed

  • The board options panel is compact. Three stacked fieldsets — one of them Redmine's
    two-list-with-arrows column picker, about 400px tall on its own — are now a single panel of
    three side-by-side groups that wrap on narrow screens: card fields, appearance, and columns with
    their WIP limits. Opening the options costs 279px instead of pushing the board most of a screen
    down, and every setting is visible at once.

  • Card fields are a checkbox grid. Ordering columns matters in a table and much less on a
    card, so the space the arrow picker spent on ordering now shows every available field, custom
    fields and description included, in two dense columns. Selections still post as c[], so
    Redmine's own parameter handling is unchanged.

    Note this drops the ability to order card fields; they now follow Redmine's own column order.

  • Status columns and their WIP limits are a three-column grid with closed statuses in italic, so
    the "done" column is easy to spot. Long field names carry a tooltip, and both scrollable lists
    fade at the bottom edge so a half-visible row reads as "more below" rather than as a glitch.

redmine_expert_agile 0.1.7

Choose a tag to compare

@github-actions github-actions released this 11 Aug 07:55

redmine_expert_agile 0.1.7 – 2026-08-11

Fixed

  • Every issue page returned a 500. The issue form hook asked a guard method that had never
    been written, so opening any issue — including clicking a card on the board — failed with
    undefined method 'sprint_visible?'. The guard now exists and shows the sprint selector only
    when sprints are switched on and the project has one to plan into.
  • The plugin's view hooks are now covered by tests that render Redmine's own pages — issue
    show, edit, new, bulk edit and the issue list, with the module on and off and with sprints and
    story points enabled. The whole plugin suite passed throughout this outage because nothing had
    ever rendered a core page with the plugin loaded; a hook that breaks a core page is the one
    failure a plugin most needs to catch.

redmine_expert_agile 0.1.6

Choose a tag to compare

@github-actions github-actions released this 11 Aug 07:44

redmine_expert_agile 0.1.6 – 2026-08-11

Added

  • More card fields. Created and updated were already selectable; the card picker now also
    offers time in status — whole days since the issue last changed status, answered from one
    grouped journal query for the whole board rather than a lookup per card — and a short excerpt
    of the description
    , whose length is configurable in the plugin settings. Description is a
    block column in Redmine, so the options panel now exposes block columns the way Redmine's own
    query form does.
  • The excerpt is plain text: HTML and wiki markup are stripped rather than rendered, because a
    card is a summary and full markup drags headings, tables and images into it. Descriptions
    ingested from email are mostly HTML, so this matters in practice.

Fixed

  • A setting added in a later version never took effect on an existing installation. Redmine
    hands back the stored settings hash wholesale once the settings form has been saved even once,
    so a newly declared key is simply absent and reads as nil — which for a numeric setting becomes
    0. The declared defaults are now merged underneath the stored values, so a stored value still
    wins (including a deliberately blank one) while new keys get their default. This is what made
    the description excerpt collapse to its 20-character floor.

redmine_expert_agile 0.1.5

Choose a tag to compare

@github-actions github-actions released this 11 Aug 07:23

redmine_expert_agile 0.1.5 – 2026-08-11

Fixed

  • Swimlanes did not read as lanes. Each lane was a table row with a narrow label cell on the
    left, so nothing tied the row together across the columns. A lane is now a band spanning the
    full width of the board, with the lane name and its own issue and story point totals. On a
    board wide enough to scroll, the lane name stays pinned while the columns move underneath it.
  • Every lane looked the same. Lanes now carry an accent colour. A lane whose value can be
    coloured — a tracker, priority or status — uses that colour, so the band matches its cards and
    grouping by priority gives the expected calm-to-red ramp; anything else gets a stable palette
    entry derived from its id.

redmine_expert_agile 0.1.4

Choose a tag to compare

@github-actions github-actions released this 10 Aug 19:19

redmine_expert_agile 0.1.4 – 2026-08-10

Added

  • Sidebar on the agile pages. The board and the charts page now carry a sidebar in the same
    shape as Redmine's issue list: quick links between board, charts and backlog, the saved boards
    (or saved charts) split into "My queries" and shared ones, and the project's sprints with a
    link to create another. Switching between views is a single click.
  • Saved charts. ExpertAgileChartsQueriesController — like the board's, its routes and
    permissions had existed since the first commit with no controller behind them. A chart's
    selection, unit, interval and date range are saved with it. It is the board's query controller
    pointed at a different class rather than a second copy.

Fixed

  • Saving a chart was refused with 403. Only :index was mapped for the charts-query
    controller, and find_optional_project authorises the controller/action pair — so every other
    action was denied by default rather than by intent.
  • The "save board" link went to the wrong route. It pointed at the collection path, which is
    #index and simply redirects back to the board, silently discarding the configuration being
    saved. It now posts to the new action, as Redmine's own query form does.
  • Saved charts no longer appear among the saved boards. ExpertAgileChartsQuery is a
    subclass of ExpertAgileQuery, so an unqualified lookup listed both; the sidebar filters on the
    exact type.