How do I set up a choice column in Windows Sharepoint Services 3 SP2 that contains the date/time and user identity that selected a particular choice? - sharepoint

We are using WSS 3 SP2. I'd like to preface this by saying that while I have been programming for some time, I have not done any Sharepoint development before now, so I am very much a newbie in that respect.
Basically what we have is a Sharepoint wiki that contains support documentation about each of the various applications throughout our organization. Each application has a wiki page containing some of the more pertinent info (vendor support #, etc), and these wiki pages are created from a template.
Currently, there is one "choice" column on the template that lists all of our department work groups, and users can edit the individual wiki pages to check off their particular work group after they've verified that the relevant wiki page information is correct. Example:
[Checkbox] Help Desk
[Checkbox] Programming
[Checkbox] Networking
What I've been tasked with is adding functionality to the template column that does the following:
list the date that each checkbox was checked
Indicate the user identity that checked the checkbox (logged on username is fine)
display the percentage of checkboxes that have been checked
Example:
Application Verification: 66%
[Checkbox] Help Desk - verified by JohnDoe on 8/26/10
[Checkbox] Programming - Unverified
[Checkbox] Networking - verified by JaneDoe on 7/21/10
I have been playing around with web parts trying to get my feet wet, but I don't know enough about Sharepoint yet to understand if a new web part is the way to go or if I can extend the choice column to do this.
What is the best way to accomplish this with Sharepoint? Can someone point me in the proper direction?

The direction I would start in would be developing a custom field, that would store your info internally in some sort of custom structure (XML, comma-separated, whatever). Then in the render control you will need to serialize and deserialize this value into your representation. Take a look at the following tutorial to get you started on custom fields:
http://vspug.com/nicksevens/2007/08/31/create-custom-field-types-for-sharepoint/

Related

SharePoint -how to show List data on a custom web part/ web user control?

I am trying every option to show List data on a web part and web user control, but I am not finding any code examples on this. What namespace should I import?
I am using WSS 3.0 and I will later upgrade to MOSS 2007. I am aware of the SmartPart project and I can use it in my environment.
Thank you very much for your help.
You should first look at the Data View Web Part (DVWP) to see if that will fit your needs. With some XLST/JavaScript you can get very creative with this.
Data View Web Part Basics
Otherwise you need to understand two things :-
Creating a Basic web part
This is for VS2010/SharePoint 2010 but you will find similar walkthroughs for other versions such as :-
http://www.codeguru.com/csharp/.net/net_asp/webforms/article.php/c12293/
http://channel9.msdn.com/posts/kmcgrath/Creating-a-Web-Part-for-SharePoint-by-Using-a-Designer/
http://www.codeproject.com/KB/sharepoint/Generic_Webparts.aspx
Accessing SharePoint List data
Then once you've got your basic web part you need to know how to use the object model to open a list and iterate through the items in a list to display the data in whatever funky way you want.
Accessing list items

Customize MOSS People Picker (PeopleEditor) Control

I have modified my MOSS 2007 configuration to query a given target AD successfully. I would like to show some custom LDAP fields (such as country) in the PeopleEditor control and allow users to search against these fields. Can someone point me towards useful resources/tutorials showing how to do this?
Thanks, MagicAndi.
You need to inherit from the EntityEditor control (just as PeopleEditor does) and write your own queries and validation.
Some background (read community content):
EntityEditorWithPicker
PickerDialog
SimpleQueryControl
Along with these links and carefully studying the PeopleEditor control with Reflector, another good resource is this blog post from Igor Kozlov. There's a less detailed but still useful example on MSDN here.
I'm working on a CodePlex project that queries any given Active Directory from a people picker. It's well documented and combines techniques from the various references out on the web (giving credit of course). Hope it helps someone as well!
A first step should be to map the fields form the AD to a attribute in the SharePoint user profile. You can do this in the configuration of the Share Service Provider (Central Administration > Shared Services > User Profiles and Properties).
There you add a new attribute and define which AD field should be mapped to it. You can also define which fields the users are allowed to override (but only in SharePoint, it's only a one ways synchronization) and which one are read only.
This blog post shows how to configure the SharePoint search to be able to search users by a custom attribute in the user profile.
I hope this will point you into the right direction.

Sharepoint - How to agregate Announcements from sub-sites onto main site

I am new to Sharepoint (WSS 3.0) and have the task of creating a company intranet. This site will have a number of sub-sites - each owned by a different department. Each of the sub-sites will have an 'Announcements' webpart on their top-level page.
What I want to do is to take the most recent announcement from each of those sub-sites and display them on the main top-level site - the idea being that anyone in the company can see at the top level what is coming up in each of the departments.
My question is, what is the best way to do this? and does any one have any links that can point me in the right direction.
Many thanks.
In case you have MOSS, you should use Content Query Web Part here is the way to do it.
You can achieve the same by using Data View Web Part.
The third option is to create a custom code to do that, but since you mentioned that you are new to SharePoint I would advise against since that might be a bit complicated and it cannot be compared to the strength of built-in web parts.
The thing you should consider here is security. If a UserA from DeptA does not have permission to read Announcements from SiteB then the thing you are building does not make much sense because information from SiteB will not be visible to this user.
Along with the Toni answer you can try the SPDataSource & SPGridView if custom code is okay.

To Create an Employee directory

We are researching the various options that exist in our environment to create an Employee Directory. We have a SharePoint portal, AD and recently moved from Lotus Notes to Exchange. Our current employee search is a custom Notes DB that has since been retired.
Since moving to SharePoint an year ago, we've used a custom list using SharePoint Profiles that are updated from AD. But the simple list interface isn't very user friendly and is very slow. Sone of the requirements include type-ahead, pictures, and details of skills/certifications and other demographic information etc. We are considering building an ASP.NET or SilverLight application that can consume the information in the SharePoint list. With the introduction of Outlook and the Global Address List, we are now wondering if it might be easier to build something within Outlook.
Has anybody traveled a similar path and what would you advice us to do?
Microsoft has a huge set of offerings for Collaboration and Social Computing in Sharepoint.
See this document, pages 8 and 9 for information about features related to an employee directory, including details of skills/certifications and other demographic information.
A la carte availability of individual features (such as People Profiles and People Search) and pricing may be an issue, but you may want to look into buying something rather than building it (if you can get the pieces you want for a price you can afford).
Sharepoint can connect with Outlook to keep the lists synchronized if you want to use outlook. And there are definitely a lot of different ways to change the way the lists are presented in the Sharepoint portal to make them more user-friendly. Having those details on the portal will certainly be a boon when combined with the powerful search and indexing features in SharePoint so you can identify employees based on their profile details easily.
We use the people search for this pretty effectively. We populate data in AD, then connect profile properties to AD attributes. That's only if you have MOSS, though. If you're working with WSS, you'll have to build something more custom.
One gotcha, though, is that the People Search out of the box doesn't easily do partial searches (i.e. searching for "john" doesn't match "johnson"). That's a big downer in my mind. You can use Ramon Scott's approach of a Content Editor Webpart with a form and some Javascript to work around it, and you can also get there via the advanced search box (albeit indirectly), but it sure would be nice if it were easy to make the default search box do partial name searches.
I recently just discoverd a somewhat easy visual basic script that draws information from the active directory where you can specify which OU to draw from where it displays all user information in a simple .HTM page. it includes a search bar, recognizes patterns (address) (company telephone number) etc... If you would like i can post it for you. you only need to fill in a few sections (display name for directory, OU, OU display, and tags) and you can always change the way things look too.
This should be taken care of by using the My Site feature that's available within SharePoint. You will then be able to search SharePoint users by skills, certifications, projects, and educational qualification.
Please refer to the SharePoint Planning and Deployment material on TechNet for more info.
SH.

SharePoint 2007: How to Restrict Access at the Field Level?

Is it possible in a SharePoint 2007 list (MOSS, though I don't think that this is Enterprise Edition) to allow users in one SharePoint group to edit values in some fields and users in another group to edit values in the other fields?
From all the searching I've done, this does not appear to be possible, so as a fallback I'll accept answers that suggest the best way to accomplish something like this (e.g. maintain the items in separate lists, linking them by ID).
I do not have access to Central Admin, but I do have Full Control of the site. Also, this site was not configured for custom code, so besides changing list settings (and site settings) I can make changes via SharePoint Developer (but not Visual Studio).
A big THANKS in advance!
Steve
You are correct that it's not possible to set field-level permissions without custom code. Furthermore, you're on the right track thinking separate lists, though you should be aware that SharePoint list lookups are a rather weak correlation. Usable, but not exceedingly robust.
For presenting the combined data you'll want to look at SharePoint Designer's joined subviews.
Have a look at Displaying SharePoint Fields by Permission Level by Laura Rogers. This is an approach that uses SharePoint Designer.
Also see the SPListDisplaySetting CodePlex project. This is a site collection feature that needs to be installed so may not be an option.
You can customize Edit Forms for SharePoint 2007 Lists (EditForm.aspx).
With custom list definition and custom edit form you can write code to check the user and show different fields depended on the users permissions.
'a' workaround to get this functionality is to change the content type associated with a list item using workflows.
Like so:
User creates list item in content type A (limited fields).
Workflow starts, changes to content type B (all fields).
Admin gets notified, opens listitem, fills out additional form fields.
And so on..

Resources