The ContributionsModel is complex and has many requirements where every ContributionTypeModel has a set of rules for what the field names are and which fields are required.
I need to design the ContributionDetailPage so that when certain selections are made, the UI reflects that selection's requirements.
To facilitate this, I manually read out all the possible values and mapped out the selections with field names/value requirements:
* NOTE: Type, Areas, Title and Date all required
* If the Activity type is follow by [url R], a Url is required for that Contribution Type
* If the field is followed by an [R], it is a required field for that ContributionType
* If there are only 2 fields for the Activity Type, then it's AnnualQuantity and AnnualReach
* If there are 3 fields then it's AnnualQuantity, SecondAnnualQuantity and AnnualReach
-Article
Number of Articles [R]
Number of Views
-Blog Site Posts [url R]
Number of Posts [R]
Number of Subscribers
Annual Unique Visitors
-Book (Author)
Number of Books [R]
Copies Sold
-Book (Co-Author)
Number of Books [R]
Copies Sold
-Code Project/Tools [url R]
Number of Projects [R]
Number of Downloads
-Code Samples [url R]
Number of Samples [R]
Number of Downloads
-Conference (booth presenter)
Number of Conferences [R]
Number of Visitors
-Conference (organizer)
Number of Conferences [R]
Number of Visitors
- Forum Moderator
Number of Threads Moderated [R]
Annual Reach
-Forum Participation (3rd Party Forums) [url R]
Number of Answers
Number of Posts [R]
Views of Answers
-Forum Participation (Microsoft Forums) [url R]
Number of Answers [R]
Number of Posts
Views of Answers
-Mentorship
Number of Mentees [R]
Annual Reach
-Open Source Project(s)
Project(s) [R]
Commits
-Other
Annual Quantity [R]
Annual Reach
-Product Group Feedback
Number of Events provided [R]
Number of Feedbacks provided
-Site Owner
Posts [R]
Visitors
-Speaking (Conference)
Talks [R]
Attendees of talks
-Speaking (Local)
Talks [R]
Attendees of talks
-Speaking (User group)
Talks [R]
Attendees of talks
-Technical Social Media (Twitter, Facebook, LinkedIn...) [url R]
Number of Posts [R]
Number of Followers
-Translation Review, Feedback and Editing
Annual Quantity [R]
Annual Reach
-User Group Owner
Meetings [R]
Members
-Video [url R]
Number of Videos [R]
Number of Views
-Webcast
Number of Videos [R]
Number of Views
-Website Posts [url R]
Number of Posts [R]
Number of Subscribers
Annual Unique Visitors
The
ContributionsModel
is complex and has many requirements where everyContributionTypeModel
has a set of rules for what the field names are and which fields are required.I need to design the
ContributionDetailPage
so that when certain selections are made, the UI reflects that selection's requirements.To facilitate this, I manually read out all the possible values and mapped out the selections with field names/value requirements: