Since there have been requests and questions about how deleting of team-members and people works in streber, this topic gives some background information.
Wiki vs. deletingπ
Streber is intended to be wiki-driven: Every change should be revertable. This is more complex than you might think, because it means that reverting something, too, should be revertable: To do this streber keeps track of almost every item-attribute and stores every little change in a table called
itemchange.
History also includes "deleting" something. You might argue that a Project Manager should know what she is doing. But that argument is weak: The whole idea of wiki is:
"Don't be affraid.
Whatever you do, it can be undone."
This means that
items (in the streber almost everything is an item) never get deleted. They have an attribute called
state with which they are marked as being deleted. The modification of the
state-attribute is logged, and thus can be reverted.
A person is an item. Therefore she can't be deleted from the database. She can only be marked as "no longer active".
A team-member is an item. Removing team-members from a project is essentially the same as marking the item as deleted. Readding a team-member changes the
state-attribute and reverts the deletion.
Partially storing history is complexπ
Reverting to any state of the database or an item becomes extremely tricky if there are dependencies. If a team-member modifies an item, we have such a dependency. If you would delete the person completely from the database, how could you revert to this specific version? What would you display in the change log? The partial history would be inconsistent and useless.
Storage is for freeπ
Start of 2009, the size of the complete database of
streber-pm.org was about 50mb. This includes a lot of changes. With modern hardware, 50mb is nothing (just imagine the capacity of you mp3-player). With
modern databases the number of rows in a database has virtually no affect to the speed.
Storing history is cheap.
File uploadsπ
A lot of people ask how to delete files. Well: Files are items and thus they can't be removed from the database or from the harddrive. Uploaded files will stay there forever.
There is a feature request (
clear removed files from server (as function for admins)) to clear files marked as deleted from the server. If you believe this feature is essential, you can add a comment to this task.
also read:
File uploads