Eric’s adventures in Sharepoint, technology, and life.
Email icon Home icon
  • Employee Training template, official release!

    Posted on July 2nd, 2009 Eric 50 comments

    After developing this custom template for an internal project, I knew I would have to do some work to be able to recreate and reuse this internally. After a couple weeks of tinkering, deploying and troubleshooting, I have what I believe to be an easily deployable template to manage internal registrations for employee training. After about 10 to 15 minutes of simple configurations, you can have this up and running in your environment.

    All that is needed is Sharepoint Designer access and server access if you wish to deploy the STP file as a top level site in a collection. If not, the file can be uploaded to the Site Template Gallery on an existing collection and deployed as a new site.

    This should be fully WSS compliant, if you have MOSS you can take advantage of the audience features and security trim things a little cleaner. Link to the original template, link to Dessie’s updates and bug fixes.

    I have packaged this into 2 different STP files. Both contain configuration instructions and deployment batch files. One contains HTML emails the other contains more “stock” Sharepoint Designer work flow emails. Choose which ever you’d like.

    P.S. – This looks great with the new Event Planning theme that was released by Microsoft. If you go that route, you’ll want to add some style tags to change the page titles to black so they are readable (and the reason why I included Heather Solomon’s clean calendar CSS file, that theme calendar isn’t styled).

    Edit:7/15/09
    I believe I have tracked down and resolved the problem people were having deploying the template and creating sites and site collections off of it. I have updated the zip file above. For support reasons, I am eliminating the HTML email version of the download. Please refer to this post on how to configure HTML emails. Sorry, it is too difficult to try and maintain 2 different installations and ensure they are all in sync with the bug fixes.

    Post to Twitter Post to Plurk Plurk This Post Post to Yahoo Buzz Buzz This Post Post to Delicious Delicious Post to Digg Digg This Post Stumble This Post

     

    46 responses to “Employee Training template, official release!” RSS icon

    • Eric this is awesome!! Great job :-)
      Any chance I can get you to do a BackSeat Driving demo of the solution…. pretty please ;-)
      Michael

    • Getting the following error: The template you have chosen is invalid or cannot be found.

      Ran deploy.bat, got the error, ran retract, then went into website, site actions\site settings\modigy all site settings\site templates and uploaded. Then I try to create a new site, using the CustomEmployeeTraining templact and I get the same error.
      Any help would be greatly appreciated.
      thanks,
      -bruce

    • Eric – awesome job!!

      I’m impressed

      • Hmm…I’m getting a few errors when trying to use the template.

        On a MOSS install (either through the installation batch file, or via upload to template gallery), when I attempt to create a site from the template (top-level or subsite, both show the same error), I get an error of:

        “The template you have chosen is invalid or cannot be found”.

        On a WSS install however (again, trying both batch file install and upload to gallery), I can successfully create the site, but when attempting to begin the customizations detailed in the documentation, I get the following error when trying to open and modify the “custom.master” file:

        “The server could not complete your request. Contact your Internet service provider or Web server administrator to make sure that the server has FrontPage Server Extensions or SharePoint Services installed. For more specific information, click the Details button.”

        Clicking on the details button shows the message:

        “soap:ServerServer was unable to process request. —> Field type ContentTypeIdFieldType is not installed properly. Go to the list settings page to delete this field.”

        Any thoughts on the errors?

        I can check-out the masterpage in SPD without any problems, just cant edit it – also, I tried downloading the file manually from the gallery to do the edits, but when trying to upload it back, I got the same error.

        No clue on the MOSS-specific problem either – why would it let me create a site in WSS but not in MOSS? (Seems odd)

        - Dessie

        • That is the second time this has been brought up. I’ll do some more investigation and troubleshooting and see if I can replicate the issue and report back.

    • Arik Fletcher

      Awesome work Eric!
      Definately be using this with my clients. :-)

    • Hi Eric,
      Thanks for your work here. I am hoping to use this. The issues I have are:

      1) If an instructor is not entered when entering a new course, a Sharepoint error occurs. When an instructor is entered, it works as expected.

      2) I am frequently asked to authenticate against collab.ecu.edu, for example when opening the custom page for Administration, although cancel allows me through.

      Otherwise, it looks good and I am pleased that unregistering a student adds back to the total number of seats available.

      • I’ll double check to see if something is set to required behind the scenes. I know the workflows kinda bomb out if the instructor isn’t specified.

        For the collab authentication, there is a content editor web part that needs updated on the administration.aspx page. I forgot about this and it was brought to my attention yesterday/today. If you go into page edit mode and edit the CEWP to point to the proper location of the javascript file or jquery location (Iforget offhand which it is), you’ll be all square.

      • I found the issue with the instructor. The field is required but it doesn’t reflect that on the form. You can either set this field to not required on submission (not recommended) or update NewForm.aspx in SPD. Add

        <span class="ms-formvalidation"> *</span>

        after Instructor and before the closing nobr tag.

    • Hi, Eric…

      GREAT JOB! Really! I suppose that these templates only can be installed in a English language version of MOSS.

      Is there any possibility to get the templates in Spanish? Or maybe you can point me in the right direction to translate myself the templates to upload them in a Spanish language version of MOSS?

      Thank you very much!

      Best regards,

      • You are correct, this is for an English version. The site admin template this is based off of was English only from Microsoft.

        Unfortunately, like most Americans I only speak English. I’ll put something out there for a translator.

    • Eric I have also noticed that I am getting errors rendering the customer.master page as well.

      In design view there are two errors
      Error Creating Control – IdWelcome
      Error Creating Control – IdDesignModeConsole.

      I fixed those by altering

      to

      I am also having the same issues that Dessie is reporting, but I am only using WSS.

      • Ah, it’s stripped the code pieces out.

        On line 5 and line 6 of the custom.master page code.

        Add ~/ to the begining of the src.

        • I see those changes reflected in my current build. Are you looking at the current release?

          The updated documentation has a work around on how get the template up for WSS. Thanks to everyone for helping me find and debug some of these issues.

    • When trying to open the custom.master page, i get the error below.

      “The server could not complete your request. Contact your Internet service provider or Web server administrator to make sure that the server has FrontPage Server Extensions or SharePoint Services installed. For more specific information, click the Details button.”

      Clicking on the details button shows the message:

      “soap:ServerServer was unable to process request. —> Field type ContentTypeIdFieldType is not installed properly. Go to the list settings page to delete this field.”

      Any thoughts on the errors?

      Using WSS 3.0

      • Have you followed the instructions in the 1.2 version? There is a slight workaround that needs to be done currently for WSS users until I can resolve it in a future release.

        • Hi Eric,

          I get the above error when trying out step 1 of the instructions included in version 1.2, after deployment.

          WSS Users Only: Open custom.master. Copy all code from code view……….

          Thanks in advance.

    • Eric,

      This looks great! There is a lot of potential with this template in my environment.
      I have one question that your expertise may be able to answer. In my environment employee registration for a course must be approved by a supervisor. The ideal process would be when an employee registers for a course they would have to select their supervisor. When they complete registering for a course, workflow would send the employees supervisor a request for approval. Once approved by the supervisor the employee is listed as a registrant.
      There is likely much more to this but my past experience in other environments leeds me to belive that this is not a unique thought. For internal training, supervisor approval is always required. The supervisor determines if the employee actually needs the training they are registering for. As well, staffing may limit if an employee can attend or not on the date the training is held.

      Hope this makes sense.

      Thank you.

      • That does make sense. Off hand this is what I think, turn on content approval on the Registrations list. When a user registers for an event, a task would go out to the supervisor. If approved, the user remains in the list, if it is rejected, the registration workflow removes them. I think it would be doable, as I have time, I can try and come up with something.

        Approval isn’t necessary for the workshops this was born out of, the original template from Microsoft was this way as well. I can see where it would be necessary.

        The next couple weeks are extremely busy for me, after that I’ll see if I can get a “add-on” guide out to show how to build an approval system into it.

    • Hello! Excellent site, keep up the good work!

    • Eric,

      Everything seems to be working fine except for the Upcoming Couses about to Fill Up webpart. Are there any tips you can give me to get this active?

      Thank you.

    • Sorry, I should be more specific. The Vacancy Meter column in the Upcoming Courses about to Fill Up displays code.

      I appologize – Friday, looking forward to the weekend.

      • Go into page edit mode on the main page, ensure the web part text2html properly points to the file in the javascript library. If it doesn’t exist, add a content editor web part, hide it, and point it’s content sourse to the txt2html.js file in the JS library, /sites/yoursitecollection/js/txt2html.js.

        I don’t think placement matters, but to be safe, ensure it is located after/below the upcoming courses about to fill up web part.

        • I am having the same problem. The following code is appearing in the box where the meter should be: =CONCATENATE(” ”)

          I have double checked where the txt2html.js file (content editor web part) is pointing towards and it is still just showing the code, not the meter.

    • Awesome work. I am having an issue with the permissions though. I set up the Registrant permission level, and the Registrant group… however, I see that if someone clicks on a course in the calendar.. they still have the ability to delete a class or edit the number of seats in a class. Also, the number of available seats does not seem to be decreasing. I am guess that the workflow is not executing correctly, however what is strange is that if I try to register for the class again, I will get a message saying I am already registered for the class. Any ideas?

      • Eric, Ignore the post above- It is decreasing correctly.. For some reason, it was just taking time to update the count. I waited a couple of minutes, refreshed the page, and the number of available seats was showing correctly. I am still having an issue with registrants being able to delete and edit courses… again, it might be something I did wrong in setting up permissions.

        • There is some meat to the registration workflow so it can take a minute or 2 to run sometimes.

          Can you list the permissions you have for the Registrant group? Is it configured as I described? They need the ability to add and delete so that when the workflows run, information is updated on the Course list, populating attendance totals.

          You’ll have to figure out how you’d like your navigation structure to be. Once you figure that out, remove all toolbars so that registrants cannot delete or edit courses. Recently I’ve done this with custom lists audienced at registrants and administrators and h ave hidden the quick launch/left navigation area completely. I believe I have the toolbars enabled by default so you can easily navigate through the site while configuring it.

          • Thanks Eric. I did verify the permissions were like you said. What I ended up doing was dropping a content editor web part on the DispForm.aspx page under the Courses List. (BTW, the content editor web part doesn’t initially show up in the web parts library, I had to upload the dwp.. not sure if that is just my server/site collection settings, or if everyone has the same issue). Anyway, I dropped a content editor web part and used the following code between script tags to hide pretty much everything on that registration/unregistration page.

            function hideFormMenuItems()

            {

            var titleToHide=”";

            var anchorTag;

            var allAnchorTags = document.getElementsByTagName(’a');

            var aryHideElements = ['Alert Me','Edit Item','New Item','Delete Item','Manage Permissions','Workflows','Open'];

            for(var i = 0; i < aryHideElements.length; i++ )

            {

            titleToHide = aryHideElements[i];

            if(titleToHide!='Export Event')

            {

            for (var j = 0; j < allAnchorTags.length; j++)

            {

            anchorTag= allAnchorTags[j];

            if (anchorTag.title.indexOf(titleToHide)!=-1)

            {

            anchorTag.parentNode.parentNode.parentNode.parentNode.

            parentNode.style.display="none"; anchorTag.parentNode.parentNode.parentNode.parentNode.
            parentNode.nextSibling.style.display="none";
            break;
            }
            }
            }
            }

            }

            _spBodyOnLoadFunctionNames.push("hideFormMenuItems");

            That seemed to work for be. Again thanks for all your hard work!

            • Glad you got it sorted out. The toolbars don’t appear on my setup since they are hidden. That is how the base template came from Microsoft, with the ms.toolbar hidden.

    • Thanks for all the great material!

      I’m a novice developer and I’m planning to further modify the Employee Training template to allow instructors to register other users to their courses. Is this going to be a big undertaking for me? Any tips would be greatly appreciated!

      • It was about a 3 month process from when we sat down to talk about it, to build it out, to test it, and revise it. If it was my sole responsibility it would have taken a bit less time to complete. It isn’t difficult, so long as you understand how everything interacts with each other and tweak it to suit your needs.

    • Eric -

      Amazingly good work – and all with no coding(other than javascript)! Do you have any pointers on how I could get the Course DispForm to not show the Edit menu (New Item, Edit Item, Delete Item, etc) to the Registrants group?

      Thanks!
      bcote

    • Eric, this is really awesome! One thing I have been trying to do and have not figured out yet is how to set up recurring classes. In our environment, we offer the same classes generally the same time each month. Hidden in the code for the “New Class” form is the code for displaying the “Recurring/Repeating Event”. It is set so the boxes are not displayed in the form. However, when you unhide them and try to use them you get an error. The reason this is (I believe) is because if you were to create a datasheet view of the “Courses” list, you will see a field titled “Recurrence” and that field is set as a read-only field. I have been searching the internet all over trying to figure out how to change that without having back-side server access.
      Any ideas?

      Thanks!

    • Eric,
      I am having difficulty getting the survey charts to display.In the hidden jschart load webpart, it currently is not pointing to any js, but I did try pointing it to both jscharts.js and charts.js with no luck. I saw that the Graphs of survey data pointed to charts.js

      Any suggestions?

    • Hi Eric,

      I’m having the same problem as a couple of other people on here are. When I try to open custom.master I get the following error:

      “The server could not complete your request. Contact your Internet service provider or Web server administrator to make sure that the server has FrontPage Server Extensions or SharePoint Services installed. For more specific information, click the Details button.”

      Clicking on the details button shows the message:

      “soap:ServerServer was unable to process request. —> Field type ContentTypeIdFieldType is not installed properly. Go to the list settings page to delete this field.”

      Have you found any solutions to this problem?
      I’m running WSS 3.0.

      Thanks for the help!

      Colin

    • Beth Lancaster

      Uploaded the template from the download on MS site. It shows up in the list of templates on the admin area but doesn’t show as an option to select in the the site creation area. Any ideas?

      • Beth, you mean you cannot create new site collections from the template you deployed on the server? Or you cannot create subsites in existing collections?

    • Great Template! However I seem to be missing something on the Teaching History page. These require some modification for the List ID? I didn’t see this in the 1.2 instructions.

      I also tried opening it up in SharePoint Designer states that there is an invalid URL parameter.

      Would love to get that working.

      Thanks!

      • Those modifications were discussed by Dessie in the original blog posts about this template. See my previous posts on the training template for links to his articles.

    • This is very good. We deployed a site. What can we do to change the survey questions?

      Thanks
      Jie

      • Jie -

        The survey questions are just part of the Course Surveys list. Additional questions can be added and existing columns can be modified. You may need to update the NewForm.aspx page in SPD to reflect changes in questions since it’s using a CustomList Form.


    4 Trackbacks / Pingbacks

    Leave a reply