diff options
Diffstat (limited to 'rt/docs')
-rw-r--r-- | rt/docs/design_docs/3.3-schema-redesign.txt | 57 | ||||
-rw-r--r-- | rt/docs/design_docs/cvs_integration | 4 | ||||
-rw-r--r-- | rt/docs/design_docs/link-definitions.txt | 2 | ||||
-rw-r--r-- | rt/docs/design_docs/realflow.txt | 191 | ||||
-rw-r--r-- | rt/docs/design_docs/rt-mvc | 32 | ||||
-rw-r--r-- | rt/docs/rt3-schema-relationships.dot | 44 |
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 " ]; |