Partecs Blog Architecture
The Blog belongs to an individual within the system. The blog is a mode of personal expression where the user, once s/he has interacted with more users within the system, forms his/her social network through the blog. While the testimonials and similar interest searches form the weak network links, the blog becomes the site of strong social networking and expression. Ideally, because the blog is a personal expression it should be separated from the official system by domain name. However, because the blog identity is strengthened by the representative identity on the profile page, there should be some visual co-ordinates which allow for the linking to happen. This can be in terms of either the layout of the blog, with hyperlinks that refer back to the profile page, user icons and more importantly user buttons which help identify a user from an object. The blog should generally be allowed to be private and not be moderated. However, within the blog system, there can be official communities that correspond to the root level groups and these can be moderated and supervised by the root level moderators.
User Stories : #242, #243, #244, #245, #246, #247, #248, #249, #250, #251, #252
Acceptance tests : Partecs Blog
Partecs Blog will be based very much on the Easy Blog Product that is under the GPL GNU License. It will take some of the interesting ideas from Easy Blog and incorporate the features required by Partecs Blog. In many ways it will also be a simplified version of Easy Blog.
Partecs Blog Objects
Blog Catalog
The blog catalog would catalog only blogs and blog posts. This should speed up searching and sorting blog posts and blogs.
The indexes for the catalog are is follows.
- id
- path
- title
- text
- date
The metadata for the catalog are as follows
- id
- path
- title
- date
Blog Tool
The blog tool will contain utility methods for Partecs Blog. It will also methods to manage member interests. The member interests is stored in 2 dictionary based data structures. They are as follows.
- interests (dictionary)
- keys - are the interests strings
- values - are a list of members that have the same interest
- member_interests (distionary)
- keys - are the member names
- values - are a list of interests added by the member
The following methods are used to handle member interests.
def updateInterests(self, interests=[]):
"""Updates member interests.
This method must update both interests and member_interests data structures. """
def getInterests(self):
"""Returns current authorised member's interests."""
Partecs Blog
Both Partecs Blog and Partecs Blog Posts will share a common workflow. This workflow is defined below.
The following methods are defined on Partecs Blog
def addToNetwork(self, member_id):
"""Assigns a local role Authorised User to the Blog."""
def deleteFromNetwork(self, member_ids=[]):
"""Deletes from the member_ids the local role Authorised User."""
def listNetwork(self):
"""Returns all the members with a local role Authorised User."""
def addFriend(self, member_ids=[]):
"""Assigns a local role Member to member_ids in the Blog."""
def deleteFriend(self, member_ids=[]):
"""Deletes from the member_ids the local role Member."""
The following templates would be built for Partecs Blog.
- blog_view.pt - listing the posts in the blog
- blog_edit.pt - Blog configuration page
- blog_contact.pt - The blog contact page
- blog_archive.pt - A specialized blog archive view
- blog_manage_network.pt - A place where blogs network may be managed
Partecs Blog Post
The Partecs Blog post has the following templates
- post_view.pt - Post view page
- post_edit.pt - Post edit page
Partecs Blog and Partecs Blog Post Workflow
Permissions controlled by the workflow
- Access contents information
- View Blog Posting
- Reply to item
All permission have to be acquired from it's parent.
States
- Private
- Access contents information - Owner
- View Blog Posting - Owner
- Reply to item - Owner
- Public
- Access contents information - Anonymous
- View Blog Posting - Anonymous
- Reply to item - Anonymous
- Network
- Access contents information - Authorised User
- View Blog Posting - Authorised User
- Reply to item - Authorised User
- Customised
- Access contents information - Member
- View Blog Posting - Member
- Reply to item - Member
The flowing portlets would be required
Blog Link - Main blog links
Blog Calendar - A calendar that can be used to navigate the blog archive
Blog Archive - Existing Blog posts will have the links of their month and year displayed. (May 2005)
