User:Woozle/blog/2009-05-13 0856 The Josh Report

From HypertWiki

<hide> <let name=data index=Title>The Josh Report</let> <let name=data index=User>Woozle</let> <let name=data index=TopicsUser>\phoning</let> <let name=data index=TopicsGlobal>\Josh\police</let> <let name=data index=TextAbove>It took me from 5:45 until about 7:15 to get Josh to school. Here's what happened.</let> <let name=data index=TextBelow>Josh was every bit as adamant this morning as he was on Monday (which I didn't post about due largely to exhaustion) in his refusal to get dressed. I started early (5:45) on him, and spent maybe 20-30 minutes playing a sort of passive-aggressive game back at him -- if he turned a light off, I turned it back on; if he put away his underwear, I took it back out and handed it to him again. When I was keeping him from closing the front door and turning off the lights, he hit me repeatedly (I held my temper and didn't hit back).

I finally got tired of it, and called the non-emergency number at the police station to ask if there was anything they could do; they sent an officer around pretty quickly, but "we can't force a kid to go to school" (a new one on me -- is this only because he is "Special Needs"?).

At this point I called the bus to let them know he wouldn't be ready in time for them to pick him up.

Soon after that I lost patience and started wrestling intensely with Josh as on Monday -- I got as far as putting on a fresh pair of underwear, but then my endurance gave out and I simply didn't have the strength to (a) keep him from running away while (b) trying to untangle his pants so I could (c) put my arm through the leg-hole so I could (d) grab his foot and pull it through, even with Sandy helping (she couldn't keep him from escaping, much less keep him from wriggling all over the place).

Finally, I grabbed his clothes, pushed him out to the car (he stopped actively resisting me once we were outside) in his underwear, and drove him to Jordan. He didn't fight me when I pulled his pants on in the car, and he even put on his shoes on verbal request, but he dug his heels into the floor and wouldn't get out of the car.

We hung out in the parking lot for maybe 10-15 minutes until I was reasonably sure the classroom would be open, and then I forced his legs out of the car -- at which point he totally stopped fighting me, and came along into the building and walked himself into class.

I spoke with his teacher, who said that Josh had been fine all last week and that the only notable problem they were having with him was his tendency to walk around the class. I mentioned that for the past few weeks he has been fascinated with a set of Play-Doh containers of different sizes with different-colored lids, and that he actually sits down to work with them -- and we came up with the idea of sending them to school with him.

We will try that tomorrow, if we can get him to go to school tomorrow, doing some research papers, though he may now fight going out to the car since he knows where he will be going.

I've written his case manager (and a large handful of other people) to suggest strongly that we need to be getting him on group home waiting lists and looking into Therapeutic Foster Homes now, but I've said that before so I don't know if it will do any good. All I can really do is keep pestering them, I guess, because that's what everyone says we need to be doing.</let>

<let name=data index=TimeStamp>2009-05-13 0856</let> </hide><if not flag=including>==GetLinkBrief()== <func GetLinkBrief>

   <let name=links.out>
  • </let>
   <let name=links.out append copy=data[Date] />
   <let name=links.out append> :[[</let>
   <let name=links.out append copy=pg_title />
   <let name=links.out append>|more]]:[[Talk:</let>
   <let name=links.out append copy=pg_title />
   <let name=links.out append>|talk]]: </let>
   <if flag=$data[wpage]>
     <let name=wtLink>[[</let>
     <let name=wtLink append copy=data[wpage] />
     <let name=wtLink append>|</let>
     <let name=wtLink append copy=data[Title] />
     <let name=wtLink append>]] § </let>
   </if><else>
     <let name=wtLink>[</let>
     <let name=wtLink append copy=data[URL] />
     <let name=wtLink append> </let>
     <let name=wtLink append copy=data[Title] />
     <let name=wtLink append>]</let>
   </else>
   <let name=links.out append copy=wtLink />
   <let name=links.out append> § </let>
   <let name=text copy=data[TextShort] />
   <if flag=$text></if><else>
     <let name=text copy=data[Text] len=200 />
   </else>
   <let name=links.out append copy=text trim />
   <let name=links.out append> [[</let>
   <let name=links.out append copy=pg_title />
   <let name=links.out append>|more...]]</let>

</func>

ShowRecentLinks(max)

<func ShowRecentLinks max>

 <let name=idx />
 <let name=including val=1 />
 <for table="qryW3_Titles_Catgs" where="(cl_to='Data/links') AND (page_namespace=0)" sort="page_title DESC" limit=$max name=pg hide>
   <let name=pg_title val="@row.page_title" />
   <let name=idx inc />
   <if not flag=$noLoad>
     <load page=$pg_title />
   </if>
   <if flag=$data[Title]>
     <call GetLinkBrief />
   </if><else>
     <let name=links.out>
  • [[</let>
     <let name=links.out append copy=pg_title />
     <let name=links.out append>]]</let>
   </else>
   <let name=links.rtn append copy=links.out />
   <let name=links.out />
   <let name=data />
 </for>

</func>

ShowTopic(iTopic,iMax)

This should eventually be able to show data in any format: news links, blog entries... <func ShowTopic iTopic iMax>

 <let name=idx />
 <let name=including val=1 />
 <let name=topic farg=iTopic />
 <if not flag=$topic>
   <let name=topic parse>Woozle/blog/2009-05-13 0856 The Josh Report</let>
 </if>
 <let name=topic self with="_"> </let>
 <let name=sqlWhere>(page_namespace=0) AND (cl_to='</let>
 <let name=sqlWhere append copy=topic />
 <let name=sqlWhere append>')</let>
 <for table="qryW3_Titles_Catgs" where=$sqlWhere sort="page_title DESC" name=pg empty="no items yet" limit=$iMax hide>
   <let name=pg_title val="@row.page_title" />
   <let name=idx inc />
   <if not flag=$noLoad>
     <load page=$pg_title local />
   </if>
   <if flag=$data[Title]>
     <call GetBrief />
   </if><else>
     <let name=links.out>
  • [[</let>
     <let name=links.out append copy=pg_title />
     <let name=links.out append>]]</let>
   </else>
   <let name=exclude val=0 />
   <let name=links.rtn append copy=links.out />
   <let name=data null />
 </for>

</func>

GetBlogEntryBrief()

<func GetBlogEntryBrief> INPUT:

 data[*] - from blog entry page
 pg_name - full name of page being displayed (including namespace)
   <if not flag=$noLoad>
     <load page=$pg_name />
   </if>
   <let name=e.out>
  • </let>
   <let name=e.out append copy=data[TimeStamp] />
   <let name=e.out append> [[</let>
   <let name=e.out append copy=pg_name />
   <let name=e.out append>|</let>
   <let name=e.out append copy=data[Title] />
   <let name=e.out append>]] § </let>
   <let name=text copy=data[TextAbove] />
   <if flag=$text></if><else>
     <let name=text copy=data[TextBelow] len=200 />
   </else>
   <let name=e.out append copy=text trim />
   <let name=e.out append> [[</let>
   <let name=e.out append copy=pg_name />
   <let name=e.out append>|more...]]</let>

</func>

GetBlogEntryBriefChrisFormat()

<func GetBlogEntryBriefChrisFormat> INPUT:

 data[*] - from blog entry page
 pg_name - full name of page being displayed (including namespace)
   <if not flag=$noLoad>
     <load page=$pg_name />
   </if>
   <let name=e.out></let>
   <let name=e.out append>[[</let>
   <let name=e.out append copy=pg_name />
   <let name=e.out append>|</let>
   <let name=e.out append copy=data[Title] />
   <let name=e.out append>]], </let>
   <let name=e.out append copy=data[TimeStamp] />
   <let name=e.out append>

</let>

   <let name=text copy=data[TextAbove] />
   <if flag=$text></if><else>
     <let name=text copy=data[TextBelow] len=200 />
   </else>
   <let name=e.out append copy=text trim />
   <let name=e.out append> [[</let>
   <let name=e.out append copy=pg_name />
   <let name=e.out append>|more...]]

</let> </func>

GetBlogEntryFull()

<func GetBlogEntryFull> INPUT:

 data[*] - from blog entry page
 pg_name - full name of page being displayed (including namespace)
   <if not flag=$noLoad>
     <load page=$pg_name />
   </if>
   <let name=e.out>

==</let>

   <let name=e.out append copy=data[Title] />
   <let name=e.out append>==

posted at </let>

   <let name=e.out append copy=data[TimeStamp] />
   <let name=e.out append>

</let>

   <let name=e.out append copy=data[TextAbove] />
   <let name=e.out append copy=BlogFoldDivider />
   <let name=e.out append copy=data[TextBelow] />

-- category display

   <let name=e.out append copy=BlogFoldDivider />
   <let name=e.out append>

Categories –</let>

   <let name=noCat val=1 />
   <call MakeBlogCatgs />
   <if flag=$wtCatGlob>
     <let name=e.out append> general: </let>
     <let name=e.out append copy=wtCatGlob>
   </if>
   <if flag=$wtCatUser>
     <let name=e.out append> user: </let>
     <let name=e.out append copy=wtCatUser>
   </if>
   <let name=e.out append></let>

</let> </func>

ShowRecentBlogEntries(max,funcEntry)

<func ShowRecentBlogEntries max funcEntry>

 <let name=idx />
 <if not flag=$funcEntry>
   <let name=funcEntry val="GetBlogEntryBrief" />
 </if>
 <let name=including val=1 />
 <for table="qryW3_Titles_Catgs" where="(cl_to='Data/blog/post')" sort="page_title DESC" limit=$max name=pg hide>
   <let name=pg_nspace_code>{{ns:</let>
   <let name=pg_nspace_code append val=@row.page_namespace />
   <let name=pg_nspace_code append>}}</let>
   <let name=pg_nspace copy=pg_nspace_code parse />
   <let name=pg_title val="@row.page_title" />
   <let name=pg_name copy=pg_nspace />
   <let name=pg_name append>:</let>
   <let name=pg_name append copy=pg_title />
   <let name=idx inc />
   <call func=$funcEntry />
   <let name=e.rtn append copy=e.out />
   <let name=data />
 </for>

</func>

ShowRecentBlogEntriesFull(max)

<func ShowRecentBlogEntriesFull max>

 <let name=idx />
 <let name=including val=1 />
 <for table="qryW3_Titles_Catgs" where="(cl_to='Data/blog/post')" sort="page_title DESC" limit=$max name=pg hide>
   <let name=pg_nspace_code>{{ns:</let>
   <let name=pg_nspace_code append val=@row.page_namespace />
   <let name=pg_nspace_code append>}}</let>
   <let name=pg_nspace copy=pg_nspace_code parse />
   <let name=pg_title val="@row.page_title" />
   <let name=pg_name copy=pg_nspace />
   <let name=pg_name append>:</let>
   <let name=pg_name append copy=pg_title />
   <let name=idx inc />
   <call GetBlogEntryFull />
   <let name=e.rtn append copy=e.out />
   <let name=data />
 </for>

</func>

ShowRecentBlogEntriesByTopic(max,topic)

<func ShowRecentBlogEntriesByTopic max topic>

 <let name=topic self with="_"> </let>
 <let name=sql>(cl_to='</let>
 <let name=sql>SELECT q1.* FROM qryW3_Titles_Catgs AS q1 LEFT JOIN qryW3_Titles_Catgs AS q2 ON q1.cl_from=q2.cl_from WHERE (q1.cl_to='Data/blog/post') AND (q2.cl_to='</let>
 <let name=sql append copy=topic />
 <let name=sql append>') ORDER BY page_title DESC LIMIT </let>
 <let name=sql append copy=max />
 <for sql=$sql>
   <let name=pg_nspace_code>{{ns:</let>
   <let name=pg_nspace_code append val=@row.page_namespace />
   <let name=pg_nspace_code append>}}</let>
   <let name=pg_nspace copy=pg_nspace_code parse />
   <let name=pg_title val="@row.page_title" />
   <let name=pg_name copy=pg_nspace />
   <let name=pg_name append>:</let>
   <let name=pg_name append copy=pg_title />
   <let name=idx inc />
   <let name=data[Title] null />
   <load page=$pg_name />
   <if flag=$data[Title]>
     <call GetBlogEntryBrief />
     <let name=e.rtn append copy=e.out />
   </if>
   <let name=data />
 </for>

</func>

MakeBlogCatgs()

<func MakeBlogCatgs>

 <let name=catUser copy=data[TopicsUser] />
 <let name=catGlob copy=data[TopicsGlobal] />
 <let name=wtCatUser null />
 <xploop list=$catUser var=topic>
   <let name=wtCatUser append> [[user:</let>
   <let name=wtCatUser append copy=data[User] />
   <let name=wtCatUser append>/</let>
   <let name=wtCatUser append copy=topic />
   <let name=wtCatUser append>|</let>
   <let name=wtCatUser append copy=topic />
   <let name=wtCatUser append>]]</let>
   <let name=wtCatUser append>[[:category:user/</let>
   <let name=wtCatUser append copy=data[User] />
   <let name=wtCatUser append>/</let>
   <let name=wtCatUser append copy=topic />
   <let name=wtCatUser append>|c]]</let>
   <if not flag=$noCat>
     <let name=wtCatUser append> [[category:user/</let>
     <let name=wtCatUser append copy=data[User] />
     <let name=wtCatUser append>/</let>
     <let name=wtCatUser append copy=topic />
     <let name=wtCatUser append>|</let>
     <let name=wtCatUser append copy=topic />
     <let name=wtCatUser append>]]</let>
   </if>
 </xploop>
 <let name=wtCatGlob null />
 <xploop list=$catGlob var=topic>
   <let name=wtCatGlob append> [[</let>
   <let name=wtCatGlob append copy=topic />
   <let name=wtCatGlob append>]]</let>
   <let name=wtCatGlob append>[[:category:</let>
   <let name=wtCatGlob append copy=topic />
   <let name=wtCatGlob append>|c]]</let>
   <if not flag=$noCat>
     <let name=wtCatGlob append>[[category:</let>
     <let name=wtCatGlob append copy=topic />
     <let name=wtCatGlob append>]]</let>
   </if>
 </xploop>

</func>

ShowBlogPostPage()

<func ShowBlogPostPage>

 <let name=PostDate copy=data[TimeStamp] len=10 />
 <let name=wtDate>[[</let>
 <let name=wtDate append copy=PostDate />
 <let name=wtDate append>]] ([[:category:</let>
 <let name=wtDate append copy=PostDate />
 <let name=wtDate append>|category]])</let>
 <let name=wtDate append>[[category:</let>
 <let name=wtDate append copy=PostDate />
 <let name=wtDate append>]]</let>
 <let name=wtTitle>

==</let>

 <let name=wtTitle append copy=data[Title] />
 <let name=wtTitle append>==</let>
 <if flag=$data[TextAbove]>
   <let name=wtTextBrief>

In Brief </let>

   <let name=wtTextFull>

The Rest </let>

   <let name=wtTextBrief append copy=data[TextAbove] />
 </if><else>
   <let name=wtTextBrief null />
 </else>
 <let name=wtTextFull append copy=data[TextBelow] />
 <call MakeBlogCatgs />

General categories for blog posts: -- the fact that it's a post:

 <let name=wtCatGlob append></let>

-- date:

 <let name=wtCatGlob append>[[category:</let>
 <let name=wtCatGlob append copy=PostDate len=10 /> -- just the date for the category
 <let name=wtCatGlob append>|]]</let>
 <let name=wtCatGlob append copy=PostDate /> -- full timestamp for sorting
 <let name=wtCatGlob append>]]</let>
 <let name=user copy=data[User] />
 <if flag=$user>
   <let name=wtUser>[[user:</let>
   <let name=wtUser append copy=user />
   <let name=wtUser append>|</let>
   <let name=wtUser append copy=user />
   <let name=wtUser append>]]</let>
 </if><else>
   <let name=wtUser>unknown</let>
 </else>
 <echo>

<get name=wtTitle /> <get name=data index=Text /><get name=wtTextBrief /><get name=wtTextFull />


Posted by <get name=wtUser /> at <get name=PostDate />. Topics: <get name=wtCatUser /> <get name=wtCatGlob /></echo>

</func>

ShowBlogPostPage_v2()

<func ShowBlogPostPage_v2>

 <let name=PostDate copy=data[TimeStamp] len=10 />
 <let name=wtDate>[[</let>
 <let name=wtDate append copy=PostDate />
 <let name=wtDate append>]] ([[:category:</let>
 <let name=wtDate append copy=PostDate />
 <let name=wtDate append>|category]])</let>
 <let name=wtDate append>[[category:</let>
 <let name=wtDate append copy=PostDate />
 <let name=wtDate append>]]</let>
 <let name=wtTitle>

==</let>

 <let name=wtTitle append copy=data[Title] />
 <let name=wtTitle append>==</let>
 <if flag=$data[TextAbove]>
   <let name=wtTextBrief>

In Brief </let>

   <let name=wtTextFull>

The Rest </let>

   <let name=wtTextBrief append copy=data[TextAbove] />
 </if><else>
   <let name=wtTextBrief null />
 </else>
 <let name=wtTextFull append copy=data[TextBelow] />
 <call MakeBlogCatgs />

General categories for blog posts: -- the fact that it's a post:

 <let name=wtCatGlob append></let>

-- date:

 <let name=wtCatGlob append>[[category:</let>
 <let name=wtCatGlob append copy=PostDate len=10 /> -- just the date for the category
 <let name=wtCatGlob append>|]]</let>
 <let name=wtCatGlob append copy=PostDate /> -- full timestamp for sorting
 <let name=wtCatGlob append>]]</let>
 <let name=user copy=data[User] />
 <if flag=$user>
   <let name=wtUser>[[user:</let>
   <let name=wtUser append copy=user />
   <let name=wtUser append>|</let>
   <let name=wtUser append copy=user />
   <let name=wtUser append>]]</let>
 </if><else>
   <let name=wtUser>unknown</let>
 </else>
 <echo>

<get name=wtTitle /> <get name=data index=Text /><get name=wtTextBrief /><get name=wtTextFull />


Specs

Timestamp: <get name=PostDate />
Author: <get name=wtUser />
User topics: <get name=wtCatUser />
Global topics: <get name=wtCatGlob />
</echo>

</func>

ShowBlogPostPage_v1()

<func ShowBlogPostPage_v1>

 <let name=PostDate copy=data[TimeStamp] len=10 />
 <let name=wtDate>[[</let>
 <let name=wtDate append copy=PostDate />
 <let name=wtDate append>]] ([[:category:</let>
 <let name=wtDate append copy=PostDate />
 <let name=wtDate append>|category]])</let>
 <let name=wtDate append>[[category:</let>
 <let name=wtDate append copy=PostDate />
 <let name=wtDate append>]]</let>
 <let name=wtTitle>

==</let>

 <let name=wtTitle append copy=data[Title] />
 <let name=wtTitle append>==</let>
 <if flag=$data[TextAbove]>
   <let name=wtTextBrief>

In Brief

</let>

   <let name=wtTextFull>

Full Story

</let>

   <let name=wtTextBrief append copy=data[TextAbove] />
 </if><else>
   <let name=wtTextBrief null />
 </else>
 <let name=wtTextFull append copy=data[TextBelow] />
 <call MakeBlogCatgs />

General categories for blog posts: -- the fact that it's a post:

 <let name=wtCatGlob append></let>

-- date:

 <let name=wtCatGlob append>[[category:</let>
 <let name=wtCatGlob append copy=PostDate len=10 /> -- just the date for the category
 <let name=wtCatGlob append>|]]</let>
 <let name=wtCatGlob append copy=PostDate /> -- full timestamp for sorting
 <let name=wtCatGlob append>]]</let>
 <let name=user copy=data[User] />
 <if flag=$user>
   <let name=wtUser>[[user:</let>
   <let name=wtUser append copy=user />
   <let name=wtUser append>|</let>
   <let name=wtUser append copy=user />
   <let name=wtUser append>]]</let>
 </if><else>
   <let name=wtUser>unknown</let>
 </else>
 <echo>

Specs

Timestamp: <get name=PostDate />
Author: <get name=wtUser />
User topics: <get name=wtCatUser />
Global topics: <get name=wtCatGlob />

<get name=wtTitle /> <get name=data index=Text /><get name=wtTextBrief /><get name=wtTextFull /></echo> </func><call ShowBlogPostPage></if>