OrchardCollaboration contains two modules: OrchardCollaboration and OrchardCollaboration.Project. Here I listed the ContentParts and ContentTypes of each module separately.

OrchardCollaboration module

The module contains the following ContentParts and ContentTypes.

ContentParts

TicketPart

It is the main Part of the tickets which contains ticket properties such as Status, TicketType, ServiceType, Description, DueDate, Priority, Title and etc. Each ticket can have sub tickets and there is no limit on number of hierarchy levels on the tickets.

TicketsForContentItemPart

This part allows users to create tickets for ContentItems. If you want to be able to create tickets for a special ContentType, the only thing you should do, is attaching the Part to the ContnetType. After that, Operator users will see a menu under any item of that type which provides a summary of the associated tickets with the item plus the ability to create new Tickets for the item.

CRMCommentsPart & CRMComment

These parts allow users to write comments on tickets. Each CRMCommentsPart can have several CRMCommentParts and their functionality more or less are similar to the CommentsPart of the Orchard.Comments module. The main reason that the Orchard Collaboration has its own commenting component instead of using the build-in CommentsPart is security and integrity of data. Actually, the comments on tickets must not be accessible by default search feature of the Orchard. The purpose of the default search is searching content, but comments of tickets are not content, they are business-level information. Only people with special privileges or permissions must be able to access comments of a ticket. By having special parts for commenting on tickets, the system gets the ability to enforce security rules and customize the search on ticket comments.

ContentPermissionPart

This part is used to store/check the access right of the users to the tickets. Each ContentPermissionPart can have several ContentPermissionDetailRecords. Each of those records specifies an Access Type of a user or a Business Unit to a ContentItem. For more detail, please take a look at the Security section.

BusinessUnitPart

A business unit is a unit of the top-level organization. In Orchard Collaboration Business Units are used to organize and group users together. Tickets can be assigned to Business Units as well as to the users too. If a ticket has been assigned to a Business Unit, then all of the members of the Business Unit can access the ticket. If a business unit has a read-only access to a ticket, it means all of the members of the unit have read-only access to the ticket. By defining Business Unit as a Part, the admin of the system has the capability to attach custom fields to Business Units.

AttachToProjectPart

This Part is used to attach items to Projects

BusinessUnitMemberPart

Each BusinessUnitPart can have several BusinessUnitMemberParts. BusinessUnitMemberParts attach users to Business Units. By defining BusinessUnitMember as a Part, the admin has the capability to attach custom fields to BusinessUnitMembers.

Basic Data

The module contains the following tables for the Basic data.

StatusRecord

The table contains different status values. TicketPartRecord has foreign key to this table.

TicketTypeRecord

The table contains different Ticket Type values. TicketPartRecord has foreign key to this table.

ServiceRecord

The table contains different Service values for Tickets. TicketPartRecord has foreign key to this table.

EmailTemplateRecord

This table contains the Email Templates that can be used in the Activities such as SendTicketEmail and SendCommentEmail to send emails. You can use Orchard tokens in both of the Subject and Body fields of the EmailTemplateRecords in order to inject properties of the ticket into the email.

PriorityRecord

The table contains different priority values for Tickets. TicketPartRecord has foreign key to this table.

DashboardPart

It is a static part that represents some basic reports of the tickets such as the total count of unassigned tickets in the system, the count of your open tickets, the count of your closed tickets etc. Only users with the AdvancedOperator Permission, can see the general statistics of the system such as the total count of open tickets in the system, etc. The other users only see the statistics of their own tickets.

ContentTypes

Ticket

Ticket ContentType has the following Parts by default.

  • CommonPart
  • TicketPart
  • ContentItemPermissionPart
  • CRMCommentsPart

CRMComment

CRMComment ContentType is not a creatable ContentType by default. It has the following Parts.

  • CommonPart
  • CRMCommentPart

BusinessUnit

BusinessUnit ContentType has the following Parts by default.

  • CommonPart
  • BusinessUnitPart

BusinessUnitMember

BusineesUnitMember ContentType is not a creatable ContentType by default. It has the following Parts by default.

  • CommonPart
  • BusinessUnitMemberPart

OrchardCollaboration.Project module

ContentParts

FolderPart

This Part represents a folder in the wiki part. A folder can contain other sub folders or wiki items.

AttachToFolderPart

This Part is used to attach content items to folders.

FollowerPart

This part allows users to follow a ContentItem. By following a ContentItem, users will receive notifications in case of any change in the folder.

FolderListPart

This Part is used to represents the folders in a tree structure. The Part filters the folder based on the permissions of the current user. It means it only represents folders that the user has access to them.

ProjectListPart

This Part is used to represent the list of projects that the current user has access to them. Alongside any Project, the Part represents the list of latest active users in the project and it was the main reason that we decided to have a special Part for it, instead of using a Projection.

ProjectTitleAndMenuPart

This Part must be used for items who are attached to a project. The Part injects Project Title and necessary linkbar - (menu) to the rendered shape.

RootFolderItemsPart

This Part represents the wiki items who are not bound to any Folder.