DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:scrum

scrum plugin

Compatible with DokuWiki

2008-05-05

plugin This plugin creates a page based task list based on the scrum method.

Last updated on
2009-04-30
Provides
Syntax, Action

The missing download url means that this extension cannot be installed via the Extension Manager. Please see Publishing a Plugin on dokuwiki.org. Recommended are public repository hosts like GitHub, GitLab or Bitbucket.

This extension has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues.

Tagged with todo

Download and Installation

FIXME The link to the download is dead, does anyone have this plugin and can share it via an alternative link?

Search and install the plugin using the Extension Manager. Refer to Plugins on how to install plugins manually.

Documentation - How to use the Scrum Plugin

Please refer to the plugin info (DokuWiki Admin > Plugin Management > scrum > info) for detailed explanation of the different tags to use with this plugin. For your convenience, the same info is included here:

The following tags are supported:

{{scrum:<phase>}}

This tag is required, used only once on a wiki page. This is the only tag you should need to update when progressing to the next sprint.

This tag decides what sprint is currently active. Replace <phase> with the currently active sprint number. Usually this is placed at the top of the page. The output will display the number of tasks remaining as well as the total task count of the current sprint.

The scrum progress is maintained on a per page basis, meaning each unique id will have a unique progress file. In other words, all tasks related to the same scrum progress should be part of the same file. Your wiki can contain multiple files with an identical page id as long as they do not share the same namespace.

Example: {{scrum:1}}

{{scrum:feedback}}

This tag is used only once on a wiki page. Write the tag exactly as shown. Place this tag where you want the user to receive action/click feedback. Whenever a user clicks a task to complete or undo the task, feedback is generated.

Usage: {{scrum:feedback}}

{{scrum:graph}}

This tag is used only once on a wiki page. Write the tag exactly as shown. Place this tag where you want the project leader (any admin) to see the graph of finished tasks. The graph is a png-image generated on demand.

Usage: {{scrum:graph}}

{{scrum:<phase>|shared/individual|<title>}}

This tag is used multiple times on a wiki page. For a better layout, a task should always be listed under the same sprint phase headline. The tag is an optional headline element, used to group all tasks within a sprint together. Replace <phase> with what sprint the group belongs to, replace shared/individual with either shared or individual. Finally, replace <title> with a suitable title for the sprint (does not have to be unique).

Important: As it is very useful to have each task numbered, the tasks has to be part of a numbered list! So write <space><space>-<space><taskTag>, replacing <space> with actual spaces and <tasktag> with the tag as shown below.

Example: - {{scrum:1|shared|This is the headline for the first sprint in the project}}
Example: - {{scrum:2|individual|This is the headline for the 2nd sprint which is individual}}

{{scrum:<phase>|<uniqueTaskText>}}

This tag is required, usually used multiple times on a wiki page. For every task you add to a sprint, you use this tag. Replace <phase> with the sprint the task is part of. Also replace <uniqueTaskText> with the actual task caption. The task caption should be unique.

Example: {{scrum:1|This task is part of the first sprint, which means it is shared because the sprint 1 headline says so.}}

Example of the Scrum Plugin running

Below you can see an image of the scrum plugin running.

Screenshot of scrum plugin

discussion

Better Examples

Why don't you have better examples (INCLUDING SOURCE PAGES) for your example above. It seems that if you get one thing wrong in the syntax or the layout order, it all screws up and isn't easy to fix.

filenames

At several places, there is just $ID used as part of a filename. This causes problems when using namespaces - at least under windows (because of the colons).

Added the following functions to action.php (note: scrum files are placed within their namespace, and “-scrum” is appended instead of prepended)

public function scrum_wikiFN($id)
{	
	$fn = wikiFN($id);
	$fn = str_replace('.txt','-scrum.txt',$fn);
	return $fn;
}

public function scrum_mediaFN($id)
{	
	$fn = mediaFN($id).'-scrum.png';
	return $fn;
}

public function scrum_mediaLink($id)
{	
	global $conf;
	
	$id = cleanID($id);
	$id = str_replace(':','/',$id);
	$fn = "/_media/". utf8_encodeFN($id) ."-scrum.png";
	return $fn;
}

Last function has to be used in syntax.php
- Marcel Lemke

caching

Links with ?purge=true wasn't enough. I had to add to action.php

$controller->register_hook('PARSER_CACHE_USE','BEFORE', $this, '_cache_prepare');

and

// force cache to be purged
  function _cache_prepare(&$event, $param) {
      $cache =& $event->data;
	$cache -> depends['purge'] = true;
}

- Marcel Lemke

graph

generate_graph() used the old scrum file - result of burn and hose actions were not shown immediately because prepare_scrum_file() was called before these actions were taken. So I modified some lines in action.php, class ScrumGraph to the following ones:

public function __construct($_scrum_file, $_graph_file)
{	$this->scrum_file = $_scrum_file;
	$this->graph_file = $_graph_file;
}

function prepare_scrum_file()
{	
	$handle = fopen($this->scrum_file, "r");

	while (!feof($handle))
	{	$single_task = fgets($handle, 1024);
	
		if(!empty($single_task) && strcmp(substr($single_task, 0, 2), "//")) // Not empty or a comment
		{	list($header, $userID) = preg_split('(\[([^]]+?)\])', $single_task, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
			
			$userID = trim($userID);
			
			if(empty($all_tasks[$userID]))
			{	$all_tasks[$userID] = 1;
			}
			else
			{	$all_tasks[$userID]++;
			}
		}
	}
	
	fclose($handle);
	return $all_tasks;
}

function generate_graph()
{
	$this->amounts = $this->prepare_scrum_file();

(..)

- Marcel Lemke

Plugin looks great, but would it be possible to post a new version of the plugin including the above modifications? That would really be great for all non-PHP Gurus.. I tried to include the changes myself, but ended up in disaster. My fault :-(

BTW, the theme / template of the demo as shown in the screenshot looks nice, is it public?

- Stefan

Bugs

the scrum plugin regularily gives me this output while saving an edit:

Warning: Cannot modify header information - headers already sent by (output started at /usr/share/dokuwiki/lib/plugins/scrum/syntax.php:1) in /usr/share/dokuwiki/inc/actions.php on line 307

That's easy: There are some spaces before the opening <?php in the file syntax.php. Just delete them and the error is gone.

Help

PLZ provide me with the download link, i Was unable to download with the current one mentioned above

plugin/scrum.txt · Last modified: 2023-10-31 00:58 by Klap-in

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki