CRM day 1 : Some simple ideas explained

Today I will not actually program any stuff, but i will layout some basic stuff on paper this blog.

First draft :

I will start from the default object properties :

DefaultObjectProps :

  • id : unique identifier
  • description : text description (for dropdownlists etc)
  • created : date of creation
  • created by : user
  • modified : date of last modification
  • modified by : user

Then the default act_as_props

DefaultActAsProps < DefaultObjectProps

  • Parent (id, type)

ActAsSecured < DefaultActAsProps

  • OwnerUser : user
  • OwnerGroup : group
  • UserRights,GroupRights,AnonymousRights : CRUD bools
  • implements :
    • bool Allow Read (type,int id)
    • bool Allow Write (type,int id)
    • bool Allow Create (type,int id)
    • bool Allow Update (type,int id)

ActAsTree < DefaultActAsProps

ActAsPageable < DefaultActAsProps

ActAsSortable < DefaultActAsProps

ActAsFilterable < DefaultActAsProps

ActAsTaggable < DefaultActAsProps

ActAsSchedule < DefaultActAsProps

ActAsCommentable < DefaultActAsProps

ActAsRule < DefaultActAsProps

ActAsFileContainer < DefaultActAsProps

An object instance can be represented in two ways

  • PresentAsRow : Object row view
  • PresentAsForm : Object Form view

These rowpresenters will be used in a form. The default form view will be modified by the act-as modules

For example :

  • If an object implements ActAsTree, the grid can be modified into a treeview
  • If an object implements ActAsTaggable, each object can be tagged
  • If an object implements ActAsSchedule, the objects can be shown in a calendar view
  • ... 

I hope you get the idea from these examples...

That is it for today... See you again tomorrow...