My Involvement Widget¶
The My Involvement widget displays links to every organization in which the user is currently enrolled.
The widget utilizes an HTML file, SQL script and Python script as shown below. Since the involvement list is different for each user, Caching should be set to each user.
HTML Code¶
Below is the HTML code for the My Involvement widget. As supplied by TouchPoint, the file name is WidgetInvolvementHTML.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <div class="box"> <div class="box-title hidden-xs"> <h5><a href="/Person2/{{CurrentPerson.PeopleId}}#enrollment">{{WidgetName}}</a></h5> </div> <a class="visible-xs-block" id="{{WidgetId}}-collapse" data-toggle="collapse" href="#{{WidgetId}}-section" aria-expanded="true" aria-controls="{{WidgetId}}-section"> <div class="box-title"> <h5> <i class="fa fa-chevron-circle-right"></i> {{WidgetName}} </h5> {{#ifGT results.Count 0}} <div class="pull-right"> <span class="badge badge-primary">{{results.Count}}</span> </div> {{/ifGT}} </div> </a> <div class="collapse in" id="{{WidgetId}}-section"> {{#ifGT results.Count 0}} <ul class="list-group"> {{#each results}} {{#ifEqual New "New"}} <li class="list-group-item section">{{Description}}</li> {{/ifEqual}} <li class="list-group-item indent"><a href="/Org/{{OrganizationId}}">{{OrganizationName}}</a></li> {{/each}} </ul> {{else}} <div class="box-content"></div> {{/ifGT}} </div> </div> |
SQL Script¶
Below is the SQL script for the My Involvement widget. As supplied by TouchPoint, the file name is WidgetInvolvementSQL.
1 2 3 4 5 6 7 8 9 10 11 12 | select org.OrganizationName, om.OrganizationId, ISNULL(ot.Description, 'Other') as Description from OrganizationMembers om join Organizations org on om.OrganizationId = org.OrganizationId left join lookup.OrganizationType ot on org.OrganizationTypeId = ot.Id left join lookup.MemberType mt on om.MemberTypeId = mt.Id where om.PeopleId = @pid and om.Pending != 1 and org.SecurityTypeId != 3 and isnull(org.LimitToRole, 'Access') in (select RoleName from dbo.Users u join dbo.UserRole ur on ur.UserId = u.UserId join dbo.Roles r on r.RoleId = ur.RoleId where u.PeopleId = @pid) order by ISNULL(ot.Description, 'ZZ'), org.OrganizationName |
Python Script¶
Below is the Python script for the My Involvement widget. As supplied by TouchPoint, the file name is WidgetInvolvementPython.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | def Get(): sql = Data.SQLContent template = Data.HTMLContent orgleadersonly = False for item in Data.CurrentUser.UserRoles: if item.Role.RoleName == 'OrgLeadersOnly': orgleadersonly = True params = {'olo': orgleadersonly, 'pid': Data.CurrentPerson.PeopleId} results = q.QuerySql(sql, params) currentOrgType = "Other" for item in results: if item.Description != currentOrgType: item.New = 'New' currentOrgType = item.Description Data.results = results print model.RenderTemplate(template) Get() |
Latest Update |
04/30/2020 |
Added this article.