Hi Itay, I may be wrong about this and there may be an easier way -- hopefully someone will point that out -- but back to your original question then, the way that occurs to me would be conditional sequences. I'll share an example here in case that will help you assess if this is the right approach for what you want to do and perhaps provide a bit of guidance on how this works. If you end up with specific instrucitons on how to do this perhaps you can reply to me off-list for more detail.
We make extensive use of conditional sequences in our lab courses to prevent students from accessing the postlab if they have not correctly entered their data into the Lon-Capa lab. Below is a graphic representation of what that looks like for one of our prelab -- lab -- postlab sequences. This screenshot comes from the "advanced editor" interface for creating the sequence. The three "Res" blocks correspond to the prelab problem, the lab problem, and the postlab problem. The conditional references the lab problem (mapalias "inlab9") to see if all of the answers there have been answered correctly and if not, blocks access to the postlab problem. It looks like this: (((&EXT('user.resource.resource.210.11.awarddetail','inlab9') eq 'APPROX_ANS') || (&EXT('user.resource.resource.210.11.awarddetail','inlab9') eq 'EXACT_ANS')) && ((&EXT('user.resource.resource.220.21.awarddetail','inlab9') eq 'APPROX_ANS') || (&EXT('user.resource.resource.220.21.awarddetail','inlab9') eq 'EXACT_ANS')) && ((&EXT('user.resource.resource.220.22.awarddetail','inlab9') eq 'APPROX_ANS') || (&EXT('user.resource.resource.220.22.awarddetail','inlab9') eq 'EXACT_ANS')) && ((&EXT('user.resource.resource.220.23.awarddetail','inlab9') eq 'APPROX_ANS') || (&EXT('user.resource.resource.220.23.awarddetail','inlab9') eq 'EXACT_ANS')) && ((&EXT('user.resource.resource.220.24.awarddetail','inlab9') eq 'APPROX_ANS') || (&EXT('user.resource.resource.220.24.awarddetail','inlab9') eq 'EXACT_ANS'))) || (&EXT('user.resource.resource.210.solved','inlab9') eq 'excused') (The last line of the conditional provides a way for the instructor to allow access to the postlab for a student with an excused absence from the lab.) Your conditional may be quite a bit simpler being focused solely on whether or not the problem has its answer available. I have not done that in a sequence before, but I have referenced it within a problem and it looks like this: $external::datestatus eq 'SHOW_ANSWER' I am NOT sure how (or if it's possible) to use that type of reference with a mapalias and hope someone else can help with that? The one other thing I'll point out about my sequence below is the path from the lab directly to Finish. That provides a path so as to not conditionally hide everything else in the course (as I once did when I first started working with sequences). In your case, if I understand correctly, your sequence would contain two resources: the problem and the solution and the conditional would come between them and would verify that the answer was available for the problem before giving access to the solution. I imagine that you could have a string of problem and solution pairs if you provided also a direct path from problem to problem so that all the problems were unconditionally available while each solution had a conditional path from its respective problem. My very long .02. If that seems like a viable approach for what you want to do, I'll be happy to answer additional questions off-list. Doug [cid:image001.png@01D3B56C.DFD6FB60] Douglas Mills Director of Instructional Technology Department of Chemistry University of Illinois From: LON-CAPA-users <lon-capa-users-boun...@mail.lon-capa.org> on behalf of Itay <it...@nospammail.net> Reply-To: Discussion list for LON-CAPA users <lon-capa-users@mail.lon-capa.org> Date: Monday, March 5, 2018 at 3:37 PM To: Discussion list for LON-CAPA users <lon-capa-users@mail.lon-capa.org> Subject: Re: [LON-CAPA-users] How to automatically display solution for a problem? Doug, Lucas, and Justin, Thank you very much for your reply. This is exactly what I wanted, and will employ, for problems that I code. What can be done for problems that others have authored? Thanks Itay On Mon, 5 Mar 2018, at 23:08, Justin Gray wrote: Here is a sample problem that uses a block for after solved: <problem><startouttext />Enter the correct answer 42 to see the hidden text or image:<endouttext /> <numericalresponse answer="42"> <textline readonly="no" spellcheck="none" /> </numericalresponse> <solved> <img encrypturl="no" /><startouttext /><p>Hooray!</p><endouttext /> </solved> </problem> Note that the solution could be, for example, a text/HTML block or an image. Justin Justin Gray | Senior Lecturer Department of Mathematics | Simon Fraser University 8888 University Drive, Burnaby | V5A 1S6 | Canada Tel: +1 778.782.4237 [cid:image002.png@01D3B56C.DFD6FB60] On Mon, Mar 5, 2018 at 1:03 PM, Mills, Douglas G <dmi...@illinois.edu<mailto:dmi...@illinois.edu>> wrote: HI Itay, There these very handy "Blocks" you can insert in your problem code and I think the "postanswerdate" block will do what you want, but I'm including all four that can be found from the Insert menu on the "colorful" editor. I would describe these as predefined conditionals so the postanswerdate pair, for example, will only display what is within the opening and closing tags after the answer has become available. If you put your link to a solution PDF inside a pair of postanswerdate tags, that should do what you're looking for. The others work analogously I believe. <postanswerdate></postanswerdate> <preduedate></preduedate> <solved></solved> <notsolved></notsolved> Doug Douglas Mills Director of Instructional Technology Department of Chemistry University of Illinois From: LON-CAPA-users <lon-capa-users-boun...@mail.lon-capa.org<mailto:lon-capa-users-boun...@mail.lon-capa.org>> on behalf of Itay <it...@nospammail.net<mailto:it...@nospammail.net>> Reply-To: Discussion list for LON-CAPA users <lon-capa-users@mail.lon-capa.org<mailto:lon-capa-users@mail.lon-capa.org>> Date: Monday, March 5, 2018 at 2:34 PM To: Discussion list for LON-CAPA users <lon-capa-users@mail.lon-capa.org<mailto:lon-capa-users@mail.lon-capa.org>> Subject: [LON-CAPA-users] How to automatically display solution for a problem? Hi I failed to find a solution to this seemingly simple and universal issue. Conditional sequences might be the mechanism I am looking for, but I could not find enough details and examples of implementation. Assume I prepared and published a problem 'some.problem', and a corresponding solution 'solution.pdf'. I imported the problem into a course and set the parameters duedate and answerdate. I am looking for a mechanism that will allow me (1) to include a reference to the 'solution.pdf' inside 'some.problem'; and (2) will display 'solution.pdf' to the students only when 'answerdate' is reached and the answer for 'some.problem' is displayed. And I would like to achieve this for every problem inside a folder and/or a course. I would appreciate any hints on how to achieve that. Thanks in advance, Itay _______________________________________________ LON-CAPA-users mailing list LON-CAPA-users@mail.lon-capa.org<mailto:LON-CAPA-users@mail.lon-capa.org> http://mail.lon-capa.org/mailman/listinfo/lon-capa-users _______________________________________________ LON-CAPA-users mailing list LON-CAPA-users@mail.lon-capa.org<mailto:LON-CAPA-users@mail.lon-capa.org> http://mail.lon-capa.org/mailman/listinfo/lon-capa-users
_______________________________________________ LON-CAPA-users mailing list LON-CAPA-users@mail.lon-capa.org http://mail.lon-capa.org/mailman/listinfo/lon-capa-users