Check-in [56c3934f39]

Not logged in
Tcl 2015 Conference, Manassas/VA, US, Oct 19-23
Send your abstracts to tclconference@googlegroups.com by Aug 24.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Two changes: Give conferences an attribute for grouping (series), and collect materials for proceedings in a single section for convenience of download.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | active-on-core
Files: files | file ages | folders
SHA1:56c3934f39280b5e80fcca3f8b970eb99a470795
User & Date: aku 2017-09-25 17:54:07
Context
2017-10-11
19:09
Extended contact management with 3 commands to manage links better: Rename, Title, List. check-in: c05ea3a66e user: aku tags: active-on-core
2017-09-25
17:54
Two changes: Give conferences an attribute for grouping (series), and collect materials for proceedings in a single section for convenience of download. check-in: 56c3934f39 user: aku tags: active-on-core
17:52
Fix schema syntax oopses in recent work on contacts check-in: e51281808d user: aku tags: active-on-core
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to lib/conference.tcl.

184
185
186
187
188
189
190

191
192
193
194
195
196
197
...
220
221
222
223
224
225
226

227
228
229
230
231
232
233
....
4635
4636
4637
4638
4639
4640
4641

4642
4643
4644
4645
4646
4647
4648
4649
4650
4651


4652
4653
4654
4655
4656
4657
4658

4659
4660
4661
4662
4663
4664
























4665
4666
4667
4668
4669
4670
4671
....
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
....
4946
4947
4948
4949
4950
4951
4952

4953
4954





4955
4956
4957
4958
4959
4960
4961
....
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
....
5090
5091
5092
5093
5094
5095
5096


5097
5098
5099
5100
5101
5102
5103
    set title   [$config @title]      ; debug.cm/conference {title   = $title}
    set year    [$config @year]       ; debug.cm/conference {year    = $year}
    set align   [$config @alignment]  ; debug.cm/conference {align   = $align}
    set start   [$config @start]      ; debug.cm/conference {start   = $start}
    set length  [$config @length]     ; debug.cm/conference {length  = $length}
    set manager [$config @manager]    ; debug.cm/conference {manager = $manager}
    set subrecv [$config @submission] ; debug.cm/conference {subrecv = $subrecv}


    puts -nonewline "Creating conference \"[color name $title]\" ... "
    flush stdout

    # move start-date into alignment
    if {$align > 0} {
	set old $start
................................................................................
    try {
	db do transaction {
	    db do eval {
		INSERT INTO conference
		VALUES (NULL,     -- id, auto-assigned
			:title,
			:year,

			:manager,
			:subrecv,
			NULL,     -- city
			NULL,     -- hotel
			NULL,     -- facility
			:start,
			:end,
................................................................................
    append text "* " [link Registered  {} registered] \n
    append text "* " [link Booked      {} booked] \n
    append text "* " [link Accepted    {} accepted] \n
    append text "* " [link Submissions {} submissions] \n
    append text "* " [link Campaign    {} campaign] \n
    append text "* " [link Events      {} events] \n
    append text "* " [link Schedule    {} schedule] \n

    append text \n

    if {[llength $issues]} {
	append text \n
	append text [anchor issues] \n
	append text "# Issues\n\n"
	append text [fmt-issues-web $issues]
	append text \n
    }



    make_admin_registered  $conference text registered
    make_admin_booked      $conference text booked
    make_admin_accepted    $conference text accepted
    make_admin_submissions $conference text submissions
    make_admin_campaign    $conference text campaign
    make_admin_timeline    $conference text events
    make_admin_schedule    $conference text schedule


    # What else ...

    debug.cm/conference {/done}
    return $text
}

























proc ::cm::conference::make_admin_registered {conference textvar tag} {
    debug.cm/conference {}
    upvar 1 $textvar text
    # People booked to a hotel

    append text \n
................................................................................
	append text "Campaign has not been run yet" \n
    }

    append text \n
    return
}

proc ::cm::conference::make_admin_accepted {conference textvar tag} {
    debug.cm/conference {}
    upvar 1 dstdir dstdir $textvar text

    # Table of accepted submissions aka talks, plus one side page per to
    # hold the larger associated texts.

    append text \n
    append text [anchor $tag] \n
    append text "# Accepted Talks\n\n"

    set first 1
    set n 1
................................................................................
	           contact   C
	    WHERE  S.submission = :id
	    AND    C.id = S.contact
	    ORDER BY C.dname
	}]

	# Side page per submission, holding the entire data.

	make_internal_page $title __s$id \
	    make_submission $id $submitters $submitdate $invited $abstract $summary






	set invited    [expr {$invited ? "__yes__" : ""}]
	set submitters [join [dict keys $submitters] {, }]

	set issue {}
	if {([string trim $abstract] eq {}) &&
	    ([string trim $summary] eq {})} {
................................................................................
	append text "No submissions yet" \n
    }

    append text \n
    return
}

proc ::cm::conference::make_submission {submission submitters date invited abstract summary} {
    debug.cm/conference {}
    upvar 1 dstdir dstdir

    append text "\# Submitted\n\n"
    if {$invited} { set invited " (by invitation)" } else { set invited {} }

    set talk [db do onecolumn {
	SELECT id
	FROM   talk
................................................................................
	    ORDER BY type
	}]

	export_attachments $dstdir $talk $attachments

	set prefix Attachment
	foreach {aid title} $attachments {


	    append text | $prefix | [link $title assets/talk$talk/$title] |\n
	    set prefix {}
	}
    }
    append text \n

    if {[string trim $abstract] eq {}} { set abstract "__No abstract__" }







>







 







>







 







>










>
>


|




>






>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







 







|

|

|
|







 







>

|
>
>
>
>
>







 







|

|







 







>
>







184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
...
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
....
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
....
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
....
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
....
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
....
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
    set title   [$config @title]      ; debug.cm/conference {title   = $title}
    set year    [$config @year]       ; debug.cm/conference {year    = $year}
    set align   [$config @alignment]  ; debug.cm/conference {align   = $align}
    set start   [$config @start]      ; debug.cm/conference {start   = $start}
    set length  [$config @length]     ; debug.cm/conference {length  = $length}
    set manager [$config @manager]    ; debug.cm/conference {manager = $manager}
    set subrecv [$config @submission] ; debug.cm/conference {subrecv = $subrecv}
    set series  [$config @series]     ; debug.cm/conference {series  = $series}

    puts -nonewline "Creating conference \"[color name $title]\" ... "
    flush stdout

    # move start-date into alignment
    if {$align > 0} {
	set old $start
................................................................................
    try {
	db do transaction {
	    db do eval {
		INSERT INTO conference
		VALUES (NULL,     -- id, auto-assigned
			:title,
			:year,
			:series,
			:manager,
			:subrecv,
			NULL,     -- city
			NULL,     -- hotel
			NULL,     -- facility
			:start,
			:end,
................................................................................
    append text "* " [link Registered  {} registered] \n
    append text "* " [link Booked      {} booked] \n
    append text "* " [link Accepted    {} accepted] \n
    append text "* " [link Submissions {} submissions] \n
    append text "* " [link Campaign    {} campaign] \n
    append text "* " [link Events      {} events] \n
    append text "* " [link Schedule    {} schedule] \n
    append text "* " [link Materials   {} materials] \n
    append text \n

    if {[llength $issues]} {
	append text \n
	append text [anchor issues] \n
	append text "# Issues\n\n"
	append text [fmt-issues-web $issues]
	append text \n
    }

    set materials {}
    
    make_admin_registered  $conference text registered
    make_admin_booked      $conference text booked
    make_admin_accepted    $conference text accepted    materials
    make_admin_submissions $conference text submissions
    make_admin_campaign    $conference text campaign
    make_admin_timeline    $conference text events
    make_admin_schedule    $conference text schedule
    make_admin_materials   $conference text materials $materials

    # What else ...

    debug.cm/conference {/done}
    return $text
}

proc ::cm::conference::make_admin_materials {conference textvar tag materials} {
    debug.cm/conference {}
    upvar 1 $textvar text
    # Materials for all talks in one section.

    append text \n
    append text [anchor $tag] \n
    append text "# Materials\n\n"

    if {![llength $materials]} {
	append text "__No materials available__" \n
	return
    }
    
    append text |Talk|Attachment|\n|-|-|\n
    foreach {title links} $materials {
	foreach link $links {
	    append text | $title | $link |\n
	    set title ""
	}
    }
    append text \n
}

proc ::cm::conference::make_admin_registered {conference textvar tag} {
    debug.cm/conference {}
    upvar 1 $textvar text
    # People booked to a hotel

    append text \n
................................................................................
	append text "Campaign has not been run yet" \n
    }

    append text \n
    return
}

proc ::cm::conference::make_admin_accepted {conference textvar tag materialsvar} {
    debug.cm/conference {}
    upvar 1 dstdir dstdir $textvar text $materialsvar materials

    # Table of accepted submissions, i.e. talks, plus one side page
    # per talk to hold the larger associated texts (abstract, summary, attachments).

    append text \n
    append text [anchor $tag] \n
    append text "# Accepted Talks\n\n"

    set first 1
    set n 1
................................................................................
	           contact   C
	    WHERE  S.submission = :id
	    AND    C.id = S.contact
	    ORDER BY C.dname
	}]

	# Side page per submission, holding the entire data.
	set talkmaterials {}
	make_internal_page $title __s$id \
	    make_submission $id $submitters $submitdate $invited $abstract $summary \
	    talkmaterials

	if {[llength $talkmaterials]} {
	    lappend materials $title $talkmaterials
	}

	set invited    [expr {$invited ? "__yes__" : ""}]
	set submitters [join [dict keys $submitters] {, }]

	set issue {}
	if {([string trim $abstract] eq {}) &&
	    ([string trim $summary] eq {})} {
................................................................................
	append text "No submissions yet" \n
    }

    append text \n
    return
}

proc ::cm::conference::make_submission {submission submitters date invited abstract summary materialsvar} {
    debug.cm/conference {}
    upvar 1 dstdir dstdir $materialsvar materials

    append text "\# Submitted\n\n"
    if {$invited} { set invited " (by invitation)" } else { set invited {} }

    set talk [db do onecolumn {
	SELECT id
	FROM   talk
................................................................................
	    ORDER BY type
	}]

	export_attachments $dstdir $talk $attachments

	set prefix Attachment
	foreach {aid title} $attachments {
	    lappend materials [link $title assets/talk$talk/$title]
	    
	    append text | $prefix | [link $title assets/talk$talk/$title] |\n
	    set prefix {}
	}
    }
    append text \n

    if {[string trim $abstract] eq {}} { set abstract "__No abstract__" }