summaryrefslogtreecommitdiff
path: root/rt/docs
diff options
context:
space:
mode:
Diffstat (limited to 'rt/docs')
-rw-r--r--rt/docs/design_docs/3.3-schema-redesign.txt57
-rw-r--r--rt/docs/design_docs/cvs_integration4
-rw-r--r--rt/docs/design_docs/link-definitions.txt2
-rw-r--r--rt/docs/design_docs/realflow.txt191
-rw-r--r--rt/docs/design_docs/rt-mvc32
-rw-r--r--rt/docs/rt3-schema-relationships.dot44
6 files changed, 21 insertions, 309 deletions
diff --git a/rt/docs/design_docs/3.3-schema-redesign.txt b/rt/docs/design_docs/3.3-schema-redesign.txt
deleted file mode 100644
index 518eccd4d..000000000
--- a/rt/docs/design_docs/3.3-schema-redesign.txt
+++ /dev/null
@@ -1,57 +0,0 @@
--- --------------------------------------- --
--- RT 3.3 Schema redesign v7: 2004-11-08 --
--- --------------------------------------- --
-
-TABLE CustomFields (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(200) NULL ,
- Type varchar(200) NULL , -- Changed: see MaxValues below
- MaxValues integer, -- New: 1 = Single, 0 = Multiple
- Pattern varchar(255) NULL , -- New: regex to validate against
- Repeated int2 NOT NULL DEFAULT 0 , -- New: repeated table entry
- LookupType varchar(255) NOT NULL, -- New: "RT::Queue-RT::Ticket"
- Description varchar(255) NULL ,
- SortOrder integer NOT NULL DEFAULT 0 , -- only used on "pick CF" screen
-)
-
--- This table replaces the "Queue" field in CustomFields
-TABLE ObjectCustomFields (
- id INTEGER NOT NULL AUTO_INCREMENT,
- CustomField int NOT NULL , -- CustomField ID
- ObjectId integer NOT NULL, -- Final id of toplevel parent, or
- -- the object itself if ParentType
- -- is empty; 0 means global as usual
- SortOrder integer NOT NULL DEFAULT 0 , -- this is used to sort the CFs
-);
-
--- This table replaces TicketCustomFieldValues
-TABLE ObjectCustomFieldValues (
- id INTEGER NOT NULL AUTO_INCREMENT,
- CustomField int NOT NULL ,
- ObjectType varchar(255) NOT NULL, -- Final target of the Object
- ObjectId int NOT NULL , -- New: replaces the "Ticket" field
- SortOrder integer NOT NULL DEFAULT 0 , -- New: for Repeated fields
-
- Content varchar(255) NULL ,
- LargeContent LONGTEXT NULL, -- New: data longer than 255 bytes
- ContentType varchar(80) NULL, -- New: MIME type of LargeContent
- ContentEncoding varchar(80) NULL , -- New: for binary LargeContent
- Disabled int2 NOT NULL DEFAULT 0 , -- New: whether this is deleted
-)
-
-TABLE Transactions (
- id INTEGER NOT NULL AUTO_INCREMENT,
- ObjectType varchar(255) NULL, -- Final target of the Object
- ObjectId integer NOT NULL DEFAULT 0 , -- New: replaces the "Ticket" field
- TimeTaken integer NOT NULL DEFAULT 0 ,
- Type varchar(20) NULL ,
- Field varchar(40) NULL ,
- OldValue varchar(255) NULL ,
- NewValue varchar(255) NULL ,
- ReferenceType varchar(255) NULL, -- NeW: Currently "RT::OCFV" only
- OldReference integer NULL , -- New: Id of ReferenceType
- NewReference integer NULL , -- New: Id of ReferenceType
- Data varchar(255) NULL ,
-)
-
--- vim: filetype=mysql shiftwidth=4 expandtab
diff --git a/rt/docs/design_docs/cvs_integration b/rt/docs/design_docs/cvs_integration
index 45a758fbe..35c8737ed 100644
--- a/rt/docs/design_docs/cvs_integration
+++ b/rt/docs/design_docs/cvs_integration
@@ -85,14 +85,14 @@ marc: I think the idea is to force you to
mention the ticket closing in the commit message. ()
jesse@FSCK.COM: but yeah, state changing
- and 'update messages' are separate concepts that should both be
+ and 'update messages' are seperate concepts that should both be
supported. ()
jesse@FSCK.COM: part of the idea is to
drag the commit message into the BTS ()
jhawk: Err, I think it quite frequent that I want
- to put separate info in both the commit message and the ticket system,
+ to put seperate info in both the commit message and the ticket system,
and entering them at the same time seems cool. ()
jesse@FSCK.COM: ok. noted. I'll see if
diff --git a/rt/docs/design_docs/link-definitions.txt b/rt/docs/design_docs/link-definitions.txt
index e109744cf..30b903567 100644
--- a/rt/docs/design_docs/link-definitions.txt
+++ b/rt/docs/design_docs/link-definitions.txt
@@ -92,7 +92,7 @@ For 2.0, those Linking actions should be supported:
Based on user feedback, merged tickets will be displayed as the same ticket
within RT's user interfaces. but the original tickets' transactions will be
-kept separated in the database. this may require some magic.
+kept seperated in the database. this may require some magic.
4. RefersTo / No Action link (linking)
diff --git a/rt/docs/design_docs/realflow.txt b/rt/docs/design_docs/realflow.txt
deleted file mode 100644
index 3717e273b..000000000
--- a/rt/docs/design_docs/realflow.txt
+++ /dev/null
@@ -1,191 +0,0 @@
-- I have a MonitoredQueue that sets tickets to "Monitored"
- if its subject matches /monitored/.
-
-- I want to have a kind of Ticket that are 'Monitored'.
-- I want all monitored tickets, when they are overdue for
- 14 days, to:
- - send notification to manager
- - mark as stalled
-- I want all monitored tickets, when they are overdue for
- 28 days, to:
- - mark as rejected
-- I want to query all tickets that are monitored as such
-- I want to modify 14 => 15 and have it affect all existing
- tickets that are monitored
-
-{
-- I want to add a new "overdue for 27 days, add a 'ultimatum'
- correspondence to it" rule for all monitored tickets.
-- I want to add a new "overdue for 27 days, add a 'ultimatum'
- correspondence to it" rule for all _new_ monitored tickets
- without affecting existing ones.
-}
-
-- The user of OrderRequest queue needs to fill a numeric "CF",
- called "Price".
-- On creation, it needs to create following approvals:
- - "Manager" approval if CF.Price is > 1000
- - "President" approval if CF.Price is > 2000
-- When all of "M", "P" are resolved (if any, or if there were none
- to begin with), Create a new approval, "Finance".
-- If any approvals above is rejected, reject the original ticket.
-- If "Finance" is resolved, resolve original ticket.
-- If "Finance" is rejected, create an approval for "CEO".
-- If "CEO" is resolved, resolve the original ticket.
-- If "CEO" is rejected, reject the original ticket.
-
-[RuleAction CreateTicketWithRuleset]
- -> ReleaseMyLockOnRuleset $ruleset
- -> UnlessLockOnRuleset $ruleset
- # i.e. if no active tickets still have a lock on it
- -> ForceCreateTicketWithRuleset $ruleset
-
-[Queue OrderRequest]
- -> Condition: OnCreate
- Action: AddTicketRuleSet "PurchaseApproval"
- # Triggers immediately
-
-[RuleSet: PurchaseApproval]
- -> Condition: OnCreate
- Condition: CF.Price > 1000
- Action: CreateTicketWithRuleset "ManagerApproval"
- -> Condition: OnCreate
- Condition: CF.Price > 2000
- Action: CreateTicketWithRuleset "PresidentApproval"
- -> Condition: OnCreate
- Action: CreateTicketWithRuleset "FinanceApproval"
- -> Condition: OnReject
- Action: DeleteTree
-
-[RuleSet: ManagerApproval]
- -> Condition: OnCreate
- Action: Prohibit Ruleset "FinanceApproval"
- -> Condition: OnResolve
- Action: CreateTicketWithRuleset "FinanceApproval"
- -> Condition: OnReject
- Action: RejectTicket TOP
-
-[RuleSet: PresidentApproval]
- -> Condition: OnCreate
- Action: Prohibit CreateTicketWithRuleset "FinanceApproval"
- -> Condition: OnResolve
- Action: CreateTicketWithRuleset "FinanceApproval"
- -> Condition: OnReject
- Action: RejectTicket TOP
-
-[RuleSet: FinanceApproval]
- -> Condition: OnCreate
- Action: Prohibit RuleSet "CEOApproval"
- -> Condition: OnResolve
- Action: ResolveTicket TOP
- -> Condition: OnReject
- Action: CreateTicketWithRuleset "CEOApproval"
-
-[RuleSet: CEOApproval]
- -> Condition: OnResolve
- Action: ResolveTicket TOP
- -> Condition: OnReject
- Action: RejectTicket TOP
-
-
-
-Prohibit Ticket Operation:
- Ruleset CEOApproval
-
-
-
-
-
-
-
- ,--------.
-[TOP] --> [M] --> [F]
- ` `-> [P] -'
- `
- `-> [X] --> [Y]
-
-
-[TOP] => [Approval]
- -> Queue: B
- -> Rule: yyy
- -> Workflow: W
- -> Stage: Approval
- -> Rule: xxx
-
-isa_ok( $Approval->Type, 'RT::Ticket' );
-is( $Approval->Workflow->Name, 'W' );
-is( $Approval->Stage->Name, 'Approval' );
-
-[Queue: A]
- -> Workflow: W
-
-[Workflow: W]
- -> Stage: TOP
- -> Stage: Approval
- -> Stage: SUCCESS
- -> Stage: FAIL
-
-"RuleCollections"
-
-[Stage: TOP]
- -> Rule: OnCreate RunStage Approval
-
-ok( TicketA->Rules->HasEntry($ApprovalRule) )
-ok( TicketB->Rules->HasEntry($ApprovalRule) )
-
-[Rule: Approval]
- -> Rule: OnResolve RunStage SUCCESS
- -> Rule: OnReject RunStage FAIL
-
-[Stage: SUCCESS]
- -> Rule: OnCreate SetStatus('resolved') TOP
-
-[Stage: FAIL]
- -> Rule: OnCreate SetStatus('rejected') TOP
-
-[Unassociated]
- - Rule FOO: OnAnything {
- CreateTicketIfNotBlocked StageFOO
- AddLink DependedOnBy TOP to Stage1
- AssignRule DoStage2 to Stage1
- AssignRule DoStage3 to Stage1
- }
- - Rule BAR: OnAnything {
- CreateTicketIfNotBlocked StageBAR
- DoSomethingBizzare
- }
-
- ,==> [Stage0] ==>.
- , .
-[TOP] ==> [Stage1] ==> [Stage3]
- ` '
- `==> [Stage2] ==>'
-
-OnTransaction:
- $self->Ticket->Queues->Scrips->Apply
-
-OnTransaction:
- $self->Ticket->Queues->Scrips->Apply
- ->Scrips->Apply
-
-OnTransaction:
- $self->Ticket->Queues->Scrips->Apply
- ->Stages->Scrips->Apply
-
-[QueueX]
- - Rule:
- OnCreate:
- RunRule FOO
-
-[QueueY]
- - Rule:
- OnWhatever:
- RunRule FOO
-
-
-[TOP] => [Stage1] => [Stage2] => [END]
- `- => [Stage3] => [END]
- ` -> [Stage4]
-
-[Stages]
- ->
diff --git a/rt/docs/design_docs/rt-mvc b/rt/docs/design_docs/rt-mvc
deleted file mode 100644
index 3518b7d9a..000000000
--- a/rt/docs/design_docs/rt-mvc
+++ /dev/null
@@ -1,32 +0,0 @@
-Goals:
-
-
- Never write an init block for a page that just views/edits pages
- No style embedded in view/edit pages
-
- Validation / Error display and re-editing.
-
-
-Implementation.
-
-
- For a given object's fields:
-
- print a label for the field
- print the current values for the field
- print an edit widget for create
- print an edit widget for update
-
-
-
- for a given form buttons for "perform the action" "don't perform the main action"
-
-
-Edit widgets
-
-
- text input
- hidden
- fixed enum as { dropdown, select multiple, sleect single, radio}
- checkbox fixed enum
-
diff --git a/rt/docs/rt3-schema-relationships.dot b/rt/docs/rt3-schema-relationships.dot
index e290f8bcf..77ed35f01 100644
--- a/rt/docs/rt3-schema-relationships.dot
+++ b/rt/docs/rt3-schema-relationships.dot
@@ -1,7 +1,7 @@
digraph g {
graph [
-rankdir = "RL",
- concentrate = true,
+rankdir = "LR",
+concentrate = true,
ratio = auto
];
node [
@@ -11,43 +11,40 @@ shape = record, fontsize = 18
edge [
];
-"Records" [shape = record, fontsize = 18, label = "(Any RT::Record)" ];
-"Records" -> "Principals" [label = "Creator -> id"];
"ACL" [shape = record, fontsize = 18, label = "<col0> \N " ];
-"ACL" -> "Principals" [label="PrincipalId -> id"];
-"ACL" -> "Principals" [label="DelegatedBy -> id"];
-"ACL" -> "ACL" [label="DelegatedFrom -> id"];
+"ACL" -> "Principals" [label="PrincipalId -> Id"];
+"ACL" -> "Principals" [label="DelegatedBy -> Id"];
+"ACL" -> "ACL" [label="DelegatedFrom -> Id"];
"Attachments" [shape = record, fontsize = 18, label = "<col0> \N " ];
"Attachments" -> "Transactions" [label="TransactionId -> id"];
"Attachments" -> "Attachments" [label="Parent -> id"];
"CachedGroupMemers" [shape = record, fontsize = 18, label = "<col0> \N " ];
-"CachedGroupMemers" -> "Groups" [label="GroupId -> id", weight=2];
-"CachedGroupMemers" -> "Principals" [label="MemberId -> id"];
+"CachedGroupMemers" -> "Groups" [label="GroupId -> Groups.id"];
+"CachedGroupMemers" -> "Principals" [label="MemberId -> Id"];
"CachedGroupMemers" -> "CachedGroupMemers" [label="Via -> id"];
-"CachedGroupMemers" -> "Groups" [label="ImmediateParentId -> id"];
+"CachedGroupMemers" -> "Groups" [label="ImmediateParentId -> Groups.id"];
"CustomFields" [shape = record, fontsize = 18, label = "<col0> \N " ];
+"CustomFields" -> "Queues" [label="Queue -> id"];
"CustomFieldValues" [shape = record, fontsize = 18, label = "<col0> \N " ];
"CustomFieldValues" -> "CustomFields" [label="CustomField -> id"];
"GroupMembers" [shape = record, fontsize = 18, label = "<col0> \N " ];
-"GroupMembers" -> "Groups" [label="GroupId -> id", weight=2];
-"GroupMembers" -> "Principals" [label="MemberId -> id", weight = 2];
+"GroupMembers" -> "Groups" [label="GroupId => Groups.Id"];
+"GroupMembers" -> "Principals" [label="MemberId => Id"];
"Groups" [shape = record, fontsize = 18, label = "<col0> \N " ];
"Groups" -> "Principals" [label="Groups.id -> id"];
"Links" [shape = record, fontsize = 18, label = "<col0> \N " ];
-"Links" -> "Tickets" [label="LocalBase => id (usually)", style="dotted"];
-"Links" -> "Tickets" [label="LocalTarget => id (usually)", style="dotted"];
+"Links" -> "Tickets" [label="LocalBase => id (usually)"];
+"Links" -> "Tickets" [label="LocalTarget => id (usually)"];
"Principals" [shape = record, fontsize = 18, label = "<col0> \N " ];
-"Attributes" [shape = record, fontsize = 18, label = "<col0> \N " ];
-"Attributes" -> "Records" [label="ObjectId -> id"];
"Queues" [shape = record, fontsize = 18, label = "<col0> \N " ];
@@ -64,22 +61,17 @@ edge [
"Templates" [shape = record, fontsize = 18, label = "<col0> \N " ];
"Templates" -> "Queues" [label ="Queue -> id" ];
-"ObjectCustomFields" [shape = record, fontsize = 18, label = "<col0> \N " ];
-"ObjectCustomFields" -> "CustomFields" [label="CustomField -> id"];
-"ObjectCustomFields" -> "Records" [label="ObjectId -> id"];
-
-"ObjectCustomFieldValues" [shape = record, fontsize = 18, label = "<col0> \N " ];
-"ObjectCustomFieldValues" -> "CustomFields" [label="CustomField -> id"];
-"ObjectCustomFieldValues" -> "Records" [label="ObjectId -> id"];
+"TicketCustomFieldValues" [shape = record, fontsize = 18, label = "<col0> \N " ];
+"TicketCustomFieldValues" -> "Tickets" [label="Ticket -> id"];
+"TicketCustomFieldValues" -> "CustomFields" [label="CustomField -> id"];
"Tickets" [shape = record, fontsize = 18, label = "<col0> \N " ];
"Tickets" -> "Tickets" [label="EffectiveId -> id"];
-"Tickets" -> "Principals" [label="Owner -> id"];
-"Queues" -> "Tickets" [style="invis"];
"Tickets" -> "Queues" [label="Queue -> id"];
+"Tickets" -> "Principals" [label="Owner -> id"];
"Transactions" [shape = record, fontsize = 18, label = "<col0> \N " ];
-"Transactions" -> "Records" [label="ObjectId -> id"];
+"Transactions" -> "Tickets" [label="Ticket -> Id"];
"Users" [shape = record, fontsize = 18, label = "<col0> \N " ];