-
Notifications
You must be signed in to change notification settings - Fork 11
/
Querki.tdl
2641 lines (1987 loc) · 1.28 MB
/
Querki.tdl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="utf-16" ?>
<TODOLIST PROJECTNAME="Querki Stories" FILEFORMAT="9" EARLIESTDUEDATE="0.00000000" NEXTUNIQUEID="1122" FILENAME="Querki.tdl" FILEVERSION="2862">
<TASK TITLE="Sprint 0: October 1-14" ID="117" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41206.39494213" DONEDATESTRING="10/24/2012 9:28 AM" PERCENTDONE="100" STARTDATE="41202.00000000" STARTDATESTRING="10/20/2012" CREATIONDATE="41202.60609954" CREATIONDATESTRING="10/20/2012 2:32 PM" LASTMOD="41206.39494213" LASTMODSTRING="10/24/2012 9:28 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can publicize Querki using its own name" ID="1" COMMENTS="That is, I should claim the Querki name in all appropriate fora. " CUSTOMCOMMENTS="tgEAAHicLZDNasQgFEa7Hph3uOtSghrND7PqsosuCl26sYkmMo4JxrSFkHevXgvyfS6O3sM9ZIiGSuU3izGsE2WCyVEbQ3I65SdK6vqQZvExfrl0IdJ466QZZhU2HQm8Bqvc7Tyvl0M+y0l7HVRcArxvJurRRhAVpxVLR1ByO+W31T9360cu94HKVYVRxt+akZQNz9k3OSnrsBqC1SPAGBJMIMI6RNJbLIFI3SHCKSKcI5Iyl6CICI6IaBFpSPc/G6tFpCWItDUibYNI+gSryHbFtiu6fdHti25fdCnJvmajDXzOKoLdXuANtnnZ3QiDU/YBcdbwsetwt+DVQ4P1oJwDta5hWdNmowazBFXlRV0vaclPf9cvjPEA" COMMENTSTYPE="849cf988-79fe-418a-a40d-01fe3afcab2c" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Admin" DONEDATE="41194.47008102" DONEDATESTRING="10/12/2012 11:16 AM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.39114583" CREATIONDATESTRING="10/8/2012 9:23 AM" LASTMOD="41194.47008102" LASTMODSTRING="10/12/2012 11:16 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Twitter" ID="2" COMMENTS="Kinda-sorta -- it's QuerkiProject on Twitter, because querki is, surprisingly, taken. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41194.47006944" DONEDATESTRING="10/12/2012 11:16 AM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.40482639" CREATIONDATESTRING="10/8/2012 9:42 AM" LASTMOD="41194.47006944" LASTMODSTRING="10/12/2012 11:16 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="LiveJournal" ID="3" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41192.66136574" DONEDATESTRING="10/10/2012 3:52 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.40487269" CREATIONDATESTRING="10/8/2012 9:43 AM" LASTMOD="41192.66136574" LASTMODSTRING="10/10/2012 3:52 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can check in my Querki materials" ID="4" CUSTOMCOMMENTS="dQEAAHicLdBNboMwEAXgriPlDqy7iDz+w1ZWOUBvMBsXbGoVOZFx20iIu8ceV0LvsfjAD3bMJQC6tEWK6bEAVxxnHwJrubq0ABNix3BPpXyu9YZhSHHFMH25vPnChluObr0ex/m04zsuPvnsyj0PH1sofo5lUBcJF14vBex64G/0f98xzRJ/JsCHyzOWp+CsppYtrW4J3FBpRmUJcE6CKyLcEKnPUikiwhCRQERKIjVbKSCiJBE1EtHM/J9NNRIZGZFREBk1kfoSqj7W9LWmz7V9ru1zbZ8LrO0NG+j2nedT/UdvL649dhoA" COMMENTSTYPE="849cf988-79fe-418a-a40d-01fe3afcab2c" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Code Meta" DONEDATE="41198.69339120" DONEDATESTRING="10/16/2012 4:38 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.40523148" CREATIONDATESTRING="10/8/2012 9:43 AM" LASTMOD="41198.69339120" LASTMODSTRING="10/16/2012 4:38 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Set up OP Compiler GitHub repo as a test" ID="5" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41194.52070602" DONEDATESTRING="10/12/2012 12:29 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.40574074" CREATIONDATESTRING="10/8/2012 9:44 AM" LASTMOD="41194.52070602" LASTMODSTRING="10/12/2012 12:29 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Set up Querki.org repo" ID="6" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41198.69334491" DONEDATESTRING="10/16/2012 4:38 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.40591435" CREATIONDATESTRING="10/8/2012 9:44 AM" LASTMOD="41198.69334491" LASTMODSTRING="10/16/2012 4:38 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Check in this file" ID="113" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41198.69336806" DONEDATESTRING="10/16/2012 4:38 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.75983796" CREATIONDATESTRING="10/8/2012 6:14 PM" LASTMOD="41198.69336806" LASTMODSTRING="10/16/2012 4:38 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
</TASK>
</TASK>
<TASK TITLE="Sprint 1: October 15-28" ID="118" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41214.62383102" DONEDATESTRING="11/1/2012 2:58 PM" PERCENTDONE="100" STARTDATE="41202.00000000" STARTDATESTRING="10/20/2012" CREATIONDATE="41202.60692130" CREATIONDATESTRING="10/20/2012 2:33 PM" LASTMOD="41214.62383102" LASTMODSTRING="11/1/2012 2:58 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I have a place to talk publicly about Querki" ID="115" COMMENTS="In practice, this means a GitHub wiki to start with. Eventually, we will transition to running this on querki.org ourselves, but first things first. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41202.60715278" DONEDATESTRING="10/20/2012 2:34 PM" PERCENTDONE="100" STARTDATE="41199.00000000" STARTDATESTRING="10/17/2012" CREATIONDATE="41199.35283565" CREATIONDATESTRING="10/17/2012 8:28 AM" LASTMOD="41202.60715278" LASTMODSTRING="10/20/2012 2:34 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="As an interested contributor, I can read a vision statement about Querki" ID="90" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Admin" DONEDATE="41206.39511574" DONEDATESTRING="10/24/2012 9:28 AM" PERCENTDONE="100" DUEDATE="41214.00000000" DUEDATESTRING="11/1/2012" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.69504630" CREATIONDATESTRING="10/8/2012 4:40 PM" LASTMOD="41206.39511574" LASTMODSTRING="10/24/2012 9:28 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I have a public Roadmap of our plans" ID="116" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41202.60723380" DONEDATESTRING="10/20/2012 2:34 PM" PERCENTDONE="100" STARTDATE="41202.00000000" STARTDATESTRING="10/20/2012" CREATIONDATE="41202.60590278" CREATIONDATESTRING="10/20/2012 2:32 PM" LASTMOD="41202.60723380" LASTMODSTRING="10/20/2012 2:34 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I have a work Diary" ID="119" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41202.76292824" DONEDATESTRING="10/20/2012 6:18 PM" PERCENTDONE="100" STARTDATE="41202.00000000" STARTDATESTRING="10/20/2012" CREATIONDATE="41202.60733796" CREATIONDATESTRING="10/20/2012 2:34 PM" LASTMOD="41202.76292824" LASTMODSTRING="10/20/2012 6:18 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I have a decent draft Story Stack" ID="26" COMMENTS="That is, this document. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Admin" DONEDATE="41206.39489583" DONEDATESTRING="10/24/2012 9:28 AM" PERCENTDONE="100" DUEDATE="41204.00000000" DUEDATESTRING="10/22/2012" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.63331019" CREATIONDATESTRING="10/8/2012 3:11 PM" LASTMOD="41206.39489583" LASTMODSTRING="10/24/2012 9:28 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Sprint 2: October 29 - November 11" ID="127" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60847222" DONEDATESTRING="11/13/2012 2:36 PM" PERCENTDONE="100" STARTDATE="41214.00000000" STARTDATESTRING="11/1/2012" CREATIONDATE="41214.62295139" CREATIONDATESTRING="11/1/2012 2:57 PM" LASTMOD="41240.75278935" LASTMODSTRING="11/27/2012 6:04 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can run a trivial Actor-based program with a Web UI" ID="23" COMMENTS="Doesn't need to *do* much of anything -- just has a Play-based page that I can go to, which fetches and displays some information from multiple Actors. This demonstrates the heart of the system. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Base" DONEDATE="41226.60844907" DONEDATESTRING="11/13/2012 2:36 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.63094907" CREATIONDATESTRING="10/8/2012 3:08 PM" LASTMOD="41226.60844907" LASTMODSTRING="11/13/2012 2:36 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I understand my UI technology" ID="24" COMMENTS="That is to say, I have enough grasp of Play to get started. (Or decide to switch to Lift.) " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Code Meta" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" DUEDATE="41214.00000000" DUEDATESTRING="11/1/2012" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.63174769" CREATIONDATESTRING="10/8/2012 3:09 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Research Heroku" ID="120" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41208.00000000" STARTDATESTRING="10/26/2012" CREATIONDATE="41208.67082176" CREATIONDATESTRING="10/26/2012 4:05 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I know what database I will be building Querki on" ID="122" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41208.00000000" STARTDATESTRING="10/26/2012" CREATIONDATE="41208.67112269" CREATIONDATESTRING="10/26/2012 4:06 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Research Mongo" ID="123" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41208.00000000" STARTDATESTRING="10/26/2012" CREATIONDATE="41208.67126157" CREATIONDATESTRING="10/26/2012 4:06 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Research CouchDB" ID="124" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41208.00000000" STARTDATESTRING="10/26/2012" CREATIONDATE="41208.67131944" CREATIONDATESTRING="10/26/2012 4:06 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Research Cassandra" ID="125" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41208.00000000" STARTDATESTRING="10/26/2012" CREATIONDATE="41208.67137731" CREATIONDATESTRING="10/26/2012 4:06 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Research Postgres hstore" ID="126" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41208.00000000" STARTDATESTRING="10/26/2012" CREATIONDATE="41208.67143519" CREATIONDATESTRING="10/26/2012 4:06 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Expand the skeleton" ID="150" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41226.00000000" STARTDATESTRING="11/13/2012" CREATIONDATE="41226.60619213" CREATIONDATESTRING="11/13/2012 2:32 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Hello World from Play" ID="129" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41217.00000000" STARTDATESTRING="11/4/2012" CREATIONDATE="41217.73005787" CREATIONDATESTRING="11/4/2012 5:31 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Get trivial user credentials; store them in cookie; play them back" ID="130" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41217.00000000" STARTDATESTRING="11/4/2012" CREATIONDATE="41217.73021991" CREATIONDATESTRING="11/4/2012 5:31 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="A prettier Hello World, with Bootstrap" ID="148" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41218.00000000" STARTDATESTRING="11/5/2012" CREATIONDATE="41218.63987269" CREATIONDATESTRING="11/5/2012 3:21 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Hello World from Akka" ID="131" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41217.00000000" STARTDATESTRING="11/4/2012" CREATIONDATE="41217.73049769" CREATIONDATESTRING="11/4/2012 5:31 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Hello World from Akka, with info from Config" ID="132" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41217.00000000" STARTDATESTRING="11/4/2012" CREATIONDATE="41217.73062500" CREATIONDATESTRING="11/4/2012 5:32 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Create a user-session object in Akka, storing its path in a cookie" ID="133" COMMENTS="Decided *not* to do this for the time being. User Actors are only really useful if I have to store a lot of state. That may well happen down the line, especially once we start letting you look at history, but for now it just slows things down. So let's deal with authentication Play-style for now, instead. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41217.00000000" STARTDATESTRING="11/4/2012" CREATIONDATE="41217.73082176" CREATIONDATESTRING="11/4/2012 5:32 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Thing class" ID="135" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41217.00000000" STARTDATESTRING="11/4/2012" CREATIONDATE="41217.73131944" CREATIONDATESTRING="11/4/2012 5:33 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Space class" ID="136" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41217.00000000" STARTDATESTRING="11/4/2012" CREATIONDATE="41217.73152778" CREATIONDATESTRING="11/4/2012 5:33 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Type class" ID="137" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41217.00000000" STARTDATESTRING="11/4/2012" CREATIONDATE="41217.73158565" CREATIONDATESTRING="11/4/2012 5:33 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Property class" ID="138" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41217.00000000" STARTDATESTRING="11/4/2012" CREATIONDATE="41217.73163194" CREATIONDATESTRING="11/4/2012 5:33 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Begin to build the System Space" ID="139" COMMENTS="In Shard 0 " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41217.00000000" STARTDATESTRING="11/4/2012" CREATIONDATE="41217.73186343" CREATIONDATESTRING="11/4/2012 5:33 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add the primordial Thing and Property" ID="140" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41217.00000000" STARTDATESTRING="11/4/2012" CREATIONDATE="41217.73225694" CREATIONDATESTRING="11/4/2012 5:34 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add the basic Types" ID="141" COMMENTS="Text, Number and YesNo, anyway. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41217.00000000" STARTDATESTRING="11/4/2012" CREATIONDATE="41217.73245370" CREATIONDATESTRING="11/4/2012 5:34 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Create the Page Model" ID="142" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60667824" DONEDATESTRING="11/13/2012 2:33 PM" PERCENTDONE="100" STARTDATE="41217.00000000" STARTDATESTRING="11/4/2012" CREATIONDATE="41217.73297454" CREATIONDATESTRING="11/4/2012 5:35 PM" LASTMOD="41226.60674769" LASTMODSTRING="11/13/2012 2:33 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
</TASK>
<TASK TITLE="Sprint 3: November 12-25" ID="151" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41240.75292824" DONEDATESTRING="11/27/2012 6:04 PM" PERCENTDONE="100" STARTDATE="41226.00000000" STARTDATESTRING="11/13/2012" CREATIONDATE="41226.60684028" CREATIONDATESTRING="11/13/2012 2:33 PM" LASTMOD="41240.75292824" LASTMODSTRING="11/27/2012 6:04 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Create a Space in H2 from the UI" ID="146" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41233.65474537" DONEDATESTRING="11/20/2012 3:42 PM" PERCENTDONE="100" STARTDATE="41218.00000000" STARTDATESTRING="11/5/2012" CREATIONDATE="41218.50644676" CREATIONDATESTRING="11/5/2012 12:09 PM" LASTMOD="41233.65474537" LASTMODSTRING="11/20/2012 3:42 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Serialize a Thing" ID="156" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41233.65461806" DONEDATESTRING="11/20/2012 3:42 PM" PERCENTDONE="100" STARTDATE="41228.00000000" STARTDATESTRING="11/15/2012" CREATIONDATE="41228.39225694" CREATIONDATESTRING="11/15/2012 9:24 AM" LASTMOD="41233.65461806" LASTMODSTRING="11/20/2012 3:42 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Hello World in a multi-Property Page" ID="143" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60593750" DONEDATESTRING="11/13/2012 2:32 PM" PERCENTDONE="100" STARTDATE="41217.00000000" STARTDATESTRING="11/4/2012" CREATIONDATE="41217.73369213" CREATIONDATESTRING="11/4/2012 5:36 PM" LASTMOD="41226.60593750" LASTMODSTRING="11/13/2012 2:32 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Display the Properties for any Thing that doesn't have DisplayText" ID="149" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.47276620" DONEDATESTRING="11/13/2012 11:20 AM" PERCENTDONE="100" STARTDATE="41221.00000000" STARTDATESTRING="11/8/2012" CREATIONDATE="41221.78452546" CREATIONDATESTRING="11/8/2012 6:49 PM" LASTMOD="41226.47276620" LASTMODSTRING="11/13/2012 11:20 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Markdown parsing" ID="144" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60594907" DONEDATESTRING="11/13/2012 2:32 PM" PERCENTDONE="100" STARTDATE="41217.00000000" STARTDATESTRING="11/4/2012" CREATIONDATE="41217.73384259" CREATIONDATESTRING="11/4/2012 5:36 PM" LASTMOD="41226.60594907" LASTMODSTRING="11/13/2012 2:32 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add H2 support" ID="153" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41227.70011574" DONEDATESTRING="11/14/2012 4:48 PM" PERCENTDONE="100" STARTDATE="41227.00000000" STARTDATESTRING="11/14/2012" CREATIONDATE="41227.45853009" CREATIONDATESTRING="11/14/2012 11:00 AM" LASTMOD="41227.70011574" LASTMODSTRING="11/14/2012 4:48 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add collection kinds" ID="154" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41227.70012731" DONEDATESTRING="11/14/2012 4:48 PM" PERCENTDONE="100" STARTDATE="41227.00000000" STARTDATESTRING="11/14/2012" CREATIONDATE="41227.45869213" CREATIONDATESTRING="11/14/2012 11:00 AM" LASTMOD="41227.70012731" LASTMODSTRING="11/14/2012 4:48 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can create a Space in Querki" ID="14" COMMENTS="Initially with a hard-coded display page -- we haven't gotten to displaying a Thing yet. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Data Model" DONEDATE="41233.65494213" DONEDATESTRING="11/20/2012 3:43 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.62880787" CREATIONDATESTRING="10/8/2012 3:05 PM" LASTMOD="41233.65494213" LASTMODSTRING="11/20/2012 3:43 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Create the core DB notions, in a very simplistic way" ID="15" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41233.65486111" DONEDATESTRING="11/20/2012 3:43 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.62896991" CREATIONDATESTRING="10/8/2012 3:05 PM" LASTMOD="41233.65486111" LASTMODSTRING="11/20/2012 3:43 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Create the opening page" ID="16" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41233.65487269" DONEDATESTRING="11/20/2012 3:43 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.62913194" CREATIONDATESTRING="10/8/2012 3:05 PM" LASTMOD="41233.65487269" LASTMODSTRING="11/20/2012 3:43 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Create a simple space-creation page" ID="17" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41233.65488426" DONEDATESTRING="11/20/2012 3:43 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.62918981" CREATIONDATESTRING="10/8/2012 3:06 PM" LASTMOD="41233.65488426" LASTMODSTRING="11/20/2012 3:43 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Record the space in the DB" ID="18" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41233.65490741" DONEDATESTRING="11/20/2012 3:43 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.62935185" CREATIONDATESTRING="10/8/2012 3:06 PM" LASTMOD="41233.65490741" LASTMODSTRING="11/20/2012 3:43 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Visit the space via its URL" ID="27" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41233.65493056" DONEDATESTRING="11/20/2012 3:43 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.63396991" CREATIONDATESTRING="10/8/2012 3:12 PM" LASTMOD="41233.65493056" LASTMODSTRING="11/20/2012 3:43 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="I can display a simple HTML page in Querki" ID="28" COMMENTS="That is, a Thing with a single Text Property. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Base" NUMDEPENDS="1" DEPENDS="14" DONEDATE="41233.78100694" DONEDATESTRING="11/20/2012 6:44 PM" PERCENTDONE="100" STARTDATE="41234.65494213" STARTDATESTRING="11/21/2012 3:43 PM" CREATIONDATE="41190.63453704" CREATIONDATESTRING="10/8/2012 3:13 PM" LASTMOD="41233.78100694" LASTMODSTRING="11/20/2012 6:44 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Create the Property system" ID="29" COMMENTS="Requires the concept of the initial Text type. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41233.65497685" DONEDATESTRING="11/20/2012 3:43 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.63486111" CREATIONDATESTRING="10/8/2012 3:14 PM" LASTMOD="41233.65497685" LASTMODSTRING="11/20/2012 3:43 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Allow creation of a new Thing, with an ID, Name and Text" ID="30" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41233.78097222" DONEDATESTRING="11/20/2012 6:44 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.63599537" CREATIONDATESTRING="10/8/2012 3:15 PM" LASTMOD="41233.78097222" LASTMODSTRING="11/20/2012 6:44 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Save the Thing" ID="31" COMMENTS="Not necessarily versioned yet, although versioning should come soon. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41233.78098380" DONEDATESTRING="11/20/2012 6:44 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.63628472" CREATIONDATESTRING="10/8/2012 3:16 PM" LASTMOD="41233.78098380" LASTMODSTRING="11/20/2012 6:44 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="I know what platform I will be building Querki on" ID="12" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Code Meta" DONEDATE="41226.60825231" DONEDATESTRING="11/13/2012 2:35 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.62326389" CREATIONDATESTRING="10/8/2012 2:57 PM" LASTMOD="41226.60825231" LASTMODSTRING="11/13/2012 2:35 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Research CloudBees" ID="13" COMMENTS="Evaluate whether it looks like an appropriate platform. Possibly try a Scala project there to kick the tires. Get clear on the cost/month. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60824074" DONEDATESTRING="11/13/2012 2:35 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.62346065" CREATIONDATESTRING="10/8/2012 2:57 PM" LASTMOD="41226.60824074" LASTMODSTRING="11/13/2012 2:35 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Research CloudFoundry" ID="121" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41226.60815972" DONEDATESTRING="11/13/2012 2:35 PM" PERCENTDONE="100" STARTDATE="41208.00000000" STARTDATESTRING="10/26/2012" CREATIONDATE="41208.67097222" CREATIONDATESTRING="10/26/2012 4:06 PM" LASTMOD="41226.60815972" LASTMODSTRING="11/13/2012 2:35 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
</TASK>
<TASK TITLE="Sprint 4: November 26 - December 9" ID="164" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41254.41562500" DONEDATESTRING="12/11/2012 9:58 AM" PERCENTDONE="100" STARTDATE="41240.00000000" STARTDATESTRING="11/27/2012" CREATIONDATE="41240.75295139" CREATIONDATESTRING="11/27/2012 6:04 PM" LASTMOD="41254.41562500" LASTMODSTRING="12/11/2012 9:58 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Choose which Properties to add to a Thing" ID="162" COMMENTS="For the first draft, do it without Javascript -- have an "Add Property" button that reprocesses the Create Thing page, with all the current Properties plus a blank one. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41240.75342593" DONEDATESTRING="11/27/2012 6:04 PM" PERCENTDONE="100" STARTDATE="41234.00000000" STARTDATESTRING="11/21/2012" CREATIONDATE="41234.37481481" CREATIONDATESTRING="11/21/2012 8:59 AM" LASTMOD="41240.75342593" LASTMODSTRING="11/27/2012 6:04 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Deal with Thing.space" ID="169" COMMENTS="This is a critical problem right now -- it is increasingly central, and entirely faked.
Current theory is that we will thread it when the object is added to the Space. Thing should take an Option[SpaceState]; as we build the Space, we replace all of them with copies that have the space set.
On second thought: that's hard, and may not even work. It might be easier to inject just a tiny bit of mutability instead: create all the Things with a mutable switch, which later gets the Space and its ancestor Apps threaded into it. That should be threadsafe if done properly, and is mutable only briefly. That's likely the easiest way to deal with the problem.
Ideally, this mutable switch should be responsible for chaining the ancestors together. This likely replaces the current App OID that we're passing in, which is kind of useless. So we'll chain these switches to make the ancestor chains. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41241.47586806" DONEDATESTRING="11/28/2012 11:25 AM" PERCENTDONE="100" STARTDATE="41240.00000000" STARTDATESTRING="11/27/2012" CREATIONDATE="41240.81462963" CREATIONDATESTRING="11/27/2012 7:33 PM" LASTMOD="41241.47586806" LASTMODSTRING="11/28/2012 11:25 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Create a Thing from a Model" ID="166" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41245.38741898" DONEDATESTRING="12/2/2012 9:17 AM" PERCENTDONE="100" STARTDATE="41240.00000000" STARTDATESTRING="11/27/2012" CREATIONDATE="41240.75371528" CREATIONDATESTRING="11/27/2012 6:05 PM" LASTMOD="41245.38741898" LASTMODSTRING="12/2/2012 9:17 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Prompt for the Model's Properties" ID="167" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41245.38756944" DONEDATESTRING="12/2/2012 9:18 AM" PERCENTDONE="100" STARTDATE="41240.00000000" STARTDATESTRING="11/27/2012" CREATIONDATE="41240.75388889" CREATIONDATESTRING="11/27/2012 6:05 PM" LASTMOD="41245.38756944" LASTMODSTRING="12/2/2012 9:18 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Fix the URLs on Create Thing" ID="170" COMMENTS="At the moment, you initially navigate to ".../createThing", but after tweaking the property list or model you are at ".../doCreateThing". Fix this inconsistency.
The issue here is that the original page is a GET, and the followups are POSTs. How do we rectify this? Can we make the orignal link a POST? Can you have a GET and a POST with the same URL?
Note that, to fix this, I probably need to fix NavSections, so that they are producing Call objects using route.Application.thingy, instead of raw Strings. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41245.39753472" DONEDATESTRING="12/2/2012 9:32 AM" PERCENTDONE="100" STARTDATE="41245.00000000" STARTDATESTRING="12/2/2012" CREATIONDATE="41245.39166667" CREATIONDATESTRING="12/2/2012 9:24 AM" LASTMOD="41245.39753472" LASTMODSTRING="12/2/2012 9:32 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I understand my Actor technology" ID="25" COMMENTS="That is to say, I've kicked the tires of Akka enough to get started. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Code Meta" DONEDATE="41249.32546296" DONEDATESTRING="12/6/2012 7:48 AM" PERCENTDONE="100" DUEDATE="41214.00000000" DUEDATESTRING="11/1/2012" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.63203704" CREATIONDATESTRING="10/8/2012 3:10 PM" LASTMOD="41249.32546296" LASTMODSTRING="12/6/2012 7:48 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can define a Thing to be a Model for other Things" ID="63" COMMENTS="Initially, this will be Invitee/Parent/Child for the Wedding App. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Data Model" DONEDATE="41246.59578704" DONEDATESTRING="12/3/2012 2:17 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.65255787" CREATIONDATESTRING="10/8/2012 3:39 PM" LASTMOD="41246.59578704" LASTMODSTRING="12/3/2012 2:17 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can give a Thing a Display Name that is different from its Name" ID="158" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41249.32932870" DONEDATESTRING="12/6/2012 7:54 AM" PERCENTDONE="100" STARTDATE="41233.00000000" STARTDATESTRING="11/20/2012" CREATIONDATE="41233.78038194" CREATIONDATESTRING="11/20/2012 6:43 PM" LASTMOD="41249.32932870" LASTMODSTRING="12/6/2012 7:54 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add ability to store a CSS file" ID="52" COMMENTS="Check for embedded Javascript, and reject the CSS outright if it contains any. See these pages for details:
http://stackoverflow.com/questions/476276/using-javascript-in-css
http://www.jr.pl/www.quirksmode.org/css/javascript.html
By and large, it sounds like outlawing the words "expression" and "javascript" may be sufficient. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41248.70165509" DONEDATESTRING="12/5/2012 4:50 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.64722222" CREATIONDATESTRING="10/8/2012 3:32 PM" LASTMOD="41248.70165509" LASTMODSTRING="12/5/2012 4:50 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Attach CSS file to the Space" ID="53" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41248.70224537" DONEDATESTRING="12/5/2012 4:51 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.64739583" CREATIONDATESTRING="10/8/2012 3:32 PM" LASTMOD="41248.70224537" LASTMODSTRING="12/5/2012 4:51 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Ability to have CSS as a normal Thing property instead of an attachment" ID="176" COMMENTS="Less efficient, but much easier for development. I think uploading CSS files is going to get very tired, very fast. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41249.38214120" DONEDATESTRING="12/6/2012 9:10 AM" PERCENTDONE="100" STARTDATE="41249.00000000" STARTDATESTRING="12/6/2012" CREATIONDATE="41249.32077546" CREATIONDATESTRING="12/6/2012 7:41 AM" LASTMOD="41249.38214120" LASTMODSTRING="12/6/2012 9:10 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can edit a Thing" ID="48" COMMENTS="Initially, this does not preserve history; we'll get to that soon enough. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="UI" NUMDEPENDS="1" DEPENDS="28" DONEDATE="41246.59482639" DONEDATESTRING="12/3/2012 2:16 PM" PERCENTDONE="100" STARTDATE="41234.78100694" STARTDATESTRING="11/21/2012 6:44 PM" CREATIONDATE="41190.64065972" CREATIONDATESTRING="10/8/2012 3:22 PM" LASTMOD="41246.59482639" LASTMODSTRING="12/3/2012 2:16 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="UI enhancements for editing" ID="49" COMMENTS="Which isn't quite the same as Thing creation, although likely very similar. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41246.59481481" DONEDATESTRING="12/3/2012 2:16 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.64103009" CREATIONDATESTRING="10/8/2012 3:23 PM" LASTMOD="41246.59481481" LASTMODSTRING="12/3/2012 2:16 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
</TASK>
<TASK TITLE="Sprint 5: December 10 - 23" ID="194" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41281.67635417" DONEDATESTRING="1/7/2013 4:13 PM" PERCENTDONE="100" STARTDATE="41254.00000000" STARTDATESTRING="12/11/2012" CREATIONDATE="41254.41534722" CREATIONDATESTRING="12/11/2012 9:58 AM" LASTMOD="41281.67635417" LASTMODSTRING="1/7/2013 4:13 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can refer to a Page with a stable URL" ID="175" COMMENTS="This one is important given that the site may move around between home, Wiglaf, Techwhatsit and CloudBees. So I need to be able to refer to the Hold the Date page as something like http://querki.org/jducoeur/Wedding/Hold-The-Date -- that should be able to survive several export/import cycles. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41254.41524306" DONEDATESTRING="12/11/2012 9:57 AM" PERCENTDONE="100" STARTDATE="41249.00000000" STARTDATESTRING="12/6/2012" CREATIONDATE="41249.31372685" CREATIONDATESTRING="12/6/2012 7:31 AM" LASTMOD="41254.41524306" LASTMODSTRING="12/11/2012 9:57 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Require Names to be legal" ID="185" COMMENTS="That is, only the correct characters. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41251.62195602" DONEDATESTRING="12/8/2012 2:55 PM" PERCENTDONE="100" STARTDATE="41251.00000000" STARTDATESTRING="12/8/2012" CREATIONDATE="41251.53535880" CREATIONDATESTRING="12/8/2012 12:50 PM" LASTMOD="41251.62195602" LASTMODSTRING="12/8/2012 2:55 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Require Space Names to be legal" ID="189" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41251.70726852" DONEDATESTRING="12/8/2012 4:58 PM" PERCENTDONE="100" STARTDATE="41251.00000000" STARTDATESTRING="12/8/2012" CREATIONDATE="41251.53635417" CREATIONDATESTRING="12/8/2012 12:52 PM" LASTMOD="41251.70726852" LASTMODSTRING="12/8/2012 4:58 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Detect duplicate Space names" ID="190" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41251.73074074" DONEDATESTRING="12/8/2012 5:32 PM" PERCENTDONE="100" STARTDATE="41251.00000000" STARTDATESTRING="12/8/2012" CREATIONDATE="41251.53652778" CREATIONDATESTRING="12/8/2012 12:52 PM" LASTMOD="41251.73074074" LASTMODSTRING="12/8/2012 5:32 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Detect duplicate Thing names" ID="191" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41251.78538194" DONEDATESTRING="12/8/2012 6:50 PM" PERCENTDONE="100" STARTDATE="41251.00000000" STARTDATESTRING="12/8/2012" CREATIONDATE="41251.53660880" CREATIONDATESTRING="12/8/2012 12:52 PM" LASTMOD="41251.78538194" LASTMODSTRING="12/8/2012 6:50 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Allow a path to begin with a User ID" ID="187" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41254.41487269" DONEDATESTRING="12/11/2012 9:57 AM" PERCENTDONE="100" STARTDATE="41251.00000000" STARTDATESTRING="12/8/2012" CREATIONDATE="41251.53577546" CREATIONDATESTRING="12/8/2012 12:51 PM" LASTMOD="41254.41487269" LASTMODSTRING="12/11/2012 9:57 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Allow the next part of a path to be a Space Name" ID="188" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41254.41489583" DONEDATESTRING="12/11/2012 9:57 AM" PERCENTDONE="100" STARTDATE="41251.00000000" STARTDATESTRING="12/8/2012" CREATIONDATE="41251.53619213" CREATIONDATESTRING="12/8/2012 12:52 PM" LASTMOD="41254.41489583" LASTMODSTRING="12/11/2012 9:57 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Allow the next part of a path to be a Thing Name" ID="192" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41254.41490741" DONEDATESTRING="12/11/2012 9:57 AM" PERCENTDONE="100" STARTDATE="41251.00000000" STARTDATESTRING="12/8/2012" CREATIONDATE="41251.53670139" CREATIONDATESTRING="12/8/2012 12:52 PM" LASTMOD="41254.41490741" LASTMODSTRING="12/11/2012 9:57 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="I can store a photograph in Querki" ID="59" COMMENTS="Doesn't have to be fancy (could even be horribly hacked to start with), but the wedding app requires it for the initial page. Should there be a photo Type for this? This sort of one-off photo doesn't match the Property system all that well, and suggests we want the ability to define a grab-bag of attached photos in a Space. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Base" DONEDATE="41254.69696759" DONEDATESTRING="12/11/2012 4:43 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.64972222" CREATIONDATESTRING="10/8/2012 3:35 PM" LASTMOD="41254.69696759" LASTMODSTRING="12/11/2012 4:43 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Upload photo" ID="60" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41254.69685185" DONEDATESTRING="12/11/2012 4:43 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.65023148" CREATIONDATESTRING="10/8/2012 3:36 PM" LASTMOD="41254.69685185" LASTMODSTRING="12/11/2012 4:43 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Store photo on disk, with pointer from DB" ID="61" COMMENTS="Actually, for now we'll do this with blobs. Probably not ideal in the long run, but it'll do to start. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41254.69690972" DONEDATESTRING="12/11/2012 4:43 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.65031250" CREATIONDATESTRING="10/8/2012 3:36 PM" LASTMOD="41254.69690972" LASTMODSTRING="12/11/2012 4:43 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Refer to photo from a Thing" ID="62" COMMENTS="Possibly simply as an HTML tag to begin with, but this will need to get more elegant fairly quickly. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41254.69695602" DONEDATESTRING="12/11/2012 4:43 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.65043981" CREATIONDATESTRING="10/8/2012 3:36 PM" LASTMOD="41254.69695602" LASTMODSTRING="12/11/2012 4:43 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="I can edit a YesNo Property" ID="196" COMMENTS="At the moment, YesNos can't be edited at all. Render a checkbox for them. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41254.62363426" DONEDATESTRING="12/11/2012 2:58 PM" PERCENTDONE="100" STARTDATE="41254.00000000" STARTDATESTRING="12/11/2012" CREATIONDATE="41254.47634259" CREATIONDATESTRING="12/11/2012 11:25 AM" LASTMOD="41254.62363426" LASTMODSTRING="12/11/2012 2:58 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can refer to a Thing with a URL based on its Name" ID="160" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41281.67515046" DONEDATESTRING="1/7/2013 4:12 PM" PERCENTDONE="100" STARTDATE="41233.00000000" STARTDATESTRING="11/20/2012" CREATIONDATE="41233.78074074" CREATIONDATESTRING="11/20/2012 6:44 PM" LASTMOD="41281.67515046" LASTMODSTRING="1/7/2013 4:12 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can link to an outside URL using a QL expression" ID="85" COMMENTS="That is, I should be able to say [[http://thingy.com/blah/foo.html("My Link")]] and have it do the right thing. This is the camel's nose in the tent for QL, but keep the notion simple to start with. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="QL" DONEDATE="41281.67612269" DONEDATESTRING="1/7/2013 4:13 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.69106481" CREATIONDATESTRING="10/8/2012 4:35 PM" LASTMOD="41281.67612269" LASTMODSTRING="1/7/2013 4:13 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can link to a local Page using a QL expression" ID="92" COMMENTS="Needed so that we can have multiple pages on the initial invitations. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="QL" DONEDATE="41281.67633102" DONEDATESTRING="1/7/2013 4:13 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.69666667" CREATIONDATESTRING="10/8/2012 4:43 PM" LASTMOD="41281.67633102" LASTMODSTRING="1/7/2013 4:13 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can log into Querki securely" ID="177" COMMENTS="That is, using configuration not open-sourced.
This is temporary, at least for the most part -- most logins will happen more normally. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41260.74131944" DONEDATESTRING="12/17/2012 5:47 PM" PERCENTDONE="100" STARTDATE="41249.00000000" STARTDATESTRING="12/6/2012" CREATIONDATE="41249.32358796" CREATIONDATESTRING="12/6/2012 7:45 AM" LASTMOD="41260.74131944" LASTMODSTRING="12/17/2012 5:47 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Separate public config from private" ID="179" COMMENTS="Private needs to be ignored from Git, and versioned somewhere else.
Public config should define structure; private should instantiate it. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41260.74129630" DONEDATESTRING="12/17/2012 5:47 PM" PERCENTDONE="100" STARTDATE="41249.00000000" STARTDATESTRING="12/6/2012" CREATIONDATE="41249.32406250" CREATIONDATESTRING="12/6/2012 7:46 AM" LASTMOD="41260.74129630" LASTMODSTRING="12/17/2012 5:47 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Move login credentials to config" ID="180" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41260.74130787" DONEDATESTRING="12/17/2012 5:47 PM" PERCENTDONE="100" STARTDATE="41249.00000000" STARTDATESTRING="12/6/2012" CREATIONDATE="41249.32460648" CREATIONDATESTRING="12/6/2012 7:47 AM" LASTMOD="41260.74130787" LASTMODSTRING="12/17/2012 5:47 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
</TASK>
<TASK TITLE="Sprint 6: January 7 - 20, 2013" ID="206" COMMENTS="The two-week gap between Sprints 5 and 6 was Christmas Holiday down in Florida, plus some time off up here, plus a bit. My main focus during that time was the OP Compiler; didn't do a lot of Querki. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41299.45988426" DONEDATESTRING="1/25/2013 11:02 AM" PERCENTDONE="100" STARTDATE="41281.00000000" STARTDATESTRING="1/7/2013" CREATIONDATE="41281.67283565" CREATIONDATESTRING="1/7/2013 4:08 PM" LASTMOD="41299.45988426" LASTMODSTRING="1/25/2013 11:02 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Add a Property dynamically" ID="161" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41281.67393519" DONEDATESTRING="1/7/2013 4:10 PM" PERCENTDONE="100" STARTDATE="41234.00000000" STARTDATESTRING="11/21/2012" CREATIONDATE="41234.37467593" CREATIONDATESTRING="11/21/2012 8:59 AM" LASTMOD="41281.67393519" LASTMODSTRING="1/7/2013 4:10 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Serialize a Property" ID="157" COMMENTS="And more importantly, deserialize it. The code for this is written but untested. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41281.67395833" DONEDATESTRING="1/7/2013 4:10 PM" PERCENTDONE="100" STARTDATE="41228.00000000" STARTDATESTRING="11/15/2012" CREATIONDATE="41228.39231481" CREATIONDATESTRING="11/15/2012 9:24 AM" LASTMOD="41281.67395833" LASTMODSTRING="1/7/2013 4:10 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can specify the target Kind for a Property" ID="197" COMMENTS="For example, a meta-Property that only applies to Properties shouldn't show up when I'm editing a Thing. At the least, we want to be able to specify that a Property applies to:
- Things
- Properties
- Models
- Spaces
and combinations of the above.
This should be implemented as a meta-Property, of course, which itself only applies to Properties. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41281.72060185" DONEDATESTRING="1/7/2013 5:17 PM" PERCENTDONE="100" STARTDATE="41254.00000000" STARTDATESTRING="12/11/2012" CREATIONDATE="41254.51111111" CREATIONDATESTRING="12/11/2012 12:16 PM" LASTMOD="41281.72060185" LASTMODSTRING="1/7/2013 5:17 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can add a module to the code" ID="207" COMMENTS="Entirely a refactoring task, but better done sooner than too much later.
The key notion is that we should begin to write most code in "modules" -- interdependent collections of Properties, Things, and listeners, hooked into a complex event system throughout the code. These should be as independent of each other as possible, and decently coherent.
The first example is almost certainly Stylesheets -- a good collection of pieces currently scattered all over the place.
Each module would be assigned a hardcoded ModuleID; this is probably the upper 16 bits of the System Shard. The lower 16 bits are the OIDs within the Module. That ought to be plenty of space for the long run.
Ideally, modules would be dynamically loaded, to preserve true independence, but for now, it's good enough to put them in their own namespaces and impose some conventions that the main system code cannot call directly into a Module. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41282.76925926" DONEDATESTRING="1/8/2013 6:27 PM" PERCENTDONE="100" STARTDATE="41281.00000000" STARTDATESTRING="1/7/2013" CREATIONDATE="41281.89153935" CREATIONDATESTRING="1/7/2013 9:23 PM" LASTMOD="41282.76927083" LASTMODSTRING="1/8/2013 6:27 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="As an interested contributor, I can refer to public architectural documents" ID="91" COMMENTS="These will probably go into GitHub to begin with. They should be a refined version of the notes I've been writing in Google Docs. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Code Meta" DONEDATE="41292.39710648" DONEDATESTRING="1/18/2013 9:31 AM" PERCENTDONE="100" DUEDATE="41214.00000000" DUEDATESTRING="11/1/2012" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.69527778" CREATIONDATESTRING="10/8/2012 4:41 PM" LASTMOD="41292.39710648" LASTMODSTRING="1/18/2013 9:31 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I understand my language" ID="112" COMMENTS="That is, finish reading Scala for the Impatient. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41292.39709491" DONEDATESTRING="1/18/2013 9:31 AM" PERCENTDONE="100" DUEDATE="41214.00000000" DUEDATESTRING="11/1/2012" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.72103009" CREATIONDATESTRING="10/8/2012 5:18 PM" LASTMOD="41292.39709491" LASTMODSTRING="1/18/2013 9:31 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can publicize our wedding hold-the-date invitation" ID="50" COMMENTS="This is initially a simple page, with no dynamic content. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Use Case" DONEDATE="41292.40074074" DONEDATESTRING="1/18/2013 9:37 AM" PERCENTDONE="100" DUEDATE="41340.69696759" DUEDATESTRING="3/7/2013 4:43 PM" STARTDATE="41255.69696759" STARTDATESTRING="12/12/2012 4:43 PM" CREATIONDATE="41190.64504630" CREATIONDATESTRING="10/8/2012 3:28 PM" LASTMOD="41292.40074074" LASTMODSTRING="1/18/2013 9:37 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Write text of page" ID="56" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41281.46351852" DONEDATESTRING="1/7/2013 11:07 AM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.64795139" CREATIONDATESTRING="10/8/2012 3:33 PM" LASTMOD="41281.46351852" LASTMODSTRING="1/7/2013 11:07 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Create Space for the Wedding" ID="57" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41281.46353009" DONEDATESTRING="1/7/2013 11:07 AM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.64799769" CREATIONDATESTRING="10/8/2012 3:33 PM" LASTMOD="41281.46353009" LASTMODSTRING="1/7/2013 11:07 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Style page with CSS" ID="58" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41281.46355324" DONEDATESTRING="1/7/2013 11:07 AM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.64806713" CREATIONDATESTRING="10/8/2012 3:33 PM" LASTMOD="41281.46355324" LASTMODSTRING="1/7/2013 11:07 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Tweaks and sign-off from Kate" ID="205" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41292.39692130" DONEDATESTRING="1/18/2013 9:31 AM" PERCENTDONE="100" STARTDATE="41281.00000000" STARTDATESTRING="1/7/2013" CREATIONDATE="41281.46356481" CREATIONDATESTRING="1/7/2013 11:07 AM" LASTMOD="41292.39692130" LASTMODSTRING="1/18/2013 9:31 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
</TASK>
<TASK TITLE="Sprint 7: January 21 - February 3, 2013" ID="223" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41310.36466435" DONEDATESTRING="2/5/2013 8:45 AM" PERCENTDONE="100" STARTDATE="41299.00000000" STARTDATESTRING="1/25/2013" CREATIONDATE="41299.45990741" CREATIONDATESTRING="1/25/2013 11:02 AM" LASTMOD="41310.36466435" LASTMODSTRING="2/5/2013 8:45 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I have a good development computer" ID="208" COMMENTS="That is, I should install the new desktop machine, which is much more powerful than my laptop. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41299.45981481" DONEDATESTRING="1/25/2013 11:02 AM" PERCENTDONE="100" STARTDATE="41282.00000000" STARTDATESTRING="1/8/2013" CREATIONDATE="41282.32619213" CREATIONDATESTRING="1/8/2013 7:49 AM" LASTMOD="41299.45981481" LASTMODSTRING="1/25/2013 11:02 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Make OneColl an Iterable" ID="200" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41299.45968750" DONEDATESTRING="1/25/2013 11:01 AM" PERCENTDONE="100" STARTDATE="41261.00000000" STARTDATESTRING="12/18/2012" CREATIONDATE="41261.35983796" CREATIONDATESTRING="12/18/2012 8:38 AM" LASTMOD="41299.45968750" LASTMODSTRING="1/25/2013 11:01 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Make Collection understand that it wraps around Iterables" ID="201" COMMENTS="Possibly make Collection a "with Iterable"? Can we reduce the overhead here? Should we? " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41299.45971065" DONEDATESTRING="1/25/2013 11:01 AM" PERCENTDONE="100" STARTDATE="41261.00000000" STARTDATESTRING="12/18/2012" CREATIONDATE="41261.35990741" CREATIONDATESTRING="12/18/2012 8:38 AM" LASTMOD="41299.45971065" LASTMODSTRING="1/25/2013 11:01 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Take advantage of the fact that things are now consistent" ID="202" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41299.45972222" DONEDATESTRING="1/25/2013 11:02 AM" PERCENTDONE="100" STARTDATE="41261.00000000" STARTDATESTRING="12/18/2012" CREATIONDATE="41261.36011574" CREATIONDATESTRING="12/18/2012 8:38 AM" LASTMOD="41299.45972222" LASTMODSTRING="1/25/2013 11:02 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can link to a Thing, showing its Display Name" ID="211" COMMENTS="That is, [[Other Thing]] " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41299.46087963" DONEDATESTRING="1/25/2013 11:03 AM" PERCENTDONE="100" STARTDATE="41292.00000000" STARTDATESTRING="1/18/2013" CREATIONDATE="41292.40114583" CREATIONDATESTRING="1/18/2013 9:37 AM" LASTMOD="41299.46087963" LASTMODSTRING="1/25/2013 11:03 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can display the contents of a single-valued Property" ID="212" COMMENTS="That is, [[Property Name]]. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41299.46094907" DONEDATESTRING="1/25/2013 11:03 AM" PERCENTDONE="100" STARTDATE="41292.00000000" STARTDATESTRING="1/18/2013" CREATIONDATE="41292.40158565" CREATIONDATESTRING="1/18/2013 9:38 AM" LASTMOD="41299.46094907" LASTMODSTRING="1/25/2013 11:03 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can display a field from a linked Thing" ID="214" COMMENTS="That is, [[Other Thing -> ""[[Name]]""]] " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41303.47460648" DONEDATESTRING="1/29/2013 11:23 AM" PERCENTDONE="100" STARTDATE="41292.00000000" STARTDATESTRING="1/18/2013" CREATIONDATE="41292.40200231" CREATIONDATESTRING="1/18/2013 9:38 AM" LASTMOD="41303.47460648" LASTMODSTRING="1/29/2013 11:23 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Sprint 8: February 4 - 17, 2013" ID="231" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41330.73920139" DONEDATESTRING="2/25/2013 5:44 PM" PERCENTDONE="100" STARTDATE="41310.00000000" STARTDATESTRING="2/5/2013" CREATIONDATE="41310.36436343" CREATIONDATESTRING="2/5/2013 8:44 AM" LASTMOD="41330.73920139" LASTMODSTRING="2/25/2013 5:44 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can edit a Thing via double-click" ID="227" COMMENTS="Mainly a jQuery job, and probably a good one to get my feet wet. Put a dblClick handler on the content, and do the edit action when triggered.
Then remove the Edit button from its current prominent position, into a menu somewhere. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41312.34906250" DONEDATESTRING="2/7/2013 8:22 AM" PERCENTDONE="100" STARTDATE="41303.00000000" STARTDATESTRING="1/29/2013" CREATIONDATE="41303.76067130" CREATIONDATESTRING="1/29/2013 6:15 PM" LASTMOD="41312.34906250" LASTMODSTRING="2/7/2013 8:22 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can instantiate a Model from it" ID="235" COMMENTS="That is, there should be a menu pick under the Model (and maybe a button on it), letting me Create a Foo.
The main effort here is probably adding a query param to /create, which specifies the Model to use in creation.
The menu pick should probably be available from *any* Thing, but the button is only on Things marked as Models. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41313.44535880" DONEDATESTRING="2/8/2013 10:41 AM" PERCENTDONE="100" STARTDATE="41312.00000000" STARTDATESTRING="2/7/2013" CREATIONDATE="41312.40600694" CREATIONDATESTRING="2/7/2013 9:44 AM" LASTMOD="41313.44535880" LASTMODSTRING="2/8/2013 10:41 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can instantiate any Model from the menus" ID="236" COMMENTS="That is, under the Space's menu, the Create a Thing menu pick should pop up a dialog to select the Model to instantiate. Then we go straight to that. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41313.44545139" DONEDATESTRING="2/8/2013 10:41 AM" PERCENTDONE="100" STARTDATE="41312.00000000" STARTDATESTRING="2/7/2013" CREATIONDATE="41312.40690972" CREATIONDATESTRING="2/7/2013 9:45 AM" LASTMOD="41313.44545139" LASTMODSTRING="2/8/2013 10:41 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Improve PropList" ID="238" COMMENTS="This is currently a very simple mapping, but should wrap the Property with meta-attributes. In particular, we need a way to represent that this Property is inherited, provide the default value, and say explicitly whether the Thing currently has a value. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41313.47024306" DONEDATESTRING="2/8/2013 11:17 AM" PERCENTDONE="100" STARTDATE="41312.00000000" STARTDATESTRING="2/7/2013" CREATIONDATE="41312.40886574" CREATIONDATESTRING="2/7/2013 9:48 AM" LASTMOD="41313.47024306" LASTMODSTRING="2/8/2013 11:17 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can say explicitly when to override a Property" ID="239" COMMENTS="We should display the default value, if it exists, as a prompt. When I begin to edit, should that prompt become the initial value? Maybe there should be a button to say, "Edit the current value"?
Should there be an "Edit" button as well? My original design had been to start with the edit field disabled, and you press Edit to change it, but that may well be adding a step for no good reason. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41313.80103009" DONEDATESTRING="2/8/2013 7:13 PM" PERCENTDONE="100" STARTDATE="41312.00000000" STARTDATESTRING="2/7/2013" CREATIONDATE="41312.40986111" CREATIONDATESTRING="2/7/2013 9:50 AM" LASTMOD="41313.80103009" LASTMODSTRING="2/8/2013 7:13 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can delete my overridden value of a Property" ID="240" COMMENTS="This should be a revert button. It deletes whatever I currently have in this field, and goes back to the default. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41313.80107639" DONEDATESTRING="2/8/2013 7:13 PM" PERCENTDONE="100" STARTDATE="41312.00000000" STARTDATESTRING="2/7/2013" CREATIONDATE="41312.41075231" CREATIONDATESTRING="2/7/2013 9:51 AM" LASTMOD="41313.80107639" LASTMODSTRING="2/8/2013 7:13 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can override/revert all field types." ID="245" COMMENTS="A bunch of key code is in the Text input renderers, and needs to get pulled up.
As of this writing, I've got things working reasonably commonly. I just need to pull the guts of CommonInputRenderers.renderAnyText() up to PType.renderInput() so that it gets used across the board, and remove the now-redundant attributes from all of the other renderers. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41317.48732639" DONEDATESTRING="2/12/2013 11:41 AM" PERCENTDONE="100" STARTDATE="41313.00000000" STARTDATESTRING="2/8/2013" CREATIONDATE="41313.80136574" CREATIONDATESTRING="2/8/2013 7:13 PM" LASTMOD="41317.48732639" LASTMODSTRING="2/12/2013 11:41 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can edit a Property, with the ability to override or revert" ID="244" COMMENTS="So far, things work on create but not edit. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41317.48729167" DONEDATESTRING="2/12/2013 11:41 AM" PERCENTDONE="100" STARTDATE="41313.00000000" STARTDATESTRING="2/8/2013" CREATIONDATE="41313.80109954" CREATIONDATESTRING="2/8/2013 7:13 PM" LASTMOD="41317.48729167" LASTMODSTRING="2/12/2013 11:41 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can display a link to a linked Thing with text of my choosing" ID="215" COMMENTS="That is, [[Other Thing -> ""__[[Name]]__""]] " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41317.60957176" DONEDATESTRING="2/12/2013 2:37 PM" PERCENTDONE="100" STARTDATE="41292.00000000" STARTDATESTRING="1/18/2013" CREATIONDATE="41292.40247685" CREATIONDATESTRING="1/18/2013 9:39 AM" LASTMOD="41317.60957176" LASTMODSTRING="2/12/2013 2:37 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can display links to Property values" ID="216" COMMENTS="That is,
[[My List -> ""* __[[Name]]__ -- [[Its Field]]""]] " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41317.60961806" DONEDATESTRING="2/12/2013 2:37 PM" PERCENTDONE="100" STARTDATE="41292.00000000" STARTDATESTRING="1/18/2013" CREATIONDATE="41292.40331019" CREATIONDATESTRING="1/18/2013 9:40 AM" LASTMOD="41317.60961806" LASTMODSTRING="2/12/2013 2:37 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can render the incoming Context inside of a Text" ID="228" COMMENTS="This is the ____ (four underscore) operator, which means "simply render this Context, right here". Most often used for incoming Links, which is why it looks like an empty Link operator, but could be used for any incoming Context.
Many likely examples, but a good one is the _bullet system Thing, whose _apply() should be:
!""* ____""
That is, newline, followed by a bullet, whose content is the incoming Context. That way, the Expression:
[[My List of Things -> _bullets]]
comes out as a bulleted list of Links. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41317.60962963" DONEDATESTRING="2/12/2013 2:37 PM" PERCENTDONE="100" STARTDATE="41304.00000000" STARTDATESTRING="1/30/2013" CREATIONDATE="41304.39679398" CREATIONDATESTRING="1/30/2013 9:31 AM" LASTMOD="41317.60962963" LASTMODSTRING="2/12/2013 2:37 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Better UI for Create/Edit" ID="234" COMMENTS="This is a huge can of worms introduced by the problem that I can't currently just inherit a property from my Model -- when I Create, I wind up overriding the Text properties with empty values. Fixing this has prompted a lot of improvements, including the below. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41317.75762731" DONEDATESTRING="2/12/2013 6:10 PM" PERCENTDONE="100" STARTDATE="41312.00000000" STARTDATESTRING="2/7/2013" CREATIONDATE="41312.40504630" CREATIONDATESTRING="2/7/2013 9:43 AM" LASTMOD="41317.75762731" LASTMODSTRING="2/12/2013 6:10 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can choose which Model to instantiate *before* getting to the Create window" ID="242" COMMENTS="That is, Create a Thing should pop a dialog box that lets you select the Model, and that gets fed into /create.
Doing this would allow us to remove the current change-model selection that's clogging up the window; that would be awfully nice. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41317.75755787" DONEDATESTRING="2/12/2013 6:10 PM" PERCENTDONE="100" STARTDATE="41313.00000000" STARTDATESTRING="2/8/2013" CREATIONDATE="41313.50201389" CREATIONDATESTRING="2/8/2013 12:02 PM" LASTMOD="41317.75755787" LASTMODSTRING="2/12/2013 6:10 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Reduce the prominence of changing Model in the Edit window" ID="237" COMMENTS="We probably still need the capability (I can think of various use cases, especially in complex hierarchies), but it should probably be a button-pick. And it should likely be a *different* function than it currently is. It would probably be acceptable to remove this capability entirely, and re-add it later as an Ajax function. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41317.75761574" DONEDATESTRING="2/12/2013 6:10 PM" PERCENTDONE="100" STARTDATE="41312.00000000" STARTDATESTRING="2/7/2013" CREATIONDATE="41312.40769676" CREATIONDATESTRING="2/7/2013 9:47 AM" LASTMOD="41317.75761574" LASTMODSTRING="2/12/2013 6:10 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
</TASK>
<TASK TITLE="Sprint 9: February 25 - March 10" ID="246" COMMENTS="Note a week skipped between sprint 8 and 9, due to working on the OP " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41344.35929398" DONEDATESTRING="3/11/2013 8:37 AM" PERCENTDONE="100" STARTDATE="41330.00000000" STARTDATESTRING="2/25/2013" CREATIONDATE="41330.73930556" CREATIONDATESTRING="2/25/2013 5:44 PM" LASTMOD="41344.35929398" LASTMODSTRING="3/11/2013 8:37 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can render Collection input properly" ID="209" COMMENTS="At the moment, input is being routed solely through the PType. It should really be going through the CType as well, so that Optional and QList work properly. Optional and ExactlyOne should be fairly easy; QList will be challenging, but needs to happen sooner or later. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41330.74078704" DONEDATESTRING="2/25/2013 5:46 PM" PERCENTDONE="100" STARTDATE="41282.00000000" STARTDATESTRING="1/8/2013" CREATIONDATE="41282.76967593" CREATIONDATESTRING="1/8/2013 6:28 PM" LASTMOD="41330.74078704" LASTMODSTRING="2/25/2013 5:46 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can easily delete a Property from a Thing" ID="225" COMMENTS="Mainly a UI task -- a red "-" button or something like that. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41330.74047454" DONEDATESTRING="2/25/2013 5:46 PM" PERCENTDONE="100" STARTDATE="41303.00000000" STARTDATESTRING="1/29/2013" CREATIONDATE="41303.75915509" CREATIONDATESTRING="1/29/2013 6:13 PM" LASTMOD="41330.74047454" LASTMODSTRING="2/25/2013 5:46 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Get Actuarius tests working" ID="247" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41344.35873843" DONEDATESTRING="3/11/2013 8:36 AM" PERCENTDONE="100" STARTDATE="41331.00000000" STARTDATESTRING="2/26/2013" CREATIONDATE="41331.75403935" CREATIONDATESTRING="2/26/2013 6:05 PM" LASTMOD="41344.35873843" LASTMODSTRING="3/11/2013 8:36 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add syntax for Description Lists" ID="248" COMMENTS="As an easy first thing to tweak. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41344.35875000" DONEDATESTRING="3/11/2013 8:36 AM" PERCENTDONE="100" STARTDATE="41331.00000000" STARTDATESTRING="2/26/2013" CREATIONDATE="41331.75417824" CREATIONDATESTRING="2/26/2013 6:06 PM" LASTMOD="41344.35875000" LASTMODSTRING="3/11/2013 8:36 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Test Description Lists" ID="249" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41344.35921296" DONEDATESTRING="3/11/2013 8:37 AM" PERCENTDONE="100" STARTDATE="41331.00000000" STARTDATESTRING="2/26/2013" CREATIONDATE="41331.75447917" CREATIONDATESTRING="2/26/2013 6:06 PM" LASTMOD="41344.35921296" LASTMODSTRING="3/11/2013 8:37 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can use MySQL as the underlying DB" ID="155" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41331.64915509" DONEDATESTRING="2/26/2013 3:34 PM" PERCENTDONE="100" STARTDATE="41227.00000000" STARTDATESTRING="11/14/2012" CREATIONDATE="41227.52487269" CREATIONDATESTRING="11/14/2012 12:35 PM" LASTMOD="41331.64915509" LASTMODSTRING="2/26/2013 3:34 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Add MySQL support" ID="145" COMMENTS="http://stackoverflow.com/questions/10007029/steps-needed-to-use-mysql-database-with-play-framework-2-0 " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41331.64914352" DONEDATESTRING="2/26/2013 3:34 PM" PERCENTDONE="100" STARTDATE="41218.00000000" STARTDATESTRING="11/5/2012" CREATIONDATE="41218.50619213" CREATIONDATESTRING="11/5/2012 12:08 PM" LASTMOD="41331.64914352" LASTMODSTRING="2/26/2013 3:34 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="I can define a basic QL Query" ID="77" COMMENTS="Not necessarily the whole language, but at least enough for Use Case 76. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="QL" DONEDATE="41330.73908565" DONEDATESTRING="2/25/2013 5:44 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.66328704" CREATIONDATESTRING="10/8/2012 3:55 PM" LASTMOD="41330.73908565" LASTMODSTRING="2/25/2013 5:44 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can display the contents of a list-valued Property" ID="213" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41330.73907407" DONEDATESTRING="2/25/2013 5:44 PM" PERCENTDONE="100" STARTDATE="41292.00000000" STARTDATESTRING="1/18/2013" CREATIONDATE="41292.40185185" CREATIONDATESTRING="1/18/2013 9:38 AM" LASTMOD="41330.73907407" LASTMODSTRING="2/25/2013 5:44 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
</TASK>
<TASK TITLE="Sprint 10: March 11 - 24" ID="258" COMMENTS="NOTE: this Sprint was simply cancelled. I wound up losing the entire next month or so working on my house. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41381.42828704" DONEDATESTRING="4/17/2013 10:16 AM" PERCENTDONE="100" STARTDATE="41344.00000000" STARTDATESTRING="3/11/2013" CREATIONDATE="41344.35934028" CREATIONDATESTRING="3/11/2013 8:37 AM" LASTMOD="41381.42828704" LASTMODSTRING="4/17/2013 10:16 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can define a Link Property between two Things" ID="78" COMMENTS="We will use this to link from Parents to Children, and between spice. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Data Model" DONEDATE="41381.43182870" DONEDATESTRING="4/17/2013 10:21 AM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.66594907" CREATIONDATESTRING="10/8/2012 3:58 PM" LASTMOD="41381.43182870" LASTMODSTRING="4/17/2013 10:21 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add Markdown enhancement to let me specify a class at the div or span level" ID="163" COMMENTS="Currently thinking something like, "{classname:...}" would wrap the contents in a div. Can I use the same syntax and automatically detect that it should be at the span level instead? " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41344.59756944" DONEDATESTRING="3/11/2013 2:20 PM" PERCENTDONE="100" STARTDATE="41234.00000000" STARTDATESTRING="11/21/2012" CREATIONDATE="41234.38431713" CREATIONDATESTRING="11/21/2012 9:13 AM" LASTMOD="41344.59756944" LASTMODSTRING="3/11/2013 2:20 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Add syntax for Class markup" ID="250" COMMENTS="The current theory is that the syntax is:
{{name: ...}}
where "name" is the name of a CSS class.
If the open-phrase is on a line to itself, it defines a div, which runs until we find a close-phrase on a line to itself.
If the open-phrase has content before or after it, it defines a span, which should be closed in the same block. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41344.59755787" DONEDATESTRING="3/11/2013 2:20 PM" PERCENTDONE="100" STARTDATE="41331.00000000" STARTDATESTRING="2/26/2013" CREATIONDATE="41331.75454861" CREATIONDATESTRING="2/26/2013 6:06 PM" LASTMOD="41344.59755787" LASTMODSTRING="3/11/2013 2:20 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Test Class markup" ID="251" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41344.59756944" DONEDATESTRING="3/11/2013 2:20 PM" PERCENTDONE="100" STARTDATE="41331.00000000" STARTDATESTRING="2/26/2013" CREATIONDATE="41331.75594907" CREATIONDATESTRING="2/26/2013 6:08 PM" LASTMOD="41344.59756944" LASTMODSTRING="3/11/2013 2:20 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
</TASK>
<TASK TITLE="Sprint 10a: April 17 - 28" ID="260" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41394.44461806" DONEDATESTRING="4/30/2013 10:40 AM" PERCENTDONE="100" STARTDATE="41381.00000000" STARTDATESTRING="4/17/2013" CREATIONDATE="41381.42831019" CREATIONDATESTRING="4/17/2013 10:16 AM" LASTMOD="41394.44461806" LASTMODSTRING="4/30/2013 10:40 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="We should be able to load an inconsistent Space without crashing" ID="266" COMMENTS="It has been the case that any DB inconsistency causes the Space to become unloadable. That's nice in theory, but in practice is a pain. So implemented some catches that allow the Space to load with the problem objects snipped out, and the exceptions logged. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41387.54415509" DONEDATESTRING="4/23/2013 1:03 PM" PERCENTDONE="100" STARTDATE="41387.00000000" STARTDATESTRING="4/23/2013" CREATIONDATE="41387.54325231" CREATIONDATESTRING="4/23/2013 1:02 PM" LASTMOD="41387.54415509" LASTMODSTRING="4/23/2013 1:03 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I cannot put an empty YesNo Property on a Model" ID="267" COMMENTS="This arose when I went to add the RSVP property to Invitee. It simply fails to take. I suspect it's because of the way checkboxes work in the browser. The problem arises regardless of whether the Property is Optional or Required; it always happens when the checkbox is left empty. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="8" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41387.66561343" DONEDATESTRING="4/23/2013 3:58 PM" PERCENTDONE="100" STARTDATE="41387.00000000" STARTDATESTRING="4/23/2013" CREATIONDATE="41387.61178241" CREATIONDATESTRING="4/23/2013 2:40 PM" LASTMOD="41387.66561343" LASTMODSTRING="4/23/2013 3:58 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Introduce Identity" ID="264" COMMENTS="An Identity has:
An OID
A link to a User object (by OID)
A public Name
An IdentityKind, which is the top-level "idea" of which type of Identity this is
An optional IdentityProvider, which is something like Facebook vs. Google vs. OpenId
An optional IdentityHandle, which is the ID of this Identity within the IdentityProvider
An optional (but usually expected) Email Address (indexed, so we can look it up later)
An "I don't want to get any email from Querki ever" flag, so we can note that at the bottom of the email. " CUSTOMCOMMENTS="fQUAAHic3VRLb9swDN65QP8DkUvbYQ38zGM9ZegewbB1w7CbLrJN21oUybDpPBDkv4+Si6wrhmC7DjBIGfzI7yMp6CBaKkMhTae8yZsqjNJIFFiWgbNamioM4vggSmuIMs2HQJRGaVHmtWw7pAAWrZL67sih8PdQBN/268xy7Hh5cRAvRYUGW0m2hU9dSVgognSchOOIvzQM7o5io3C7UqZIRJ+HopFtIWgXRwHbSeLsfOJsGM28mwTezT0gijwiSj0kmnkI53qXekg885Ak9JAk8RC2zqWhh6SJh6RTD5kEs0du76YeMg08ZBp7yHTiIVzEu0HsbFA7G+TOB7nzQe58kBsGTm/ZhRNYGFgWaEjRHmrZvXaNX1749g+iMYQ7csO9ejMVJLOjG2Vj+NMbnWniAwcbw2PjGoHP2FHm4MejKNVtzLRaxUHwf8/SjfFheT8M709zW4BWZgVkQcL3Dluw2Q/MCa6zvUu8OZfZ9JlWOXyWazwD+7XHj7yNV7CtVV6D6oBqZN7mVuMGNYxUgXIEtnwE0L5B93e6BFRzjurOMtmGlDVSn7K+tHbDhdsntJ1dI9cyFXe+Qngnc8ysXcGmG8N7ayuN/vjQoFkW/8b2QZpC47MWl/euDa/+1MtWOQVD+JnSv2O8znqCvuul1nvAXcMrw+IG3q6l0rAoiha7Dq7d7d8hz7yzsEXIpQHtWuU3pm9AS8L23IINjJZQWHNFsJWG3CWpkEAapvREZWvX8LXHdqWAl9iOgF/H6imdscRLriVnkW83s0Sc5CeCQ5nxIIHfwxc/Aaz01xIA" COMMENTSTYPE="849cf988-79fe-418a-a40d-01fe3afcab2c" PRIORITY="5" RISK="0" DONEDATE="41394.44380787" DONEDATESTRING="4/30/2013 10:39 AM" PERCENTDONE="100" STARTDATE="41381.00000000" STARTDATESTRING="4/17/2013" CREATIONDATE="41381.49248843" CREATIONDATESTRING="4/17/2013 11:49 AM" LASTMOD="41394.44380787" LASTMODSTRING="4/30/2013 10:39 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Sprint 11: April 29 - May 12" ID="270" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41407.36459491" DONEDATESTRING="5/13/2013 8:45 AM" PERCENTDONE="100" STARTDATE="41394.00000000" STARTDATESTRING="4/30/2013" CREATIONDATE="41394.44464120" CREATIONDATESTRING="4/30/2013 10:40 AM" LASTMOD="41407.36459491" LASTMODSTRING="5/13/2013 8:45 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can define an internal method on a Thing" ID="272" COMMENTS="This is needed so that we can implement the Send Mail button. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41394.44565972" DONEDATESTRING="4/30/2013 10:41 AM" PERCENTDONE="100" STARTDATE="41394.00000000" STARTDATESTRING="4/30/2013" CREATIONDATE="41394.44521991" CREATIONDATESTRING="4/30/2013 10:41 AM" LASTMOD="41394.44565972" LASTMODSTRING="4/30/2013 10:41 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Set up outgoing email capabilities for Querki" ID="261" COMMENTS="This likely requires setting up querki.net email addresses via Google Apps. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41395.59577546" DONEDATESTRING="5/1/2013 2:17 PM" PERCENTDONE="100" STARTDATE="41381.00000000" STARTDATESTRING="4/17/2013" CREATIONDATE="41381.43267361" CREATIONDATESTRING="4/17/2013 10:23 AM" LASTMOD="41395.59577546" LASTMODSTRING="5/1/2013 2:17 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can define an email template" ID="262" COMMENTS="This is similar to a standard page template, but likely will need some enhancements " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41395.59586806" DONEDATESTRING="5/1/2013 2:18 PM" PERCENTDONE="100" STARTDATE="41381.00000000" STARTDATESTRING="4/17/2013" CREATIONDATE="41381.43329861" CREATIONDATESTRING="4/17/2013 10:23 AM" LASTMOD="41395.59586806" LASTMODSTRING="5/1/2013 2:18 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can invoke an email template, sending to a specified list of Persons" ID="263" COMMENTS="There should be a way to define the "go" button. This should require explicit confirmation, at least for the time being. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41395.59597222" DONEDATESTRING="5/1/2013 2:18 PM" PERCENTDONE="100" STARTDATE="41381.00000000" STARTDATESTRING="4/17/2013" CREATIONDATE="41381.43408565" CREATIONDATESTRING="4/17/2013 10:25 AM" LASTMOD="41395.59597222" LASTMODSTRING="5/1/2013 2:18 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can invoke "send email" without creating a separate object" ID="274" COMMENTS="Really need a way to invoke the command via URL, or possibly via a button. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41396.51245370" DONEDATESTRING="5/2/2013 12:17 PM" PERCENTDONE="100" STARTDATE="41395.00000000" STARTDATESTRING="5/1/2013" CREATIONDATE="41395.59613426" CREATIONDATESTRING="5/1/2013 2:18 PM" LASTMOD="41396.51245370" LASTMODSTRING="5/2/2013 12:17 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Define a first-class Person type" ID="69" COMMENTS="This links to an Identity via a hidden OID. Note that the Person has a property that *links to* an Identity; they do not share the same OID. The Identity's OID should not be visible to the user who creates the Person object.
The idea here is that I can invite somebody into my Space by creating a Person object. The invitation gets sent to an *Identity*. If and only if the Identity responds do we even allow the inviter to see the Identity. (And under no circumstances do we allow them to see the full User.) " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41404.59038194" DONEDATESTRING="5/10/2013 2:10 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.65910880" CREATIONDATESTRING="10/8/2012 3:49 PM" LASTMOD="41404.59038194" LASTMODSTRING="5/10/2013 2:10 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can subclass the Person Type" ID="72" COMMENTS="We will need to be able to define a Person with an extra InvitationText property. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Data Model" DONEDATE="41400.35303241" DONEDATESTRING="5/6/2013 8:28 AM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.66070602" CREATIONDATESTRING="10/8/2012 3:51 PM" LASTMOD="41400.35303241" LASTMODSTRING="5/6/2013 8:28 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="[[InviteLink]] command" ID="277" COMMENTS="This is a method on Person. It returns a link to the Person object itself, plus the necessary hashed parameter to serve as a registration ID. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41404.59055556" DONEDATESTRING="5/10/2013 2:10 PM" PERCENTDONE="100" STARTDATE="41396.00000000" STARTDATESTRING="5/2/2013" CREATIONDATE="41396.56008102" CREATIONDATESTRING="5/2/2013 1:26 PM" LASTMOD="41404.59055556" LASTMODSTRING="5/10/2013 2:10 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Write the command" ID="278" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41396.66964120" DONEDATESTRING="5/2/2013 4:04 PM" PERCENTDONE="100" STARTDATE="41396.00000000" STARTDATESTRING="5/2/2013" CREATIONDATE="41396.56134259" CREATIONDATESTRING="5/2/2013 1:28 PM" LASTMOD="41396.66964120" LASTMODSTRING="5/2/2013 4:04 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Introduce the notion of internal properties" ID="280" COMMENTS="This is a property that is not visible in the UI. It should be a meta-property flag; if set, we suppress rendering, and we don't list it in any property lists in the UI. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41396.70199074" DONEDATESTRING="5/2/2013 4:50 PM" PERCENTDONE="100" STARTDATE="41396.00000000" STARTDATESTRING="5/2/2013" CREATIONDATE="41396.56207176" CREATIONDATESTRING="5/2/2013 1:29 PM" LASTMOD="41396.70199074" LASTMODSTRING="5/2/2013 4:50 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Generate the link from Person to the right Identity, if necessary" ID="279" COMMENTS="Person contains an internal property with the OID of the Identity. This gets set while creating the InviteLink.
First we look whether the Person already points to an Identity; we don't need to do anything if it does.
It creates a new Identity if it doesn't already exist, in which case we also create a User with no password. LATER: no, I don't think we create the User, at least not yet. It doesn't add any new information, and it's problematic down the line. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41404.59042824" DONEDATESTRING="5/10/2013 2:10 PM" PERCENTDONE="100" STARTDATE="41396.00000000" STARTDATESTRING="5/2/2013" CREATIONDATE="41396.56142361" CREATIONDATESTRING="5/2/2013 1:28 PM" LASTMOD="41404.59042824" LASTMODSTRING="5/10/2013 2:10 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Hash the Person and Identity OIDs together" ID="281" COMMENTS="We hash both of these together to generate the login code.
Along with these, also hash in some secret salt, which comes from the config file. The idea should be that, even if you have the OIDs of both the Person and Identity, you still can't generate a login without the secret. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41404.59050926" DONEDATESTRING="5/10/2013 2:10 PM" PERCENTDONE="100" STARTDATE="41396.00000000" STARTDATESTRING="5/2/2013" CREATIONDATE="41396.56453704" CREATIONDATESTRING="5/2/2013 1:32 PM" LASTMOD="41404.59050926" LASTMODSTRING="5/10/2013 2:10 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Generate the URL" ID="282" COMMENTS="We want the URL of the Person's page, plus the hash as a URL parameter. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41404.59053241" DONEDATESTRING="5/10/2013 2:10 PM" PERCENTDONE="100" STARTDATE="41396.00000000" STARTDATESTRING="5/2/2013" CREATIONDATE="41396.56613426" CREATIONDATESTRING="5/2/2013 1:35 PM" LASTMOD="41404.59053241" LASTMODSTRING="5/10/2013 2:10 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Given the URL, I can *see* the page in the first place" ID="295" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41404.59067130" DONEDATESTRING="5/10/2013 2:10 PM" PERCENTDONE="100" STARTDATE="41400.00000000" STARTDATESTRING="5/6/2013" CREATIONDATE="41400.35168981" CREATIONDATESTRING="5/6/2013 8:26 AM" LASTMOD="41404.59067130" LASTMODSTRING="5/10/2013 2:10 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can see a list of all of the Persons that I have created" ID="76" COMMENTS="This drives a bunch of core functionality around QL and such. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Use Case" NUMDEPENDS="2" DEPENDS="77" DEPENDS1="72" DONEDATE="41406.54832176" DONEDATESTRING="5/12/2013 1:09 PM" PERCENTDONE="100" STARTDATE="41401.35303241" STARTDATESTRING="5/7/2013 8:28 AM" CREATIONDATE="41190.66262731" CREATIONDATESTRING="10/8/2012 3:54 PM" LASTMOD="41406.54832176" LASTMODSTRING="5/12/2013 1:09 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Try out Play's javascriptRouter stuff" ID="299" COMMENTS="http://www.playframework.com/documentation/2.1.0/ScalaJavascriptRouting
Make sure I understand how this works, first. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41406.55680556" DONEDATESTRING="5/12/2013 1:21 PM" PERCENTDONE="100" STARTDATE="41404.00000000" STARTDATESTRING="5/10/2013" CREATIONDATE="41404.62671296" CREATIONDATESTRING="5/10/2013 3:02 PM" LASTMOD="41406.55680556" LASTMODSTRING="5/12/2013 1:21 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="When I click on my [[InviteLink]] URL, it acts as a login" ID="81" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41404.59020833" DONEDATESTRING="5/10/2013 2:09 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.66969907" CREATIONDATESTRING="10/8/2012 4:04 PM" LASTMOD="41404.59020833" LASTMODSTRING="5/10/2013 2:09 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Enhance User to understand Identities" ID="283" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41404.59003472" DONEDATESTRING="5/10/2013 2:09 PM" PERCENTDONE="100" STARTDATE="41396.00000000" STARTDATESTRING="5/2/2013" CREATIONDATE="41396.56791667" CREATIONDATESTRING="5/2/2013 1:37 PM" LASTMOD="41404.59003472" LASTMODSTRING="5/10/2013 2:09 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Catch the InviteLink param" ID="284" COMMENTS="This needs to be somewhere very common in the Application code. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41404.59008102" DONEDATESTRING="5/10/2013 2:09 PM" PERCENTDONE="100" STARTDATE="41396.00000000" STARTDATESTRING="5/2/2013" CREATIONDATE="41396.56817130" CREATIONDATESTRING="5/2/2013 1:38 PM" LASTMOD="41404.59008102" LASTMODSTRING="5/10/2013 2:09 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Decrypt the InviteLink param" ID="285" COMMENTS="Start with the specified PersonId from the URL. From there, get the Identity OID. Combine with the salt to get the expected hash, and see if it matches. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41404.59010417" DONEDATESTRING="5/10/2013 2:09 PM" PERCENTDONE="100" STARTDATE="41396.00000000" STARTDATESTRING="5/2/2013" CREATIONDATE="41396.56875000" CREATIONDATESTRING="5/2/2013 1:39 PM" LASTMOD="41404.59010417" LASTMODSTRING="5/10/2013 2:09 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Create a User session from the param" ID="286" COMMENTS="This is probably going to require some signifiant rework of the withAuth code in Application. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41404.59015046" DONEDATESTRING="5/10/2013 2:09 PM" PERCENTDONE="100" STARTDATE="41396.00000000" STARTDATESTRING="5/2/2013" CREATIONDATE="41396.56997685" CREATIONDATESTRING="5/2/2013 1:40 PM" LASTMOD="41404.59015046" LASTMODSTRING="5/10/2013 2:09 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
</TASK>
<TASK TITLE="Sprint 12: May 13 - 26" ID="315" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41422.51275463" DONEDATESTRING="5/28/2013 12:18 PM" PERCENTDONE="100" STARTDATE="41407.00000000" STARTDATESTRING="5/13/2013" CREATIONDATE="41407.36461806" CREATIONDATESTRING="5/13/2013 8:45 AM" LASTMOD="41422.51275463" LASTMODSTRING="5/28/2013 12:18 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can define an interactive input field in a Thing's page" ID="298" COMMENTS="For the wedding, we just need the simplest capability: to be able to put a button on the Invitee page for Invitee.RSVP. But implementing that is going to be entertaining. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41409.71144676" DONEDATESTRING="5/15/2013 5:04 PM" PERCENTDONE="100" STARTDATE="41404.00000000" STARTDATESTRING="5/10/2013" CREATIONDATE="41404.62653935" CREATIONDATESTRING="5/10/2013 3:02 PM" LASTMOD="41409.71144676" LASTMODSTRING="5/15/2013 5:04 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Introduce QL syntax for editing a field" ID="302" COMMENTS="Tentatively, I think this is something like:
[[!My Property]]
This means that it will place an edit field for My Property, on the context's Thing, at this location. The details of the field will depend on the Property itself. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41408.64753472" DONEDATESTRING="5/14/2013 3:32 PM" PERCENTDONE="100" STARTDATE="41404.00000000" STARTDATESTRING="5/10/2013" CREATIONDATE="41404.62907407" CREATIONDATESTRING="5/10/2013 3:05 PM" LASTMOD="41408.64753472" LASTMODSTRING="5/14/2013 3:32 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add PType mechanism for specifying the input renderer" ID="303" COMMENTS="Is this different from the current mechanism? Maybe not. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41408.64756944" DONEDATESTRING="5/14/2013 3:32 PM" PERCENTDONE="100" STARTDATE="41404.00000000" STARTDATESTRING="5/10/2013" CREATIONDATE="41404.63037037" CREATIONDATESTRING="5/10/2013 3:07 PM" LASTMOD="41408.64756944" LASTMODSTRING="5/14/2013 3:32 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Make the system work" ID="304" COMMENTS="[[!My Field]] should display the input and hook it up to the AJAX callback; when it changes, feed the change back to the server via AJAX, and up to the Space with ChangeProps(). " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41408.76978009" DONEDATESTRING="5/14/2013 6:28 PM" PERCENTDONE="100" STARTDATE="41404.00000000" STARTDATESTRING="5/10/2013" CREATIONDATE="41404.63100694" CREATIONDATESTRING="5/10/2013 3:08 PM" LASTMOD="41408.76978009" LASTMODSTRING="5/14/2013 6:28 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Improve the rendering of YesNo fields" ID="305" COMMENTS="The checkbox kinda sucks, really. Change it to a pretty radio button instead. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41409.71143519" DONEDATESTRING="5/15/2013 5:04 PM" PERCENTDONE="100" STARTDATE="41404.00000000" STARTDATESTRING="5/10/2013" CREATIONDATE="41404.63224537" CREATIONDATESTRING="5/10/2013 3:10 PM" LASTMOD="41409.71143519" LASTMODSTRING="5/15/2013 5:04 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="I can display/edit a Boolean Property as a checkbox" ID="83" COMMENTS="Ideally, use a three-value control, so that Optional[Boolean] has a good None value. We really want to use Optional for RSVPs. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="UI" DONEDATE="41409.71195602" DONEDATESTRING="5/15/2013 5:05 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.67059028" CREATIONDATESTRING="10/8/2012 4:05 PM" LASTMOD="41409.71195602" LASTMODSTRING="5/15/2013 5:05 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can define a pretty, easy to use, custom input form" ID="218" COMMENTS="This is the form that invitees to the wedding will see when they get an invitation. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41410.39311343" DONEDATESTRING="5/16/2013 9:26 AM" PERCENTDONE="100" STARTDATE="41296.00000000" STARTDATESTRING="1/22/2013" CREATIONDATE="41296.42587963" CREATIONDATESTRING="1/22/2013 10:13 AM" LASTMOD="41410.39311343" LASTMODSTRING="5/16/2013 9:26 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can define input fields using QL" ID="219" COMMENTS="Something like [[< My Property]]? " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41410.39180556" DONEDATESTRING="5/16/2013 9:24 AM" PERCENTDONE="100" STARTDATE="41296.00000000" STARTDATESTRING="1/22/2013" CREATIONDATE="41296.42637731" CREATIONDATESTRING="1/22/2013 10:13 AM" LASTMOD="41410.39180556" LASTMODSTRING="5/16/2013 9:24 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can specify a required validation hash in a URL" ID="222" COMMENTS="So that, when we send out the invitations with the parameterized Invitee ID, there is a predefined hash also tacked on as a parameter. This is to prevent spoofing. Total overkill right now, but we'd better deal with it while we're building the machinery. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41407.66695602" DONEDATESTRING="5/13/2013 4:00 PM" PERCENTDONE="100" STARTDATE="41296.00000000" STARTDATESTRING="1/22/2013" CREATIONDATE="41296.42841435" CREATIONDATESTRING="1/22/2013 10:16 AM" LASTMOD="41407.66695602" LASTMODSTRING="5/13/2013 4:00 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="I can show the "Info about Children" section to parents" ID="306" COMMENTS="We want to give more details about children, including the links to the kids' own pages and the link to the children pages, only to parents. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41410.75756944" DONEDATESTRING="5/16/2013 6:10 PM" PERCENTDONE="100" STARTDATE="41406.00000000" STARTDATESTRING="5/12/2013" CREATIONDATE="41406.54326389" CREATIONDATESTRING="5/12/2013 1:02 PM" LASTMOD="41410.75756944" LASTMODSTRING="5/16/2013 6:10 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Add the concept of a function that operates on the entire collection" ID="307" COMMENTS="Currently, methods get the incoming collection broken down into individual ExactlyOnes, and return that as a result. We need a meta-property that says, "This function takes a Collection and returns a Collection". " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41410.58173611" DONEDATESTRING="5/16/2013 1:57 PM" PERCENTDONE="100" STARTDATE="41406.00000000" STARTDATESTRING="5/12/2013" CREATIONDATE="41406.54357639" CREATIONDATESTRING="5/12/2013 1:02 PM" LASTMOD="41410.58173611" LASTMODSTRING="5/16/2013 1:57 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Allows names to have underscores" ID="309" COMMENTS="Built-in methods start with _. Is that legal yet? " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41408.76991898" DONEDATESTRING="5/14/2013 6:28 PM" PERCENTDONE="100" STARTDATE="41406.00000000" STARTDATESTRING="5/12/2013" CREATIONDATE="41406.54493056" CREATIONDATESTRING="5/12/2013 1:04 PM" LASTMOD="41408.76991898" LASTMODSTRING="5/14/2013 6:28 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Write the "_section" function" ID="308" COMMENTS="I had originally planned to do this with _if, but that isn't sufficient -- we need to be able to coalesce a List into a single response. So let's bite the bullet and implement this very useful function.
_section takes up to three parameters, each of which is theoretically a phrase. The first is the Header, and gets fed the full input context as a single object. The second is the Details, which gets fed the same input context element-by-element. The third is the Empty, which gets fed the full input context instead, iff the input is empty.
This is a rather specialized function, but is so often useful in Querki that we may as well do it now. In the long run it should be rewritten using lower-level functions in QL, but for now we'll do it natively. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41410.75723380" DONEDATESTRING="5/16/2013 6:10 PM" PERCENTDONE="100" STARTDATE="41406.00000000" STARTDATESTRING="5/12/2013" CREATIONDATE="41406.54475694" CREATIONDATESTRING="5/12/2013 1:04 PM" LASTMOD="41410.75723380" LASTMODSTRING="5/16/2013 6:10 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="I can style my Space as I prefer" ID="51" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Base" NUMDEPENDS="1" DEPENDS="28" DONEDATE="41410.78813657" DONEDATESTRING="5/16/2013 6:54 PM" PERCENTDONE="100" STARTDATE="41234.78100694" STARTDATESTRING="11/21/2012 6:44 PM" CREATIONDATE="41190.64699074" CREATIONDATESTRING="10/8/2012 3:31 PM" LASTMOD="41410.78813657" LASTMODSTRING="5/16/2013 6:54 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Display CSS file for all Things in the Space" ID="54" COMMENTS="This should actually be done in proper CSS style. More precisely, we should chain Stylesheets from the Thing up through its Models, and from the Space up through its Apps.
This is going to *beg* for caching, but we'll address that as we go. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41410.78812500" DONEDATESTRING="5/16/2013 6:54 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.64748843" CREATIONDATESTRING="10/8/2012 3:32 PM" LASTMOD="41410.78812500" LASTMODSTRING="5/16/2013 6:54 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="I can email to a List of Persons" ID="71" COMMENTS="There needs to be a mechanism whereby I define an email template page, and feed that a list of Person objects, customizing the email for each of them.
For now, it is probably good enough to just send HTML email. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Base" DONEDATE="41414.64474537" DONEDATESTRING="5/20/2013 3:28 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.65974537" CREATIONDATESTRING="10/8/2012 3:50 PM" LASTMOD="41414.64474537" LASTMODSTRING="5/20/2013 3:28 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="The system tracks which Persons have already received the email" ID="275" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41407.66655093" DONEDATESTRING="5/13/2013 3:59 PM" PERCENTDONE="100" STARTDATE="41395.00000000" STARTDATESTRING="5/1/2013" CREATIONDATE="41395.59731481" CREATIONDATESTRING="5/1/2013 2:20 PM" LASTMOD="41407.66655093" LASTMODSTRING="5/13/2013 3:59 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="We do not re-send to people who have already received it" ID="311" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41407.66656250" DONEDATESTRING="5/13/2013 3:59 PM" PERCENTDONE="100" STARTDATE="41406.00000000" STARTDATESTRING="5/12/2013" CREATIONDATE="41406.54773148" CREATIONDATESTRING="5/12/2013 1:08 PM" LASTMOD="41407.66656250" LASTMODSTRING="5/13/2013 3:59 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Invitees should not see the Querki chrome" ID="314" COMMENTS="This implies that we should be able to set a parameter in the URL that sets the *session* as chromeless, so that the chromelessness persists as we go from page to page.
Implies that there should probably be a way to turn chrome back on, but we don't need that right now. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41410.39130787" DONEDATESTRING="5/16/2013 9:23 AM" PERCENTDONE="100" STARTDATE="41406.00000000" STARTDATESTRING="5/12/2013" CREATIONDATE="41406.56526620" CREATIONDATESTRING="5/12/2013 1:33 PM" LASTMOD="41410.39130787" LASTMODSTRING="5/16/2013 9:23 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add the _instances() method" ID="356" COMMENTS="This is a method on any Thing -- it returns all children that are *not* Models. We will use it for Invitees._instances. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41414.41331019" DONEDATESTRING="5/20/2013 9:55 AM" PERCENTDONE="100" STARTDATE="41411.00000000" STARTDATESTRING="5/17/2013" CREATIONDATE="41411.01968750" CREATIONDATESTRING="5/17/2013 12:28 AM" LASTMOD="41414.41331019" LASTMODSTRING="5/20/2013 9:55 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Implement basic QL properties" ID="313" COMMENTS="That is, add a PType of QL, which is essentially a method that returns a TypedValue. It is the guts of a QL expression, without the Wikitext processing around it.
When we hit one of these methods, we create a new QLParser with the content of the method. We invoke a new entry point that is a simplified version of process() -- it just calls parse, calls processPhrases() on the result, and returns the value from the *last* ContextBase in the results of that. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41414.53745370" DONEDATESTRING="5/20/2013 12:53 PM" PERCENTDONE="100" STARTDATE="41406.00000000" STARTDATESTRING="5/12/2013" CREATIONDATE="41406.54956019" CREATIONDATESTRING="5/12/2013 1:11 PM" LASTMOD="41414.53745370" LASTMODSTRING="5/20/2013 12:53 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can simply invite Invitees as a group, without manual entry" ID="312" COMMENTS="That is, if someone is an Invitee, they should receive the email automatically -- we shouldn't have to copy the list.
This requires implementing the Recipient QL property. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41414.64471065" DONEDATESTRING="5/20/2013 3:28 PM" PERCENTDONE="100" STARTDATE="41406.00000000" STARTDATESTRING="5/12/2013" CREATIONDATE="41406.54890046" CREATIONDATESTRING="5/12/2013 1:10 PM" LASTMOD="41414.64471065" LASTMODSTRING="5/20/2013 3:28 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="The system knows the Version of each Space" ID="287" COMMENTS="That is, we should add a version number to the Space table. This should happen post-haste, so that we can start using it soon. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41414.71928241" DONEDATESTRING="5/20/2013 5:15 PM" PERCENTDONE="100" STARTDATE="41398.00000000" STARTDATESTRING="5/4/2013" CREATIONDATE="41398.45164352" CREATIONDATESTRING="5/4/2013 10:50 AM" LASTMOD="41414.71928241" LASTMODSTRING="5/20/2013 5:15 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can create a Person Thing by email address" ID="67" COMMENTS="That is, I can input various personal information, and associate that with an email address to send mail to. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Base" DONEDATE="41414.78556713" DONEDATESTRING="5/20/2013 6:51 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.65771991" CREATIONDATESTRING="10/8/2012 3:47 PM" LASTMOD="41414.78556713" LASTMODSTRING="5/20/2013 6:51 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Record registered users of a Space by Person" ID="70" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41414.78555556" DONEDATESTRING="5/20/2013 6:51 PM" PERCENTDONE="100" STARTDATE="41190.00000000" STARTDATESTRING="10/8/2012" CREATIONDATE="41190.65920139" CREATIONDATESTRING="10/8/2012 3:49 PM" LASTMOD="41414.78555556" LASTMODSTRING="5/20/2013 6:51 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="As an Invitee, I can edit my own page" ID="293" COMMENTS="By definition, a Person page checks its Identity for canWrite. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41414.78572917" DONEDATESTRING="5/20/2013 6:51 PM" PERCENTDONE="100" STARTDATE="41398.00000000" STARTDATESTRING="5/4/2013" CREATIONDATE="41398.52033565" CREATIONDATESTRING="5/4/2013 12:29 PM" LASTMOD="41414.78572917" LASTMODSTRING="5/20/2013 6:51 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Application.withUser() understands how to deal with the hash param" ID="296" COMMENTS="It should set up a special Session, with just an identity attached. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41414.78572917" DONEDATESTRING="5/20/2013 6:51 PM" PERCENTDONE="100" STARTDATE="41400.00000000" STARTDATESTRING="5/6/2013" CREATIONDATE="41400.35186343" CREATIONDATESTRING="5/6/2013 8:26 AM" LASTMOD="41414.78572917" LASTMODSTRING="5/20/2013 6:51 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Invitation pages have a consistent Footer" ID="358" COMMENTS="Kate would like to have a "menu" available for navigation, which is quite reasonable. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41416.36312500" DONEDATESTRING="5/22/2013 8:42 AM" PERCENTDONE="100" STARTDATE="41414.00000000" STARTDATESTRING="5/20/2013" CREATIONDATE="41414.56122685" CREATIONDATESTRING="5/20/2013 1:28 PM" LASTMOD="41416.36312500" LASTMODSTRING="5/22/2013 8:42 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Define the Apply method" ID="359" COMMENTS="This has been planned for a long time, and is now possible. If a Thing has Apply set on it, that is what happens with qlApply, instead of anything else. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41416.36285880" DONEDATESTRING="5/22/2013 8:42 AM" PERCENTDONE="100" STARTDATE="41414.00000000" STARTDATESTRING="5/20/2013" CREATIONDATE="41414.56155093" CREATIONDATESTRING="5/20/2013 1:28 PM" LASTMOD="41416.36285880" LASTMODSTRING="5/22/2013 8:42 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Define a Footer object" ID="360" COMMENTS="This has an Apply which is simply the text of the footer. This is *not* part of system, it's just a test. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41416.36287037" DONEDATESTRING="5/22/2013 8:42 AM" PERCENTDONE="100" STARTDATE="41414.00000000" STARTDATESTRING="5/20/2013" CREATIONDATE="41414.56207176" CREATIONDATESTRING="5/20/2013 1:29 PM" LASTMOD="41416.36287037" LASTMODSTRING="5/22/2013 8:42 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Everything is part of page-header" ID="370" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41416.67877315" DONEDATESTRING="5/22/2013 4:17 PM" PERCENTDONE="100" STARTDATE="41416.00000000" STARTDATESTRING="5/22/2013" CREATIONDATE="41416.67178241" CREATIONDATESTRING="5/22/2013 4:07 PM" LASTMOD="41416.67877315" LASTMODSTRING="5/22/2013 4:17 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="_apply needs to be a Large Text" ID="367" COMMENTS="Otherwise, you can't fit a multi-line QLText expression in it. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41416.67884259" DONEDATESTRING="5/22/2013 4:17 PM" PERCENTDONE="100" STARTDATE="41416.00000000" STARTDATESTRING="5/22/2013" CREATIONDATE="41416.64815972" CREATIONDATESTRING="5/22/2013 3:33 PM" LASTMOD="41416.67884259" LASTMODSTRING="5/22/2013 4:17 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Turn off double-click by default" ID="368" COMMENTS="It is just begging for trouble, I suspect. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41416.68123843" DONEDATESTRING="5/22/2013 4:20 PM" PERCENTDONE="100" STARTDATE="41416.00000000" STARTDATESTRING="5/22/2013" CREATIONDATE="41416.65119213" CREATIONDATESTRING="5/22/2013 3:37 PM" LASTMOD="41416.68123843" LASTMODSTRING="5/22/2013 4:20 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Anyone can click on a link and trigger an email" ID="362" COMMENTS="I received an email that clearly came from Google's spider hitting the "send this email" link. Only someone with "edit" privs should be able to send the email. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41416.69305556" DONEDATESTRING="5/22/2013 4:38 PM" PERCENTDONE="100" STARTDATE="41416.00000000" STARTDATESTRING="5/22/2013" CREATIONDATE="41416.54305556" CREATIONDATESTRING="5/22/2013 1:02 PM" LASTMOD="41416.69305556" LASTMODSTRING="5/22/2013 4:38 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add laughing photo to the Schedule page" ID="378" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Use Case" DONEDATE="41417.77273148" DONEDATESTRING="5/23/2013 6:32 PM" PERCENTDONE="100" STARTDATE="41417.00000000" STARTDATESTRING="5/23/2013" CREATIONDATE="41417.74621528" CREATIONDATESTRING="5/23/2013 5:54 PM" LASTMOD="41417.77273148" LASTMODSTRING="5/23/2013 6:32 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Need to elide email addresses on the Email Message page" ID="382" COMMENTS="Duh -- these are currently too scrapeable. Remove them! " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41417.77552083" DONEDATESTRING="5/23/2013 6:36 PM" PERCENTDONE="100" STARTDATE="41417.00000000" STARTDATESTRING="5/23/2013" CREATIONDATE="41417.77206019" CREATIONDATESTRING="5/23/2013 6:31 PM" LASTMOD="41417.77552083" LASTMODSTRING="5/23/2013 6:36 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can't set an Optional Link Property to None!" ID="373" COMMENTS="The default is coming out as the list, with no way to leave it empty! " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41417.90407407" DONEDATESTRING="5/23/2013 9:41 PM" PERCENTDONE="100" STARTDATE="41417.00000000" STARTDATESTRING="5/23/2013" CREATIONDATE="41417.73167824" CREATIONDATESTRING="5/23/2013 5:33 PM" LASTMOD="41417.90407407" LASTMODSTRING="5/23/2013 9:41 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="We need a basic Saving / Saved mechanism for RSVPs" ID="386" COMMENTS="Dad has noted that there is no feedback, and he's right. Can we do something very simplistic that will suffice? " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41418.38844907" DONEDATESTRING="5/24/2013 9:19 AM" PERCENTDONE="100" STARTDATE="41417.00000000" STARTDATESTRING="5/23/2013" CREATIONDATE="41417.93550926" CREATIONDATESTRING="5/23/2013 10:27 PM" LASTMOD="41418.38844907" LASTMODSTRING="5/24/2013 9:19 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Email Address is always initially blank" ID="379" COMMENTS="Something stupid is broken in the Editor window. When I initially create an Invitee, and fill in the Email Address, it *never* takes! I always have to re-edit it to make it work.
I'd bet that this has something to do with the parsing of Optionals... " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41418.41759259" DONEDATESTRING="5/24/2013 10:01 AM" PERCENTDONE="100" STARTDATE="41417.00000000" STARTDATESTRING="5/23/2013" CREATIONDATE="41417.76561343" CREATIONDATESTRING="5/23/2013 6:22 PM" LASTMOD="41418.41759259" LASTMODSTRING="5/24/2013 10:01 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Need a much better Invitee-creation screen" ID="380" COMMENTS="It is *way* too much hassle to do it the way it currently works.
Odds are that this is going to be the motivation for adding the new custom-editor mechanism. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41418.51079861" DONEDATESTRING="5/24/2013 12:15 PM" PERCENTDONE="100" STARTDATE="41417.00000000" STARTDATESTRING="5/23/2013" CREATIONDATE="41417.76694444" CREATIONDATESTRING="5/23/2013 6:24 PM" LASTMOD="41418.51079861" LASTMODSTRING="5/24/2013 12:15 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Need a "Done and add another" button" ID="381" COMMENTS="The current workflow bites for creating a whole lot of things in quick succession. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41418.59549769" DONEDATESTRING="5/24/2013 2:17 PM" PERCENTDONE="100" STARTDATE="41417.00000000" STARTDATESTRING="5/23/2013" CREATIONDATE="41417.76798611" CREATIONDATESTRING="5/23/2013 6:25 PM" LASTMOD="41418.59549769" LASTMODSTRING="5/24/2013 2:17 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Handle _me errors better" ID="369" COMMENTS="My Footer is essentially:
""[[_me -> ""__Invitation for [[First Name]]__""]]""
But if _me isn't defined, that comes out as "Invitation for Can't apply a Property in a Plain Text context!" That's because _me is returning a TextValue, which isn't the expected LinkValue.
So what we really need here is a way to degrade better. _me should return a deliberately bogus Link, and looking up a Property on that Link should probably return the name of that Property, highlighted in red. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41418.61590278" DONEDATESTRING="5/24/2013 2:46 PM" PERCENTDONE="100" STARTDATE="41416.00000000" STARTDATESTRING="5/22/2013" CREATIONDATE="41416.65635417" CREATIONDATESTRING="5/22/2013 3:45 PM" LASTMOD="41418.61590278" LASTMODSTRING="5/24/2013 2:46 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Nesting block-level styles causes a crash" ID="366" COMMENTS="That is, doing:
{{styleA:
{{styleB:
... some content
}}
}}
Throws an exception. This is critical, and needs to be fixed! " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41418.65347222" DONEDATESTRING="5/24/2013 3:41 PM" PERCENTDONE="100" STARTDATE="41416.00000000" STARTDATESTRING="5/22/2013" CREATIONDATE="41416.62812500" CREATIONDATESTRING="5/22/2013 3:04 PM" LASTMOD="41418.65347222" LASTMODSTRING="5/24/2013 3:41 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Sprint 13: May 28 - June 9" ID="418" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41436.55954861" DONEDATESTRING="6/11/2013 1:25 PM" PERCENTDONE="100" STARTDATE="41422.00000000" STARTDATESTRING="5/28/2013" CREATIONDATE="41422.51280093" CREATIONDATESTRING="5/28/2013 12:18 PM" LASTMOD="41436.55954861" LASTMODSTRING="6/11/2013 1:25 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can express "or" in QL" ID="410" COMMENTS="This is a short-circuiting OR operator. It takes any number of parameters, and applies the incoming context to them in order. It returns the first value that is non-empty. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41422.56086806" DONEDATESTRING="5/28/2013 1:27 PM" PERCENTDONE="100" STARTDATE="41422.00000000" STARTDATESTRING="5/28/2013" CREATIONDATE="41422.36028935" CREATIONDATESTRING="5/28/2013 8:38 AM" LASTMOD="41422.56086806" LASTMODSTRING="5/28/2013 1:27 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can get a "refs" list in QL" ID="403" COMMENTS="That is, I can produce a list of Things that point to this Thing via a Link.
This is probably a key primitive, in order to do a lot of work. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41422.62668981" DONEDATESTRING="5/28/2013 3:02 PM" PERCENTDONE="100" STARTDATE="41422.00000000" STARTDATESTRING="5/28/2013" CREATIONDATE="41422.34776620" CREATIONDATESTRING="5/28/2013 8:20 AM" LASTMOD="41422.62668981" LASTMODSTRING="5/28/2013 3:02 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can get a Property-specific refs list" ID="404" COMMENTS="That is, something like:
[[My Link._refs]]
Returns all of the Things that have a My Link property that links to this Thing. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41422.53684028" DONEDATESTRING="5/28/2013 12:53 PM" PERCENTDONE="100" STARTDATE="41422.00000000" STARTDATESTRING="5/28/2013" CREATIONDATE="41422.34871528" CREATIONDATESTRING="5/28/2013 8:22 AM" LASTMOD="41422.53684028" LASTMODSTRING="5/28/2013 12:53 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="I can get just the first value from a List" ID="419" COMMENTS="This is the _first method -- it simply turns a List into an Optional. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41422.62671296" DONEDATESTRING="5/28/2013 3:02 PM" PERCENTDONE="100" STARTDATE="41422.00000000" STARTDATESTRING="5/28/2013" CREATIONDATE="41422.56158565" CREATIONDATESTRING="5/28/2013 1:28 PM" LASTMOD="41422.62671296" LASTMODSTRING="5/28/2013 3:02 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="A just-added Thing isn't available during "Done and Add Another"" ID="420" COMMENTS="This shows up when adding a sequence of Invitees. Bloody annoying. Something to do with editThing() using the wrong cached version of the space state?
LATER: yep -- specifically, we needed to update rc with the new state. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41422.76325231" DONEDATESTRING="5/28/2013 6:19 PM" PERCENTDONE="100" STARTDATE="41422.00000000" STARTDATESTRING="5/28/2013" CREATIONDATE="41422.75248843" CREATIONDATESTRING="5/28/2013 6:03 PM" LASTMOD="41422.76325231" LASTMODSTRING="5/28/2013 6:19 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can have a placebo Done button" ID="412" COMMENTS="This was strongly recommended by both fathers, as well as Chad, so I give. We will put in a Done button that provides some closure, even though it doesn't really *do* anything right now. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41423.34472222" DONEDATESTRING="5/29/2013 8:16 AM" PERCENTDONE="100" STARTDATE="41422.00000000" STARTDATESTRING="5/28/2013" CREATIONDATE="41422.36925926" CREATIONDATESTRING="5/28/2013 8:51 AM" LASTMOD="41423.34472222" LASTMODSTRING="5/29/2013 8:16 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I have a _linkButton construct" ID="413" COMMENTS="_linkButton is what it sounds like: it takes an incoming link, and displays that with a label:
[[Other Page -> _linkButton("Done")]]
Ideally, it should cope with both Links and External Links as its input. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41422.74228009" DONEDATESTRING="5/28/2013 5:48 PM" PERCENTDONE="100" STARTDATE="41422.00000000" STARTDATESTRING="5/28/2013" CREATIONDATE="41422.36981481" CREATIONDATESTRING="5/28/2013 8:52 AM" LASTMOD="41422.74228009" LASTMODSTRING="5/28/2013 5:48 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Write the landing page for the Done button" ID="415" COMMENTS="This should have all of the important semantic content, including a pointer back to the invitation. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41423.34464120" DONEDATESTRING="5/29/2013 8:16 AM" PERCENTDONE="100" STARTDATE="41422.00000000" STARTDATESTRING="5/28/2013" CREATIONDATE="41422.37260417" CREATIONDATESTRING="5/28/2013 8:56 AM" LASTMOD="41423.34464120" LASTMODSTRING="5/29/2013 8:16 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="I can express SO-ness from one side" ID="409" COMMENTS="The SO property is currently a pain in my tuchus. So let's add a derived QL Property, defined as:
[[_or(SO, SO._refs)]]
That is, return my SO, or the Thing that refers to me as an SO.
This is a primitive workaround for bidirectional Links, but it should do to start. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Use Case" DONEDATE="41423.34490741" DONEDATESTRING="5/29/2013 8:16 AM" PERCENTDONE="100" STARTDATE="41422.00000000" STARTDATESTRING="5/28/2013" CREATIONDATE="41422.35775463" CREATIONDATESTRING="5/28/2013 8:35 AM" LASTMOD="41423.34490741" LASTMODSTRING="5/29/2013 8:16 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can choose the right text depending on the size of the received list" ID="421" COMMENTS="That is, I can say:
Your [[Children -> _singularOrPlural("Child is", "Children are")]] welcome...
Not sure of the best name for this function, but the capability is likely to be often useful.
Darker makes a good case that we should use the plural form if the received list is empty. Don't know how often that'll be used, but it's likely sometimes. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41423.63258102" DONEDATESTRING="5/29/2013 3:10 PM" PERCENTDONE="100" STARTDATE="41423.00000000" STARTDATESTRING="5/29/2013" CREATIONDATE="41423.47263889" CREATIONDATESTRING="5/29/2013 11:20 AM" LASTMOD="41423.63258102" LASTMODSTRING="5/29/2013 3:10 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can see the status of the RSVPs" ID="374" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41425.34976852" DONEDATESTRING="5/31/2013 8:23 AM" PERCENTDONE="100" STARTDATE="41417.00000000" STARTDATESTRING="5/23/2013" CREATIONDATE="41417.74393519" CREATIONDATESTRING="5/23/2013 5:51 PM" LASTMOD="41425.34976852" LASTMODSTRING="5/31/2013 8:23 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can filter an incoming List" ID="375" COMMENTS="That is, we add the _filter method, which takes an incoming collection, applies a parameter phrase which returns a YesNo, and returns the Things that pass that filter.
Note that this isn't optimal -- this Use Case *really* should be done with _partition. But I'm not yet sure how that works. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41423.70505787" DONEDATESTRING="5/29/2013 4:55 PM" PERCENTDONE="100" STARTDATE="41417.00000000" STARTDATESTRING="5/23/2013" CREATIONDATE="41417.74438657" CREATIONDATESTRING="5/23/2013 5:51 PM" LASTMOD="41423.70505787" LASTMODSTRING="5/29/2013 4:55 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can determine whether a given property is actually set on this Thing" ID="411" COMMENTS="That is, given a Thing, I can say:
[[My Property._isNonEmpty]]
returns Yes iff My Property is defined on the Thing *and* is non-empty.
I can also say:
[[My Property._isEmpty]]
which is exactly the reverse: it returns Yes iff My Property is undefined *or* empty. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41423.37795139" DONEDATESTRING="5/29/2013 9:04 AM" PERCENTDONE="100" STARTDATE="41422.00000000" STARTDATESTRING="5/28/2013" CREATIONDATE="41422.36615741" CREATIONDATESTRING="5/28/2013 8:47 AM" LASTMOD="41423.37795139" LASTMODSTRING="5/29/2013 9:04 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can display the various partitions as separate sections" ID="376" COMMENTS="Using _isNonEmpty, _isEmpty and _filter, we should be able to build the three sections for the RSVP page. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41423.70516204" DONEDATESTRING="5/29/2013 4:55 PM" PERCENTDONE="100" STARTDATE="41417.00000000" STARTDATESTRING="5/23/2013" CREATIONDATE="41417.74454861" CREATIONDATESTRING="5/23/2013 5:52 PM" LASTMOD="41423.70516204" LASTMODSTRING="5/29/2013 4:55 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Write a Who's Coming page" ID="377" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41425.34975694" DONEDATESTRING="5/31/2013 8:23 AM" PERCENTDONE="100" STARTDATE="41417.00000000" STARTDATESTRING="5/23/2013" CREATIONDATE="41417.74471065" CREATIONDATESTRING="5/23/2013 5:52 PM" LASTMOD="41425.34975694" LASTMODSTRING="5/31/2013 8:23 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Does a partial edit clear the other fields?!?!?" ID="452" COMMENTS="This could be a very serious bug. If we have set Properties to Edit in Instances, we only show the editor for some fields, not others. What happens to the others? They *should* be left unchanged. Do they get stomped? Argh... " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41428.35368056" DONEDATESTRING="6/3/2013 8:29 AM" PERCENTDONE="100" STARTDATE="41426.00000000" STARTDATESTRING="6/1/2013" CREATIONDATE="41426.48547454" CREATIONDATESTRING="6/1/2013 11:39 AM" LASTMOD="41428.35368056" LASTMODSTRING="6/3/2013 8:29 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Link controls in Edit should be alphabetized" ID="448" COMMENTS="When we list a bunch of Links in the editor, to choose from, for *heaven's* sake they should be in alpha order. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41428.37484954" DONEDATESTRING="6/3/2013 8:59 AM" PERCENTDONE="100" STARTDATE="41426.00000000" STARTDATESTRING="6/1/2013" CREATIONDATE="41426.47690972" CREATIONDATESTRING="6/1/2013 11:26 AM" LASTMOD="41428.37484954" LASTMODSTRING="6/3/2013 8:59 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Querki has a proper robots.txt file" ID="269" COMMENTS="Just to keep traffic down for now, let's disallow robots for the time being. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41428.37535880" DONEDATESTRING="6/3/2013 9:00 AM" PERCENTDONE="100" STARTDATE="41393.00000000" STARTDATESTRING="4/29/2013" CREATIONDATE="41393.61396991" CREATIONDATESTRING="4/29/2013 2:44 PM" LASTMOD="41428.37535880" LASTMODSTRING="6/3/2013 9:00 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Improve the displays in Email Message" ID="449" COMMENTS="Specifically:
-- Alphabetize the freaking lists.
-- We need to list not just who it *has* been sent to, but who is still pending.
-- Remove "Email Address Known"; instead, just highlight the people for whom it is *not* known, maybe by making the text red, or greying them out, or something like that.
-- Instead of a long bullet list, display it as comma-separated. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41428.38582176" DONEDATESTRING="6/3/2013 9:15 AM" PERCENTDONE="100" STARTDATE="41426.00000000" STARTDATESTRING="6/1/2013" CREATIONDATE="41426.48049769" CREATIONDATESTRING="6/1/2013 11:31 AM" LASTMOD="41428.38582176" LASTMODSTRING="6/3/2013 9:15 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Edit controls can't be displayed inside of a bullet list" ID="357" COMMENTS="The problem is that the edit control is a separate Wikitext from the bullet that should be containing it. So we wind up with QText just parsing a single bullet, and producing a one-line bullet list followed by the _edit control.
Fixing this is going to be tricky. I suspect that I'm going to have to go back to building a larger Wikitext stream, substituting a key for the HTML section. Bleah! " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41429.41464120" DONEDATESTRING="6/4/2013 9:57 AM" PERCENTDONE="100" STARTDATE="41411.00000000" STARTDATESTRING="5/17/2013" CREATIONDATE="41411.38824074" CREATIONDATESTRING="5/17/2013 9:19 AM" LASTMOD="41429.41464120" LASTMODSTRING="6/4/2013 9:57 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="All Things shows everything hierarchically" ID="389" COMMENTS="Ideally, it would be great to do this "fairly", in QL, but the goal is to show the Things in a tree, to make it easier to parse visually.
Within each level of the tree, Things should be sorted alphabetically.
Things that have no Name should show their Display Name instead. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41429.54875000" DONEDATESTRING="6/4/2013 1:10 PM" PERCENTDONE="100" STARTDATE="41418.00000000" STARTDATESTRING="5/24/2013" CREATIONDATE="41418.61660880" CREATIONDATESTRING="5/24/2013 2:47 PM" LASTMOD="41429.54875000" LASTMODSTRING="6/4/2013 1:10 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can implement a recursive Function" ID="422" COMMENTS="Does this just work? It might... " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41424.64878472" DONEDATESTRING="5/30/2013 3:34 PM" PERCENTDONE="100" STARTDATE="41423.00000000" STARTDATESTRING="5/29/2013" CREATIONDATE="41423.47490741" CREATIONDATESTRING="5/29/2013 11:23 AM" LASTMOD="41424.64878472" LASTMODSTRING="5/30/2013 3:34 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can *not* get into an infinite recursion loop" ID="423" COMMENTS="This probably means that I have to add a depth field to Context, and give an error if it gets unreasonable. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41424.64876157" DONEDATESTRING="5/30/2013 3:34 PM" PERCENTDONE="100" STARTDATE="41423.00000000" STARTDATESTRING="5/29/2013" CREATIONDATE="41423.47508102" CREATIONDATESTRING="5/29/2013 11:24 AM" LASTMOD="41424.64876157" LASTMODSTRING="5/30/2013 3:34 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can tell QL to use List Context for a Text Stage" ID="438" COMMENTS="Introduced the new "*" flag, which can be put before any Stage. It tells the QL processor to use the incoming context as a collection instead of mapping to the individual elements.
This is just plain necessary for typical recursive list processing -- otherwise, it maps all the elements before we can dissect them with _first and _rest. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41424.64878472" DONEDATESTRING="5/30/2013 3:34 PM" PERCENTDONE="100" STARTDATE="41424.00000000" STARTDATESTRING="5/30/2013" CREATIONDATE="41424.64339120" CREATIONDATESTRING="5/30/2013 3:26 PM" LASTMOD="41424.64878472" LASTMODSTRING="5/30/2013 3:34 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="I can get all of the Things in this Space" ID="424" COMMENTS="IMPORTANT: this needs to be run through canRead()!
This is pretty specialized for our purpose:
_space returns the Space that the current Thing is in.
_externalRoots returns a List of all of the *parents* of Things defined in this Space, which are not themselves in this Space.
_props returns the Properties defined in that Space.
_attachments returns the Attachments defined in that Space.
In theory we should have Types and Collections as well, but that's kind of fictitious right now, so let's not worry about it. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41425.49582176" DONEDATESTRING="5/31/2013 11:53 AM" PERCENTDONE="100" STARTDATE="41423.00000000" STARTDATESTRING="5/29/2013" CREATIONDATE="41423.47569444" CREATIONDATESTRING="5/29/2013 11:25 AM" LASTMOD="41425.49582176" LASTMODSTRING="5/31/2013 11:53 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Display all of the Roots" ID="428" COMMENTS="Using _space -> _thingRoots, list all of the external roots. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41425.49586806" DONEDATESTRING="5/31/2013 11:54 AM" PERCENTDONE="100" STARTDATE="41423.00000000" STARTDATESTRING="5/29/2013" CREATIONDATE="41423.50018519" CREATIONDATESTRING="5/29/2013 12:00 PM" LASTMOD="41425.49586806" LASTMODSTRING="5/31/2013 11:54 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can sort a list" ID="432" COMMENTS="The initial version of _sort() simply sorts based on Display Name. There are later stories for fancier versions of this. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41425.50667824" DONEDATESTRING="5/31/2013 12:09 PM" PERCENTDONE="100" STARTDATE="41423.00000000" STARTDATESTRING="5/29/2013" CREATIONDATE="41423.50212963" CREATIONDATESTRING="5/29/2013 12:03 PM" LASTMOD="41425.50667824" LASTMODSTRING="5/31/2013 12:09 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Display the Roots in alphabetical order" ID="436" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41425.50670139" DONEDATESTRING="5/31/2013 12:09 PM" PERCENTDONE="100" STARTDATE="41423.00000000" STARTDATESTRING="5/29/2013" CREATIONDATE="41423.50937500" CREATIONDATESTRING="5/29/2013 12:13 PM" LASTMOD="41425.50670139" LASTMODSTRING="5/31/2013 12:09 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can get all of the children of a Thing" ID="426" COMMENTS="The _children function takes a Thing, and returns a List all of its children that are defined in this Space.
This is inefficient, and will eventually demand optimization, but one thing at a time. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41425.56554398" DONEDATESTRING="5/31/2013 1:34 PM" PERCENTDONE="100" STARTDATE="41423.00000000" STARTDATESTRING="5/29/2013" CREATIONDATE="41423.49879630" CREATIONDATESTRING="5/29/2013 11:58 AM" LASTMOD="41425.56554398" LASTMODSTRING="5/31/2013 1:34 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Display the children hierarchically" ID="429" COMMENTS="For each Thing, we call a recursive function that displays that Thing's name, and then displays its children (recursively) indented using styles. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41425.59248843" DONEDATESTRING="5/31/2013 2:13 PM" PERCENTDONE="100" STARTDATE="41423.00000000" STARTDATESTRING="5/29/2013" CREATIONDATE="41423.50061343" CREATIONDATESTRING="5/29/2013 12:00 PM" LASTMOD="41425.59248843" LASTMODSTRING="5/31/2013 2:13 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can display something optionally" ID="439" COMMENTS="In other words, I need to implement _if(). " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41425.60939815" DONEDATESTRING="5/31/2013 2:37 PM" PERCENTDONE="100" STARTDATE="41425.00000000" STARTDATESTRING="5/31/2013" CREATIONDATE="41425.59259259" CREATIONDATESTRING="5/31/2013 2:13 PM" LASTMOD="41425.60939815" LASTMODSTRING="5/31/2013 2:37 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can see whether something is a Model" ID="427" COMMENTS="The _isModel function simply returns a YesNo of whether the model flag is set. (This is, note, very different from the question of whether the Thing has Instances.) " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41425.60946759" DONEDATESTRING="5/31/2013 2:37 PM" PERCENTDONE="100" STARTDATE="41423.00000000" STARTDATESTRING="5/29/2013" CREATIONDATE="41423.49953704" CREATIONDATESTRING="5/29/2013 11:59 AM" LASTMOD="41425.60946759" LASTMODSTRING="5/31/2013 2:37 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Highlight the Models" ID="430" COMMENTS="If something is a Model, display is boldfaced or some such. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41425.60950231" DONEDATESTRING="5/31/2013 2:37 PM" PERCENTDONE="100" STARTDATE="41423.00000000" STARTDATESTRING="5/29/2013" CREATIONDATE="41423.50138889" CREATIONDATESTRING="5/29/2013 12:02 PM" LASTMOD="41425.60950231" LASTMODSTRING="5/31/2013 2:37 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Actually make the new prototype list into the default page for Spaces" ID="450" COMMENTS="Specifically, add this list as the "_spaceThings" property, and make [[_spaceThings]] the default contents of Space.Display Text. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41428.56809028" DONEDATESTRING="6/3/2013 1:38 PM" PERCENTDONE="100" STARTDATE="41426.00000000" STARTDATESTRING="6/1/2013" CREATIONDATE="41426.48204861" CREATIONDATESTRING="6/1/2013 11:34 AM" LASTMOD="41428.56809028" LASTMODSTRING="6/3/2013 1:38 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Move the "All Things" list to the bottom of the menu" ID="451" COMMENTS="Maybe remove it entirely? " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41428.56813657" DONEDATESTRING="6/3/2013 1:38 PM" PERCENTDONE="100" STARTDATE="41426.00000000" STARTDATESTRING="6/1/2013" CREATIONDATE="41426.48219907" CREATIONDATESTRING="6/1/2013 11:34 AM" LASTMOD="41428.56813657" LASTMODSTRING="6/3/2013 1:38 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can instantiate a Model from the listing" ID="431" COMMENTS="Add a button that lets me create the Model without additional rigamarole. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41429.54873843" DONEDATESTRING="6/4/2013 1:10 PM" PERCENTDONE="100" STARTDATE="41423.00000000" STARTDATESTRING="5/29/2013" CREATIONDATE="41423.50167824" CREATIONDATESTRING="5/29/2013 12:02 PM" LASTMOD="41429.54873843" LASTMODSTRING="6/4/2013 1:10 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Properties should display in alphabetical order" ID="365" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41431.59165509" DONEDATESTRING="6/6/2013 2:11 PM" PERCENTDONE="100" STARTDATE="41416.00000000" STARTDATESTRING="5/22/2013" CREATIONDATE="41416.62447917" CREATIONDATESTRING="5/22/2013 2:59 PM" LASTMOD="41431.59165509" LASTMODSTRING="6/6/2013 2:11 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can specify that a Link property has a Create New option" ID="472" COMMENTS="This is the short-term hardcoded version of being able to create an interactive dialog from a screen. If a Link Property is pointing to a specific Model, then I can also put the Allow "Create New" property on it.
If Allow "Create New" is set, then selecting that when setting the Link pops up a dialog, which contains the _create screen for the linked Model. When we are finished creating it, we submit (probably via AJAX), and get back the OID of the newly-created object, and we set that in our Link property.
This is a bit hackish and hardcoded, but it is often going to be the right answer, so let's do it -- typical end users are usually going to want this, rather than the fancier flexible version. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41432.43215278" DONEDATESTRING="6/7/2013 10:22 AM" PERCENTDONE="100" STARTDATE="41429.00000000" STARTDATESTRING="6/4/2013" CREATIONDATE="41429.59078704" CREATIONDATESTRING="6/4/2013 2:10 PM" LASTMOD="41432.43215278" LASTMODSTRING="6/7/2013 10:22 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Add Create New to the Link's options" ID="527" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41431.66807870" DONEDATESTRING="6/6/2013 4:02 PM" PERCENTDONE="100" STARTDATE="41431.00000000" STARTDATESTRING="6/6/2013" CREATIONDATE="41431.47479167" CREATIONDATESTRING="6/6/2013 11:23 AM" LASTMOD="41431.66807870" LASTMODSTRING="6/6/2013 4:02 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="When I select Create New, I pop a "create dialog"" ID="529" COMMENTS="Initially, this is just a large empty dialog " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41431.70347222" DONEDATESTRING="6/6/2013 4:53 PM" PERCENTDONE="100" STARTDATE="41431.00000000" STARTDATESTRING="6/6/2013" CREATIONDATE="41431.47716435" CREATIONDATESTRING="6/6/2013 11:27 AM" LASTMOD="41431.70347222" LASTMODSTRING="6/6/2013 4:53 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Inside the dialog, place an iframe for the actual editor" ID="530" COMMENTS="Again, keeping it simple to begin with -- just an iframe that fills the dialog. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41431.71634259" DONEDATESTRING="6/6/2013 5:11 PM" PERCENTDONE="100" STARTDATE="41431.00000000" STARTDATESTRING="6/6/2013" CREATIONDATE="41431.47748843" CREATIONDATESTRING="6/6/2013 11:27 AM" LASTMOD="41431.71634259" LASTMODSTRING="6/6/2013 5:11 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="In the iframe, load the correct Edit window, chromeless" ID="531" COMMENTS="Chromeless because we don't want to repeat the menus and such.
This may require enhancements to chromeless, but in the short run, it's just about right. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41431.71637731" DONEDATESTRING="6/6/2013 5:11 PM" PERCENTDONE="100" STARTDATE="41431.00000000" STARTDATESTRING="6/6/2013" CREATIONDATE="41431.47848380" CREATIONDATESTRING="6/6/2013 11:29 AM" LASTMOD="41431.71637731" LASTMODSTRING="6/6/2013 5:11 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Remove the Done and Create Another button" ID="532" COMMENTS="This is inappropriate for this particular use case, at least for now. (We may re-add it later, if and only if we're editing a List of Links.) " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41431.72750000" DONEDATESTRING="6/6/2013 5:27 PM" PERCENTDONE="100" STARTDATE="41431.00000000" STARTDATESTRING="6/6/2013" CREATIONDATE="41431.47900463" CREATIONDATESTRING="6/6/2013 11:29 AM" LASTMOD="41431.72750000" LASTMODSTRING="6/6/2013 5:27 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Change the behaviour of Done" ID="533" COMMENTS="Specifically, when we click Done in this environment, the response isn't any of the usual pages -- it is a trivial mini-page that calls back out to the parent to update the information. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41432.39256944" DONEDATESTRING="6/7/2013 9:25 AM" PERCENTDONE="100" STARTDATE="41431.00000000" STARTDATESTRING="6/6/2013" CREATIONDATE="41431.48027778" CREATIONDATESTRING="6/6/2013 11:31 AM" LASTMOD="41432.39256944" LASTMODSTRING="6/7/2013 9:25 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add the record when we get the callback" ID="534" COMMENTS="When we receive the script call from the callback, we close the dialog, add the newly-created Thing to the <select>, and choose that. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41432.40789352" DONEDATESTRING="6/7/2013 9:47 AM" PERCENTDONE="100" STARTDATE="41431.00000000" STARTDATESTRING="6/6/2013" CREATIONDATE="41431.48106481" CREATIONDATESTRING="6/6/2013 11:32 AM" LASTMOD="41432.40789352" LASTMODSTRING="6/7/2013 9:47 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Link Model property should only show Models" ID="536" COMMENTS="Currently, it lists all Things in the Space, which is silly and annoying. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41432.59686343" DONEDATESTRING="6/7/2013 2:19 PM" PERCENTDONE="100" STARTDATE="41432.00000000" STARTDATESTRING="6/7/2013" CREATIONDATE="41432.41163194" CREATIONDATESTRING="6/7/2013 9:52 AM" LASTMOD="41432.59686343" LASTMODSTRING="6/7/2013 2:19 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Sprint 14: June 10-23" ID="545" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41449.33918981" DONEDATESTRING="6/24/2013 8:08 AM" PERCENTDONE="100" STARTDATE="41436.00000000" STARTDATESTRING="6/11/2013" CREATIONDATE="41436.55959491" CREATIONDATESTRING="6/11/2013 1:25 PM" LASTMOD="41449.33918981" LASTMODSTRING="6/24/2013 8:08 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Poker Encyclopedia" ID="504" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Use Case" DONEDATE="41442.74175926" DONEDATESTRING="6/17/2013 5:48 PM" PERCENTDONE="100" STARTDATE="41429.00000000" STARTDATESTRING="6/4/2013" CREATIONDATE="41429.71648148" CREATIONDATESTRING="6/4/2013 5:11 PM" LASTMOD="41442.74175926" LASTMODSTRING="6/17/2013 5:48 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can link to a page before creating it" ID="603" COMMENTS="Standard Wiki behaviour: if I say [[My Page]], and "My Page" doesn't exist yet, it still produces a link, which takes me to the page where I can create it. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41438.69250000" DONEDATESTRING="6/13/2013 4:37 PM" PERCENTDONE="100" STARTDATE="41438.00000000" STARTDATESTRING="6/13/2013" CREATIONDATE="41438.69196759" CREATIONDATESTRING="6/13/2013 4:36 PM" LASTMOD="41438.69250000" LASTMODSTRING="6/13/2013 4:37 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Each Tag shows the list of appropriate variants, in a consistent format" ID="507" COMMENTS="This implies that the Space overrides _showUnknownName, so that, instead of just giving the Display Name link to each game, it shows the name and rules, in the same format.
This is a way to show off how to make the Space's display *very* consistent, pretty easily, using a consistent QL Function to do the display.
Likely we do this by defining a Thing called Display Game, whose _apply is the standard layout for showing a game.
Display Game should include the Counter, so you can bump up a game's count when you're looking at it. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41438.73003472" DONEDATESTRING="6/13/2013 5:31 PM" PERCENTDONE="100" STARTDATE="41429.00000000" STARTDATESTRING="6/4/2013" CREATIONDATE="41429.72018519" CREATIONDATESTRING="6/4/2013 5:17 PM" LASTMOD="41438.73003472" LASTMODSTRING="6/13/2013 5:31 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Refactor the Summary property, and get it working" ID="605" COMMENTS="I don't understand why it *isn't* working. It seems to only display the first item, which is bizarre.
Far as I can guess, it looks like SectionMethod isn't quite right. It should be calling context.map(), the same way that processTextStage does. Instead, it is passing the full list into the Summary call, which is producing strange results.
Possibly the right answer here is more dramatic? Should processCall be doing the .map() operation? OTOH, many internal functions expect to receive the full Collection, which may suggest caution is in order. Hmm... " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41439.85122685" DONEDATESTRING="6/14/2013 8:25 PM" PERCENTDONE="100" STARTDATE="41438.00000000" STARTDATESTRING="6/13/2013" CREATIONDATE="41438.73005787" CREATIONDATESTRING="6/13/2013 5:31 PM" LASTMOD="41439.85122685" LASTMODSTRING="6/14/2013 8:25 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can build a How It Works page" ID="573" COMMENTS="This is a convention I'd like to promulgate: that folks have a page describing how this Space is built, so that others can learn.
_howItWorks is not intended as a tutorial for how to *use* this Space (which I suspect is a separate convention), but rather, for how to *build* this Space. It is part of the tinkerer's ethos of Querki. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41442.46693287" DONEDATESTRING="6/17/2013 11:12 AM" PERCENTDONE="100" STARTDATE="41438.00000000" STARTDATESTRING="6/13/2013" CREATIONDATE="41438.39150463" CREATIONDATESTRING="6/13/2013 9:23 AM" LASTMOD="41442.46693287" LASTMODSTRING="6/17/2013 11:12 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Add the Space._howItWorks property" ID="574" COMMENTS="This is a standard optional system property, linking to a Thing that shows how this Space is built. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41442.46689815" DONEDATESTRING="6/17/2013 11:12 AM" PERCENTDONE="100" STARTDATE="41438.00000000" STARTDATESTRING="6/13/2013" CREATIONDATE="41438.39224537" CREATIONDATESTRING="6/13/2013 9:24 AM" LASTMOD="41442.46689815" LASTMODSTRING="6/17/2013 11:12 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can display code easily" ID="575" COMMENTS="Note that the _code property isn't just for _howItWorks, although I expect it to be most useful there.
The _code(TEXT) takes the given text, and displays it as an inset code block.
If TEXT is a String, it simply applies to that String.
Otherwise, we expect TEXT to be the name of a Property, or a dotted Thing.Property. We fetch the value of that Property; we do *not* qlApply it! (There is a general concept fighting to break out here, but I'm not yet sure what it is.)
The resulting String value should be XML-neutered.
It is then displayed in monospace font, in an inset box. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41442.45317130" DONEDATESTRING="6/17/2013 10:52 AM" PERCENTDONE="100" STARTDATE="41438.00000000" STARTDATESTRING="6/13/2013" CREATIONDATE="41438.39288194" CREATIONDATESTRING="6/13/2013 9:25 AM" LASTMOD="41442.45317130" LASTMODSTRING="6/17/2013 10:52 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Apply _code to CSS pages" ID="576" COMMENTS="I've long wanted the display of a Stylesheet page to include the CSS itself. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41442.45305556" DONEDATESTRING="6/17/2013 10:52 AM" PERCENTDONE="100" STARTDATE="41438.00000000" STARTDATESTRING="6/13/2013" CREATIONDATE="41438.40003472" CREATIONDATESTRING="6/13/2013 9:36 AM" LASTMOD="41442.45305556" LASTMODSTRING="6/17/2013 10:52 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="The default Display Text for a Space links to _howItWorks" ID="577" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41442.46692130" DONEDATESTRING="6/17/2013 11:12 AM" PERCENTDONE="100" STARTDATE="41438.00000000" STARTDATESTRING="6/13/2013" CREATIONDATE="41438.40160880" CREATIONDATESTRING="6/13/2013 9:38 AM" LASTMOD="41442.46692130" LASTMODSTRING="6/17/2013 11:12 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
</TASK>
<TASK TITLE="I can have a Tag Set as a Property" ID="493" COMMENTS="The motivating Use Case will be the Poker Encyclopedia, although this is more broadly useful.
The ideal is that a Tag Set is much like a List of Links; it might even be implemented as one under the hood. (No: it needs to be stored by name, not by ref, so that we can use non-Thing names!) But:
-- Tags can be hierarchical (the names can have slashes).
-- They should display as a list of simple names.
-- Going to a tag, if it is not defined as a Thing, brings up a list of its refs. (So it isn't quite a simple navigation. Or perhaps we reify the UnknownNameValue in QLParser, and have that render something appropriate?)
-- I can get all of the Tags used in this Property. (Probably by viewing a function on the Property.)
-- I can input Tags as a comma-separated text field.
-- Ideally, this text field autoprompts with known Tags in this Property.
-- I can define a Tag as a real Thing, and clicking on that Tag goes to that Thing. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41437.74060185" DONEDATESTRING="6/12/2013 5:46 PM" PERCENTDONE="100" STARTDATE="41429.00000000" STARTDATESTRING="6/4/2013" CREATIONDATE="41429.64572917" CREATIONDATESTRING="6/4/2013 3:29 PM" LASTMOD="41437.74060185" LASTMODSTRING="6/12/2013 5:46 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Refactor all sub-slashed routes under :thing" ID="494" COMMENTS="That is, we need to rework /setProperty, /edit and /export so that they come from ? params instead of the name of the Thing itself. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41432.72935185" DONEDATESTRING="6/7/2013 5:30 PM" PERCENTDONE="100" STARTDATE="41429.00000000" STARTDATESTRING="6/4/2013" CREATIONDATE="41429.65393519" CREATIONDATESTRING="6/4/2013 3:41 PM" LASTMOD="41432.72935185" LASTMODSTRING="6/7/2013 5:30 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Allow Thing names to have slashes" ID="495" COMMENTS="The routes table needs to be tweaked to allow these through.
The NameType needs to allow slashes in names. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41432.73456019" DONEDATESTRING="6/7/2013 5:37 PM" PERCENTDONE="100" STARTDATE="41429.00000000" STARTDATESTRING="6/4/2013" CREATIONDATE="41429.65468750" CREATIONDATESTRING="6/4/2013 3:42 PM" LASTMOD="41432.73456019" LASTMODSTRING="6/7/2013 5:37 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Introduce Type Aliases" ID="496" COMMENTS="This is the concept of having a "type" that is actually a combination of an underlying Type/Collection pair. If you choose the alias, the Collection is hard-coded.
For our purposes, the Tag Set "type" is actually a List of NameType. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41432.75768519" DONEDATESTRING="6/7/2013 6:11 PM" PERCENTDONE="100" STARTDATE="41429.00000000" STARTDATESTRING="6/4/2013" CREATIONDATE="41429.65684028" CREATIONDATESTRING="6/4/2013 3:45 PM" LASTMOD="41432.75768519" LASTMODSTRING="6/7/2013 6:11 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Initial input renderer for Tag Set" ID="497" COMMENTS="This simply takes a comma-separated list of names, and converts them to a List of Names. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41435.51746528" DONEDATESTRING="6/10/2013 12:25 PM" PERCENTDONE="100" STARTDATE="41429.00000000" STARTDATESTRING="6/4/2013" CREATIONDATE="41429.65912037" CREATIONDATESTRING="6/4/2013 3:49 PM" LASTMOD="41435.51746528" LASTMODSTRING="6/10/2013 12:25 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can view any Name as a tag" ID="498" COMMENTS="If you navigate to a name within a Space, and that name is *not* defined, you get a constructed page, with a list of references to it.
Ideally, this should involve an underlying function -- _tagRefs -- which returns all references to a name, and a property on Space -- _showUnknownName -- which can be redefined if you want some other behaviour for unknown names in the space. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41436.35578704" DONEDATESTRING="6/11/2013 8:32 AM" PERCENTDONE="100" STARTDATE="41429.00000000" STARTDATESTRING="6/4/2013" CREATIONDATE="41429.65966435" CREATIONDATESTRING="6/4/2013 3:49 PM" LASTMOD="41436.35578704" LASTMODSTRING="6/11/2013 8:32 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Refactor thing.scala.html to use a pseudo-Thing?" ID="543" COMMENTS="This is hypothetical, but can I create a pseudo-Thing to display for tags, to remove all the special-case code in thing.scala.html? " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41436.40937500" DONEDATESTRING="6/11/2013 9:49 AM" PERCENTDONE="100" STARTDATE="41436.00000000" STARTDATESTRING="6/11/2013" CREATIONDATE="41436.35586806" CREATIONDATESTRING="6/11/2013 8:32 AM" LASTMOD="41436.40937500" LASTMODSTRING="6/11/2013 9:49 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can edit/create the tag when it is viewed" ID="542" COMMENTS="That is, the menus should behave kind of as if this is a real thing. It should be possible to "Edit" it, which actually instantiates it. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41436.40943287" DONEDATESTRING="6/11/2013 9:49 AM" PERCENTDONE="100" STARTDATE="41435.00000000" STARTDATESTRING="6/10/2013" CREATIONDATE="41435.73291667" CREATIONDATESTRING="6/10/2013 5:35 PM" LASTMOD="41436.40943287" LASTMODSTRING="6/11/2013 9:49 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Initial output renderer for Tag Set" ID="499" COMMENTS="This displays the names as separate Links, *including* valid links to unknown names. To make this work, we will likely need to introduce UnknownNameValue in QLParser, replacing the existing error, and have a proper renderer for that. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41435.53597222" DONEDATESTRING="6/10/2013 12:51 PM" PERCENTDONE="100" STARTDATE="41429.00000000" STARTDATESTRING="6/4/2013" CREATIONDATE="41429.66247685" CREATIONDATESTRING="6/4/2013 3:53 PM" LASTMOD="41435.53597222" LASTMODSTRING="6/10/2013 12:51 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Introduce _tagsForProperty" ID="500" COMMENTS="This method applies to any Tag Set Property -- it produces a list of all the tags used in that Property. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41436.56054398" DONEDATESTRING="6/11/2013 1:27 PM" PERCENTDONE="100" STARTDATE="41429.00000000" STARTDATESTRING="6/4/2013" CREATIONDATE="41429.66381944" CREATIONDATESTRING="6/4/2013 3:55 PM" LASTMOD="41436.56054398" LASTMODSTRING="6/11/2013 1:27 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Navigation to _tagsForProperty" ID="501" COMMENTS="We need some way for the user to ask, "What are all the tags that have been used in this?".
This should be the default listing for any TagSet Property. It should probably be displayed in the Space root by default. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41436.64552083" DONEDATESTRING="6/11/2013 3:29 PM" PERCENTDONE="100" STARTDATE="41429.00000000" STARTDATESTRING="6/4/2013" CREATIONDATE="41429.66453704" CREATIONDATESTRING="6/4/2013 3:56 PM" LASTMOD="41436.64552083" LASTMODSTRING="6/11/2013 3:29 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Add Property._link" ID="546" COMMENTS="Really, Thing._link, but it mostly matters for Properties. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41436.57210648" DONEDATESTRING="6/11/2013 1:43 PM" PERCENTDONE="100" STARTDATE="41436.00000000" STARTDATESTRING="6/11/2013" CREATIONDATE="41436.56074074" CREATIONDATESTRING="6/11/2013 1:27 PM" LASTMOD="41436.57210648" LASTMODSTRING="6/11/2013 1:43 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add _propsOfType" ID="547" COMMENTS="So we can get at all of the Tag Set properties. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41436.64549769" DONEDATESTRING="6/11/2013 3:29 PM" PERCENTDONE="100" STARTDATE="41436.00000000" STARTDATESTRING="6/11/2013" CREATIONDATE="41436.56192130" CREATIONDATESTRING="6/11/2013 1:29 PM" LASTMOD="41436.64549769" LASTMODSTRING="6/11/2013 3:29 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="I can "edit" a Tag's page" ID="503" COMMENTS="If I am looking at the pseudo-page for a Tag that has no Thing, I can very easily "edit" that -- which creates the Page, with an initial Display Text that shows the References list. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41436.40956019" DONEDATESTRING="6/11/2013 9:49 AM" PERCENTDONE="100" STARTDATE="41429.00000000" STARTDATESTRING="6/4/2013" CREATIONDATE="41429.66555556" CREATIONDATESTRING="6/4/2013 3:58 PM" LASTMOD="41436.40956019" LASTMODSTRING="6/11/2013 9:49 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Prompting input renderer for Tag Set" ID="502" COMMENTS="Ideally, as soon as you have typed 2-3 characters, it begins to prompt you with existing options for this tag.
This is probably based on Manifest? " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41437.74056713" DONEDATESTRING="6/12/2013 5:46 PM" PERCENTDONE="100" STARTDATE="41429.00000000" STARTDATESTRING="6/4/2013" CREATIONDATE="41429.66504630" CREATIONDATESTRING="6/4/2013 3:57 PM" LASTMOD="41437.74056713" LASTMODSTRING="6/12/2013 5:46 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="When I click to create a Tag, ask for the Model" ID="544" COMMENTS="Currently it is always going for Simple Thing, but that's really not right. Explicitly ask when Model to use to instantiate it.
LATER: actually, it might make more sense to have Tags respect the Link to Model meta-property -- we instantiate that thing. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41437.47379630" DONEDATESTRING="6/12/2013 11:22 AM" PERCENTDONE="100" STARTDATE="41436.00000000" STARTDATESTRING="6/11/2013" CREATIONDATE="41436.41406250" CREATIONDATESTRING="6/11/2013 9:56 AM" LASTMOD="41437.47379630" LASTMODSTRING="6/12/2013 11:22 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="____ doesn't seem to work with Tag Set?" ID="606" COMMENTS="See the rendering of Source in the Poker DB.
LATER: proved to be a stupid syntax error in my Display Text. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41439.78600694" DONEDATESTRING="6/14/2013 6:51 PM" PERCENTDONE="100" STARTDATE="41438.00000000" STARTDATESTRING="6/13/2013" CREATIONDATE="41438.74944444" CREATIONDATESTRING="6/13/2013 5:59 PM" LASTMOD="41439.78623843" LASTMODSTRING="6/14/2013 6:52 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Created by link isn't working" ID="609" COMMENTS="What is different about this? It looks like the Name isn't propagating into the link properly. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41439.78659722" DONEDATESTRING="6/14/2013 6:52 PM" PERCENTDONE="100" STARTDATE="41439.00000000" STARTDATESTRING="6/14/2013" CREATIONDATE="41439.71642361" CREATIONDATESTRING="6/14/2013 5:11 PM" LASTMOD="41439.78659722" LASTMODSTRING="6/14/2013 6:52 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
</TASK>
<TASK TITLE="I can edit a Property" ID="232" COMMENTS="At the moment, Space.modifyThing can't cope with editing a Property. This is probably a fairly easy thing to fix. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41436.55916667" DONEDATESTRING="6/11/2013 1:25 PM" PERCENTDONE="100" STARTDATE="41310.00000000" STARTDATESTRING="2/5/2013" CREATIONDATE="41310.41834491" CREATIONDATESTRING="2/5/2013 10:02 AM" LASTMOD="41436.55916667" LASTMODSTRING="6/11/2013 1:25 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can refer to a not-yet-defined page as a QL link" ID="602" COMMENTS="This is a usual habit from Wikis, that we should support.
If I am working on a page, and I say:
blah blah [[My Page]] blah blah
currently Querki displays that as [UNKNOWN NAME: My Page]. But of course, that is rarely what I want -- instead, I want it to make a Link to the not-yet-defined page "My Page".
Now that Tags are implemented, we have most of the capabilities we need for that. We should instead turn the string into a NameType value, and just pass it right on through. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41443.35788194" DONEDATESTRING="6/18/2013 8:35 AM" PERCENTDONE="100" STARTDATE="41438.00000000" STARTDATESTRING="6/13/2013" CREATIONDATE="41438.67216435" CREATIONDATESTRING="6/13/2013 4:07 PM" LASTMOD="41443.35788194" LASTMODSTRING="6/18/2013 8:35 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can set up my invitation list" ID="79" COMMENTS="This involves inputting all of the people; defining the relationships between spice and children; and writing the invitation text for each person. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Use Case" DONEDATE="41443.50880787" DONEDATESTRING="6/18/2013 12:12 PM" PERCENTDONE="100" STARTDATE="41382.43182870" STARTDATESTRING="4/18/2013 10:21 AM" CREATIONDATE="41190.66784722" CREATIONDATESTRING="10/8/2012 4:01 PM" LASTMOD="41443.50880787" LASTMODSTRING="6/18/2013 12:12 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="We can send out the invitations to the wedding" ID="84" COMMENTS="This drives most of the previous functionality. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Use Case" DONEDATE="41443.50896991" DONEDATESTRING="6/18/2013 12:12 PM" PERCENTDONE="100" DUEDATE="41619.50880787" DUEDATESTRING="12/11/2013 12:12 PM" STARTDATE="41444.50880787" STARTDATESTRING="6/19/2013 12:12 PM" CREATIONDATE="41190.67282407" CREATIONDATESTRING="10/8/2012 4:08 PM" LASTMOD="41443.50896991" LASTMODSTRING="6/18/2013 12:12 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can more easily edit the Space page itself" ID="601" COMMENTS="At the moment, Space Home goes to the root of the Space. It should instead go to Space/Space, the page about the Space itself, to make it easier to edit. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41443.69415509" DONEDATESTRING="6/18/2013 4:39 PM" PERCENTDONE="100" STARTDATE="41438.00000000" STARTDATESTRING="6/13/2013" CREATIONDATE="41438.65297454" CREATIONDATESTRING="6/13/2013 3:40 PM" LASTMOD="41443.69415509" LASTMODSTRING="6/18/2013 4:39 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can use my phone for Poker Night" ID="651" COMMENTS="Poker next week is at Charley's. So it's time for the first touches of Mobile. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41446.36449074" DONEDATESTRING="6/21/2013 8:44 AM" PERCENTDONE="100" STARTDATE="41444.00000000" STARTDATESTRING="6/19/2013" CREATIONDATE="41444.34751157" CREATIONDATESTRING="6/19/2013 8:20 AM" LASTMOD="41446.36449074" LASTMODSTRING="6/21/2013 8:44 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can use Responsive tools in my pages" ID="661" COMMENTS="Enabled Bootstrap Responsive, so things like {{hidden-phone:...}} now work. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41445.67763889" DONEDATESTRING="6/20/2013 4:15 PM" PERCENTDONE="100" STARTDATE="41445.00000000" STARTDATESTRING="6/20/2013" CREATIONDATE="41445.67722222" CREATIONDATESTRING="6/20/2013 4:15 PM" LASTMOD="41445.67763889" LASTMODSTRING="6/20/2013 4:15 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Menus in small-screen mode respect the screen size" ID="653" COMMENTS="This might just work, although it probably doesn't look great. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41446.36447917" DONEDATESTRING="6/21/2013 8:44 AM" PERCENTDONE="100" STARTDATE="41444.00000000" STARTDATESTRING="6/19/2013" CREATIONDATE="41444.34857639" CREATIONDATESTRING="6/19/2013 8:21 AM" LASTMOD="41446.36447917" LASTMODSTRING="6/21/2013 8:44 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can define a Small Display Text" ID="654" COMMENTS="This is an alternate version of Display Text, used when in small-screen mode. Defaults to Display Text, but can be overridden.
NO: use responsive techniques instead. We might as well encourage the current best practices. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41445.67699074" DONEDATESTRING="6/20/2013 4:14 PM" PERCENTDONE="100" STARTDATE="41444.00000000" STARTDATESTRING="6/19/2013" CREATIONDATE="41444.34884259" CREATIONDATESTRING="6/19/2013 8:22 AM" LASTMOD="41445.67699074" LASTMODSTRING="6/20/2013 4:14 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Create the Small Poker Screen" ID="655" COMMENTS="This is a version of the Poker homepage. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41445.67696759" DONEDATESTRING="6/20/2013 4:14 PM" PERCENTDONE="100" STARTDATE="41444.00000000" STARTDATESTRING="6/19/2013" CREATIONDATE="41444.34935185" CREATIONDATESTRING="6/19/2013 8:23 AM" LASTMOD="41445.67696759" LASTMODSTRING="6/20/2013 4:14 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="The page has only the most basic text" ID="656" COMMENTS="Probably with a pointer to a separate page (separate property?) for the full details. When viewed on the full display, the full details are included. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41445.36351852" DONEDATESTRING="6/20/2013 8:43 AM" PERCENTDONE="100" STARTDATE="41444.00000000" STARTDATESTRING="6/19/2013" CREATIONDATE="41444.34969907" CREATIONDATESTRING="6/19/2013 8:23 AM" LASTMOD="41445.36351852" LASTMODSTRING="6/20/2013 8:43 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="The page has a "Create New Variant" button" ID="657" COMMENTS="This kicks you into the Editor, in create mode, like the + in All Things. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41444.72355324" DONEDATESTRING="6/19/2013 5:21 PM" PERCENTDONE="100" STARTDATE="41444.00000000" STARTDATESTRING="6/19/2013" CREATIONDATE="41444.35053241" CREATIONDATESTRING="6/19/2013 8:24 AM" LASTMOD="41444.72355324" LASTMODSTRING="6/19/2013 5:21 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="The page has a list of variants, optimized for limited width" ID="658" COMMENTS="Probably one name per line, indented under the Category, to make it more readable. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41445.67695602" DONEDATESTRING="6/20/2013 4:14 PM" PERCENTDONE="100" STARTDATE="41444.00000000" STARTDATESTRING="6/19/2013" CREATIONDATE="41444.35084491" CREATIONDATESTRING="6/19/2013 8:25 AM" LASTMOD="41445.67695602" LASTMODSTRING="6/20/2013 4:14 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
</TASK>
<TASK TITLE="Querki supports SPF" ID="628" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41443.44751157" DONEDATESTRING="6/18/2013 10:44 AM" PERCENTDONE="100" STARTDATE="41443.00000000" STARTDATESTRING="6/18/2013" CREATIONDATE="41443.44738426" CREATIONDATESTRING="6/18/2013 10:44 AM" LASTMOD="41443.44751157" LASTMODSTRING="6/18/2013 10:44 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Send a test email to Anne Cross" ID="631" COMMENTS="She's willing to look at it on dragonmage, and see what it has to say. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41443.58196759" DONEDATESTRING="6/18/2013 1:58 PM" PERCENTDONE="100" STARTDATE="41443.00000000" STARTDATESTRING="6/18/2013" CREATIONDATE="41443.48098380" CREATIONDATESTRING="6/18/2013 11:32 AM" LASTMOD="41443.58196759" LASTMODSTRING="6/18/2013 1:58 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Querki emails get sent as MIME multipart" ID="630" COMMENTS="Specifically, we're getting dinged as spam for not having a text/plain version. We can probably fix that by basically sending the Markdown directly as the text/plain.
Also, we're getting dinged for sending HTML email but not marking it as such. Again, MIME multipart is clearly the key. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41443.61018519" DONEDATESTRING="6/18/2013 2:38 PM" PERCENTDONE="100" STARTDATE="41443.00000000" STARTDATESTRING="6/18/2013" CREATIONDATE="41443.45943287" CREATIONDATESTRING="6/18/2013 11:01 AM" LASTMOD="41443.61018519" LASTMODSTRING="6/18/2013 2:38 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Sprint 15: June 24 - July 7" ID="679" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41463.36180556" DONEDATESTRING="7/8/2013 8:41 AM" PERCENTDONE="100" STARTDATE="41449.00000000" STARTDATESTRING="6/24/2013" CREATIONDATE="41449.33920139" CREATIONDATESTRING="6/24/2013 8:08 AM" LASTMOD="41463.36180556" LASTMODSTRING="7/8/2013 8:41 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Add Cancel buttons to the top and bottom of Editor" ID="674" COMMENTS="And remove the "Show" button from the Thing menu. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41449.34917824" DONEDATESTRING="6/24/2013 8:22 AM" PERCENTDONE="100" STARTDATE="41446.00000000" STARTDATESTRING="6/21/2013" CREATIONDATE="41446.40881944" CREATIONDATESTRING="6/21/2013 9:48 AM" LASTMOD="41449.34917824" LASTMODSTRING="6/24/2013 8:22 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add an Edit button to the Thing display" ID="675" COMMENTS="This should show iff the user can edit the Thing. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41449.37410880" DONEDATESTRING="6/24/2013 8:58 AM" PERCENTDONE="100" STARTDATE="41446.00000000" STARTDATESTRING="6/21/2013" CREATIONDATE="41446.40917824" CREATIONDATESTRING="6/21/2013 9:49 AM" LASTMOD="41449.37410880" LASTMODSTRING="6/24/2013 8:58 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Pull the contents of the Space Menu out into side-dropdown" ID="676" COMMENTS="Use a split-button dropdown, so clicking the name of the Space goes to the Space itself, but clicking the arrow drops the menu.
Then do the same for the Thing menu. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41449.53407407" DONEDATESTRING="6/24/2013 12:49 PM" PERCENTDONE="100" STARTDATE="41446.00000000" STARTDATESTRING="6/21/2013" CREATIONDATE="41446.41004630" CREATIONDATESTRING="6/21/2013 9:50 AM" LASTMOD="41449.53407407" LASTMODSTRING="6/24/2013 12:49 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="A Tag Set is a Set, not a List" ID="648" COMMENTS="Once we have Sets, this is almost trivially obvious. And it means that a lot of the special-case code for Tag Sets can simply go away. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41452.54800926" DONEDATESTRING="6/27/2013 1:09 PM" PERCENTDONE="100" STARTDATE="41443.00000000" STARTDATESTRING="6/18/2013" CREATIONDATE="41443.85373843" CREATIONDATESTRING="6/18/2013 8:29 PM" LASTMOD="41452.54800926" LASTMODSTRING="6/27/2013 1:09 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can have a Set of Email Recipients, not a List" ID="639" COMMENTS="I just realized that Email To / Recipients / Sent To is a great motivating case to build the Set Type. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41452.66524306" DONEDATESTRING="6/27/2013 3:57 PM" PERCENTDONE="100" STARTDATE="41443.00000000" STARTDATESTRING="6/18/2013" CREATIONDATE="41443.84973380" CREATIONDATESTRING="6/18/2013 8:23 PM" LASTMOD="41452.66524306" LASTMODSTRING="6/27/2013 3:57 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I have a Set Type" ID="640" COMMENTS="Initially, this is just a simple copy (or more likely refactor) of List.
IMPORTANT: it should be disk-compatible with List, so that existing Lists still work. I think that should be easy. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41449.62605324" DONEDATESTRING="6/24/2013 3:01 PM" PERCENTDONE="100" STARTDATE="41443.00000000" STARTDATESTRING="6/18/2013" CREATIONDATE="41443.85035880" CREATIONDATESTRING="6/18/2013 8:24 PM" LASTMOD="41449.62605324" LASTMODSTRING="6/24/2013 3:01 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="A Set is kept in sorted order" ID="642" COMMENTS="Since we more or less always want to *display* sorted, that makes sense. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41449.65010417" DONEDATESTRING="6/24/2013 3:36 PM" PERCENTDONE="100" STARTDATE="41443.00000000" STARTDATESTRING="6/18/2013" CREATIONDATE="41443.85137731" CREATIONDATESTRING="6/18/2013 8:25 PM" LASTMOD="41449.65010417" LASTMODSTRING="6/24/2013 3:36 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="When you change a Set, it dedupes" ID="641" COMMENTS="That is, it skims the Set and removes all duplicates when it gets changed. This way, you can convert a List to a Set trivially. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41449.66649306" DONEDATESTRING="6/24/2013 3:59 PM" PERCENTDONE="100" STARTDATE="41443.00000000" STARTDATESTRING="6/18/2013" CREATIONDATE="41443.85096065" CREATIONDATESTRING="6/18/2013 8:25 PM" LASTMOD="41449.66649306" LASTMODSTRING="6/24/2013 3:59 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can have a Set of Links" ID="685" COMMENTS="This means that:
-- You cannot invent new values in-set, only use existing one.
-- The offered values respect the Link Model.
-- We store the OIDs of the linked-to Things in the UI, and return those in the results.
This will require one or two new attributes when creating the Manifest object, and some new work in editThing. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41450.71872685" DONEDATESTRING="6/25/2013 5:14 PM" PERCENTDONE="100" STARTDATE="41449.00000000" STARTDATESTRING="6/24/2013" CREATIONDATE="41449.63285880" CREATIONDATESTRING="6/24/2013 3:11 PM" LASTMOD="41450.71872685" LASTMODSTRING="6/25/2013 5:14 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="A Set of Links or Tags uses Manifest for its UI" ID="643" COMMENTS="This is completely natural -- Manifest is just right. It does autoprompting, it has easy removal, and it's logical and concise. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41450.71883102" DONEDATESTRING="6/25/2013 5:15 PM" PERCENTDONE="100" STARTDATE="41443.00000000" STARTDATESTRING="6/18/2013" CREATIONDATE="41443.85168981" CREATIONDATESTRING="6/18/2013 8:26 PM" LASTMOD="41450.71883102" LASTMODSTRING="6/25/2013 5:15 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Email Message should use Set, not List, for its Person Properties" ID="644" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41450.72781250" DONEDATESTRING="6/25/2013 5:28 PM" PERCENTDONE="100" STARTDATE="41443.00000000" STARTDATESTRING="6/18/2013" CREATIONDATE="41443.85250000" CREATIONDATESTRING="6/18/2013 8:27 PM" LASTMOD="41450.72781250" LASTMODSTRING="6/25/2013 5:28 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="The Email To Set for Email Message does not allow you to type arbitrary names" ID="650" COMMENTS="This implies some meta-properties -- it only accepts real Links, and they must be of type Person. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41450.72791667" DONEDATESTRING="6/25/2013 5:28 PM" PERCENTDONE="100" STARTDATE="41443.00000000" STARTDATESTRING="6/18/2013" CREATIONDATE="41443.85439815" CREATIONDATESTRING="6/18/2013 8:30 PM" LASTMOD="41450.72791667" LASTMODSTRING="6/25/2013 5:28 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="The display of Email Message uses Set._edit, so you can change it ad-hoc, with going into Editor" ID="645" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41452.41987269" DONEDATESTRING="6/27/2013 10:04 AM" PERCENTDONE="100" STARTDATE="41443.00000000" STARTDATESTRING="6/18/2013" CREATIONDATE="41443.85271991" CREATIONDATESTRING="6/18/2013 8:27 PM" LASTMOD="41452.41987269" LASTMODSTRING="6/27/2013 10:04 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="The display of Email Message lets you edit *all* of its properties right in-screen" ID="646" COMMENTS="There is little reason or motivation to ever want to use Editor with an Email Message. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41452.41990741" DONEDATESTRING="6/27/2013 10:04 AM" PERCENTDONE="100" STARTDATE="41443.00000000" STARTDATESTRING="6/18/2013" CREATIONDATE="41443.85304398" CREATIONDATESTRING="6/18/2013 8:28 PM" LASTMOD="41452.41990741" LASTMODSTRING="6/27/2013 10:04 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="If I can't edit, _edit should render instead" ID="689" COMMENTS="That is, don't even display the edit control iff the viewer can't edit it. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41452.62697917" DONEDATESTRING="6/27/2013 3:02 PM" PERCENTDONE="100" STARTDATE="41452.00000000" STARTDATESTRING="6/27/2013" CREATIONDATE="41452.39732639" CREATIONDATESTRING="6/27/2013 9:32 AM" LASTMOD="41452.62697917" LASTMODSTRING="6/27/2013 3:02 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add _editOrElse" ID="688" COMMENTS="_editOrElse(PHRASE) displays phrase instead if the viewer can't edit this. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41452.62701389" DONEDATESTRING="6/27/2013 3:02 PM" PERCENTDONE="100" STARTDATE="41452.00000000" STARTDATESTRING="6/27/2013" CREATIONDATE="41452.39714120" CREATIONDATESTRING="6/27/2013 9:31 AM" LASTMOD="41452.62701389" LASTMODSTRING="6/27/2013 3:02 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Fix the Poker Space" ID="686" COMMENTS="Its TagSet Properties need to become Sets, or the UI will break. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41452.66521991" DONEDATESTRING="6/27/2013 3:57 PM" PERCENTDONE="100" STARTDATE="41450.00000000" STARTDATESTRING="6/25/2013" CREATIONDATE="41450.39521991" CREATIONDATESTRING="6/25/2013 9:29 AM" LASTMOD="41452.66521991" LASTMODSTRING="6/27/2013 3:57 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Unknown Names show up highlighted in the resulting page" ID="636" COMMENTS="Eg, the text should be a different color, so I can tell that it's undefined. Do this with a standard CSS class, so it can be customized. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41452.68907407" DONEDATESTRING="6/27/2013 4:32 PM" PERCENTDONE="100" STARTDATE="41443.00000000" STARTDATESTRING="6/18/2013" CREATIONDATE="41443.70795139" CREATIONDATESTRING="6/18/2013 4:59 PM" LASTMOD="41452.68907407" LASTMODSTRING="6/27/2013 4:32 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="When I add Who Can Edit, I can't delete it again!" ID="694" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41456.37358796" DONEDATESTRING="7/1/2013 8:57 AM" PERCENTDONE="100" STARTDATE="41454.00000000" STARTDATESTRING="6/29/2013" CREATIONDATE="41454.47099537" CREATIONDATESTRING="6/29/2013 11:18 AM" LASTMOD="41456.37358796" LASTMODSTRING="7/1/2013 8:57 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="First-draft ACLs" ID="691" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41456.61091435" DONEDATESTRING="7/1/2013 2:39 PM" PERCENTDONE="100" STARTDATE="41452.00000000" STARTDATESTRING="6/27/2013" CREATIONDATE="41452.73197917" CREATIONDATESTRING="6/27/2013 5:34 PM" LASTMOD="41456.61091435" LASTMODSTRING="7/1/2013 2:39 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can declare my Space to be Locked" ID="692" COMMENTS="In a Locked Space, only the members can see anything.
In the first draft, this is probably just a QL Property that establishes whether the current viewer can read/write the current Thing. Allow that to be defined on Space and Thing, link them together appropriately, and it's enough for the wedding Space.
This should be filling in the existing canRead/Write/Create methods. They should *all* be defined in terms of an optional Thing -- we should mostly check whether the current user can work on that Thing. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41456.61060185" DONEDATESTRING="7/1/2013 2:39 PM" PERCENTDONE="100" STARTDATE="41452.00000000" STARTDATESTRING="6/27/2013" CREATIONDATE="41452.73207176" CREATIONDATESTRING="6/27/2013 5:34 PM" LASTMOD="41456.61060185" LASTMODSTRING="7/1/2013 2:39 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can declare a Thing to be Locked or Public" ID="693" COMMENTS="That is, the Thing's right override the Space's ones. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41456.61071759" DONEDATESTRING="7/1/2013 2:39 PM" PERCENTDONE="100" STARTDATE="41452.00000000" STARTDATESTRING="6/27/2013" CREATIONDATE="41452.73231481" CREATIONDATESTRING="6/27/2013 5:34 PM" LASTMOD="41456.61071759" LASTMODSTRING="7/1/2013 2:39 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can declare who is allowed to create specific Models" ID="696" COMMENTS="That is, it should be common for a Space to be Owner-only, but a particular Model to be createable and editable by Members. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41456.61077546" DONEDATESTRING="7/1/2013 2:39 PM" PERCENTDONE="100" STARTDATE="41454.00000000" STARTDATESTRING="6/29/2013" CREATIONDATE="41454.49740741" CREATIONDATESTRING="6/29/2013 11:56 AM" LASTMOD="41456.61077546" LASTMODSTRING="7/1/2013 2:39 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Collection includes options that should never be used" ID="600" COMMENTS="You can currently say that a Property is "Collection" or "Always Empty", neither of which is ever legal. Clean these out! " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41458.38418981" DONEDATESTRING="7/3/2013 9:13 AM" PERCENTDONE="100" STARTDATE="41438.00000000" STARTDATESTRING="6/13/2013" CREATIONDATE="41438.64604167" CREATIONDATESTRING="6/13/2013 3:30 PM" LASTMOD="41458.38418981" LASTMODSTRING="7/3/2013 9:13 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="On a small screen, the Editor window looks like crap" ID="660" COMMENTS="So far, I've found no way to make Bootstrap's control-group responsive, which is kind of surprising. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41444.70187500" DONEDATESTRING="6/19/2013 4:50 PM" PERCENTDONE="100" STARTDATE="41444.00000000" STARTDATESTRING="6/19/2013" CREATIONDATE="41444.65853009" CREATIONDATESTRING="6/19/2013 3:48 PM" LASTMOD="41444.70187500" LASTMODSTRING="6/19/2013 4:50 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can include links to various pages in emails" ID="680" COMMENTS="The interested part here isn't so much the links as it is that the links should carry authentication credentials -- I should be able to click on *any* of these links, and it should log me into my identity in this space.
We need this soon, for the Wedding info.
This probably consists of a new "AsInviteLink" method, which adds the same params as the InviteLink, plus the Person being connected to. (Or should internal links in emails *always* have credentials? Hmm.)
This method should take a parameter (probably a by-name parameter) indicating whether to show the page chromeless. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41458.62062500" DONEDATESTRING="7/3/2013 2:53 PM" PERCENTDONE="100" STARTDATE="41449.00000000" STARTDATESTRING="6/24/2013" CREATIONDATE="41449.62054398" CREATIONDATESTRING="6/24/2013 2:53 PM" LASTMOD="41458.62062500" LASTMODSTRING="7/3/2013 2:53 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can specify that Members should see my Space chromelessly by default" ID="733" COMMENTS="Currently, I have to specify chromelessness on an invite-by-invite basis. That's silly -- I want to just declare it as a quality of the Space, that has to be deliberately overridden. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41458.63572917" DONEDATESTRING="7/3/2013 3:15 PM" PERCENTDONE="100" STARTDATE="41458.00000000" STARTDATESTRING="7/3/2013" CREATIONDATE="41458.61993056" CREATIONDATESTRING="7/3/2013 2:52 PM" LASTMOD="41458.63572917" LASTMODSTRING="7/3/2013 3:15 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can display/edit Properties more easily" ID="681" COMMENTS="Currently, the main Space page doesn't list the Properties -- indeed, there is no straightforward way to get to a Property to edit it. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41459.57535880" DONEDATESTRING="7/4/2013 1:48 PM" PERCENTDONE="100" STARTDATE="41449.00000000" STARTDATESTRING="6/24/2013" CREATIONDATE="41449.62328704" CREATIONDATESTRING="6/24/2013 2:57 PM" LASTMOD="41459.57535880" LASTMODSTRING="7/4/2013 1:48 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Add the _allProps() method" ID="682" COMMENTS="This method lists all of the Properties in the passed-in Space. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41459.56829861" DONEDATESTRING="7/4/2013 1:38 PM" PERCENTDONE="100" STARTDATE="41449.00000000" STARTDATESTRING="6/24/2013" CREATIONDATE="41449.62383102" CREATIONDATESTRING="6/24/2013 2:58 PM" LASTMOD="41459.56829861" LASTMODSTRING="7/4/2013 1:38 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add the All Properties pseudo-method" ID="683" COMMENTS="This is similar to All Things -- it displays an alphabetized list of all Properties in this Space.
It is probably *not* hierarchical, because you don't often make sub-Properties. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41459.57527778" DONEDATESTRING="7/4/2013 1:48 PM" PERCENTDONE="100" STARTDATE="41449.00000000" STARTDATESTRING="6/24/2013" CREATIONDATE="41449.62410880" CREATIONDATESTRING="6/24/2013 2:58 PM" LASTMOD="41459.57527778" LASTMODSTRING="7/4/2013 1:48 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add All Properties to the Space menu" ID="684" COMMENTS="That is, this should be a separate standard page, accessible from the menu, but not part of the usual display, since you don't need it often. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41459.57534722" DONEDATESTRING="7/4/2013 1:48 PM" PERCENTDONE="100" STARTDATE="41449.00000000" STARTDATESTRING="6/24/2013" CREATIONDATE="41449.62467593" CREATIONDATESTRING="6/24/2013 2:59 PM" LASTMOD="41459.57534722" LASTMODSTRING="7/4/2013 1:48 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Handle QL parse error better" ID="678" COMMENTS="Try to provide a clear error message to the user when they happen, at the very least. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41460.70369213" DONEDATESTRING="7/5/2013 4:53 PM" PERCENTDONE="100" STARTDATE="41446.00000000" STARTDATESTRING="6/21/2013" CREATIONDATE="41446.42127315" CREATIONDATESTRING="6/21/2013 10:06 AM" LASTMOD="41460.70369213" LASTMODSTRING="7/5/2013 4:53 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Sprint 16: July 8 - 21" ID="764" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41478.51424769" DONEDATESTRING="7/23/2013 12:20 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.36152778" CREATIONDATESTRING="7/8/2013 8:40 AM" LASTMOD="41478.51424769" LASTMODSTRING="7/23/2013 12:20 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Improve Types and Collections" ID="199" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41467.36880787" DONEDATESTRING="7/12/2013 8:51 AM" PERCENTDONE="100" STARTDATE="41261.00000000" STARTDATESTRING="12/18/2012" CREATIONDATE="41261.35965278" CREATIONDATESTRING="12/18/2012 8:37 AM" LASTMOD="41467.36880787" LASTMODSTRING="7/12/2013 8:51 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Simplify ElemValue and PType?" ID="203" COMMENTS="Can we reduce the complexity of this stack? We've managed to remove the CT parameter -- can we get rid of VT and RT?
At the least, we should put the PType inside the ElemValue, the same way that the PropValue contains the Collection. It should *not* go in the signature -- I've found that that way lies madness -- but instead should become an ordinary member.
We also might want to have PType in PropValue. We *could* just look at cv.head, but that won't always exist, so it would be more correct to have a stronger declaration. At that point, we can begin to enforce things much more properly, which is likely going to be Very Good.
Once we do that, we can begin to clean up *tons* of the stack. (Including probably getting rid of TypedValue.) " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41467.36879630" DONEDATESTRING="7/12/2013 8:51 AM" PERCENTDONE="100" STARTDATE="41261.00000000" STARTDATESTRING="12/18/2012" CREATIONDATE="41261.36098380" CREATIONDATESTRING="12/18/2012 8:39 AM" LASTMOD="41467.36879630" LASTMODSTRING="7/12/2013 8:51 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Consolidate the value-holding classes" ID="767" COMMENTS="We should probably finally create querki.values. Move Context and TypedValue into there. Then pull ElemValue, PropValue and PropAndVal all into there. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41463.78239583" DONEDATESTRING="7/8/2013 6:46 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.37896991" CREATIONDATESTRING="7/8/2013 9:05 AM" LASTMOD="41463.78239583" LASTMODSTRING="7/8/2013 6:46 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Introduce PTypeProducer" ID="765" COMMENTS="This is a side-trait that gets mixed into PTypeBuilder, and says what PType it produces. This way, PTypeBuilder.apply() knows what type to stuff into the ElemValues. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41463.79160880" DONEDATESTRING="7/8/2013 6:59 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.37490741" CREATIONDATESTRING="7/8/2013 8:59 AM" LASTMOD="41463.79160880" LASTMODSTRING="7/8/2013 6:59 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add PType to ElemValue" ID="766" COMMENTS="This will cause the entire world to break. Expect to spend a fair while chasing down the problems.
In general, try to eliminate raw ElemValue invocations while fixing this. We should route through PTypeBuilder whenever possible. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41464.72113426" DONEDATESTRING="7/9/2013 5:18 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.37802083" CREATIONDATESTRING="7/8/2013 9:04 AM" LASTMOD="41464.72113426" LASTMODSTRING="7/9/2013 5:18 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Introduce ElemValue.get[VT](pType)" ID="768" COMMENTS="This is essentially a type assertion, similar to how PropValue.firstTyped currently works. It asserts that the pType in question is the one in this ElemValue, and then calls PType.get() to fetch/translate the value. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41465.74590278" DONEDATESTRING="7/10/2013 5:54 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.38011574" CREATIONDATESTRING="7/8/2013 9:07 AM" LASTMOD="41465.74590278" LASTMODSTRING="7/10/2013 5:54 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add PType to PropValue" ID="771" COMMENTS="Let's stop pretending that PropValues are untyped -- they obviously *do* have a specific type, and we count on that. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41466.64656250" DONEDATESTRING="7/11/2013 3:31 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.38326389" CREATIONDATESTRING="7/8/2013 9:11 AM" LASTMOD="41466.64656250" LASTMODSTRING="7/11/2013 3:31 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Merge PropValue and TypedValue" ID="785" COMMENTS="Start by making TypedValue a subclass of PropValue, and merge the constructors. This will break *tons* of instantiations, but will make all of them shorter. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41466.78013889" DONEDATESTRING="7/11/2013 6:43 PM" PERCENTDONE="100" STARTDATE="41465.00000000" STARTDATESTRING="7/10/2013" CREATIONDATE="41465.77113426" CREATIONDATESTRING="7/10/2013 6:30 PM" LASTMOD="41466.78013889" LASTMODSTRING="7/11/2013 6:43 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Rename to QValue" ID="787" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41466.78016204" DONEDATESTRING="7/11/2013 6:43 PM" PERCENTDONE="100" STARTDATE="41466.00000000" STARTDATESTRING="7/11/2013" CREATIONDATE="41466.74085648" CREATIONDATESTRING="7/11/2013 5:46 PM" LASTMOD="41466.78016204" LASTMODSTRING="7/11/2013 6:43 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Can we get rid of PropAndVal?" ID="786" COMMENTS="It mainly indirected things through the Property since that knew the PType. Now we know the PType in first principles, and most or all of this can be done in QValue.
The purpose of PropAndVal is now clearly just to carry the VT. We might be able to simplify things by creating a new TypedQValue[VT], which is simply a derivative of QValue with a type parameter. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41467.36877315" DONEDATESTRING="7/12/2013 8:51 AM" PERCENTDONE="100" STARTDATE="41466.00000000" STARTDATESTRING="7/11/2013" CREATIONDATE="41466.74037037" CREATIONDATESTRING="7/11/2013 5:46 PM" LASTMOD="41467.36877315" LASTMODSTRING="7/12/2013 8:51 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Single quote in Text field kills it!!!!" ID="784" COMMENTS="Found this one out the hard way. The Subject line for our wedding invite is supposed to be "More Information about Katherine and Mark's wedding". That appears to *write* successfully. But when we read it back in, everything after the quote gets clipped!
More mysterious: it seems to have worked fine the first time I edited it. But subsequent edits keep losing everything after the quote. Not at all sure why. Something to do with failing on re-reading from the DB? " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41467.59038194" DONEDATESTRING="7/12/2013 2:10 PM" PERCENTDONE="100" STARTDATE="41465.00000000" STARTDATESTRING="7/10/2013" CREATIONDATE="41465.69226852" CREATIONDATESTRING="7/10/2013 4:36 PM" LASTMOD="41467.59038194" LASTMODSTRING="7/12/2013 2:10 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="When I reify a page from a Tag, use the current template" ID="608" COMMENTS="Currently, we are using a hardcoded template as the starting point. That's incorrect -- we should be using the current value of Space._showUnknownName. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41467.62059028" DONEDATESTRING="7/12/2013 2:53 PM" PERCENTDONE="100" STARTDATE="41439.00000000" STARTDATESTRING="6/14/2013" CREATIONDATE="41439.41064815" CREATIONDATESTRING="6/14/2013 9:51 AM" LASTMOD="41467.62059028" LASTMODSTRING="7/12/2013 2:53 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can get from a Thing to its Model" ID="387" COMMENTS="Maybe via a hover on the Thing's name? Maybe a menu pick? Maybe a consistent small link after the name? " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41467.65957176" DONEDATESTRING="7/12/2013 3:49 PM" PERCENTDONE="100" STARTDATE="41418.00000000" STARTDATESTRING="5/24/2013" CREATIONDATE="41418.40087963" CREATIONDATESTRING="5/24/2013 9:37 AM" LASTMOD="41467.65957176" LASTMODSTRING="7/12/2013 3:49 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="We have separate DBs for system and space data" ID="539" COMMENTS="This is for security, mostly: Aaron will be happier if the app doesn't have permission to alter system tables.
Note that this is nearly required in order to deal with Space Evolutions. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41474.68083333" DONEDATESTRING="7/19/2013 4:20 PM" PERCENTDONE="100" STARTDATE="41435.00000000" STARTDATESTRING="6/10/2013" CREATIONDATE="41435.49686343" CREATIONDATESTRING="6/10/2013 11:55 AM" LASTMOD="41474.68083333" LASTMODSTRING="7/19/2013 4:20 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Add ShardId column to OIDNexter" ID="745" COMMENTS="The OIDNexter table already contains the next OID to use, so it is probably the best place to keep the matching ShardId as well. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41471.57846065" DONEDATESTRING="7/16/2013 1:52 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.35427083" CREATIONDATESTRING="7/8/2013 8:30 AM" LASTMOD="41471.57846065" LASTMODSTRING="7/16/2013 1:52 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Split DB references in Play" ID="747" COMMENTS="We should wind up with no "default" database -- instead, references should always be explicit about System vs. UserSpace. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41471.64111111" DONEDATESTRING="7/16/2013 3:23 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.35604167" CREATIONDATESTRING="7/8/2013 8:32 AM" LASTMOD="41471.64111111" LASTMODSTRING="7/16/2013 3:23 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Add a new DB to the config file" ID="748" COMMENTS="For now, still pointing to the same physical database. Hopefully that works. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41471.64008102" DONEDATESTRING="7/16/2013 3:21 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.35626157" CREATIONDATESTRING="7/8/2013 8:33 AM" LASTMOD="41471.64008102" LASTMODSTRING="7/16/2013 3:21 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Change all references to the tables that will be in QuerkiSystem" ID="749" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41471.64108796" DONEDATESTRING="7/16/2013 3:23 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.35682870" CREATIONDATESTRING="7/8/2013 8:33 AM" LASTMOD="41471.64108796" LASTMODSTRING="7/16/2013 3:23 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="User" ID="750" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41471.64105324" DONEDATESTRING="7/16/2013 3:23 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.35702546" CREATIONDATESTRING="7/8/2013 8:34 AM" LASTMOD="41471.64105324" LASTMODSTRING="7/16/2013 3:23 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Spaces" ID="751" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41471.64106481" DONEDATESTRING="7/16/2013 3:23 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.35706019" CREATIONDATESTRING="7/8/2013 8:34 AM" LASTMOD="41471.64106481" LASTMODSTRING="7/16/2013 3:23 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Identity" ID="752" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41471.64106481" DONEDATESTRING="7/16/2013 3:23 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.35709491" CREATIONDATESTRING="7/8/2013 8:34 AM" LASTMOD="41471.64106481" LASTMODSTRING="7/16/2013 3:23 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="*Split* OIDNexter" ID="753" COMMENTS="This is the complex one -- new OIDs should use the OIDNexter table to find out their shard. Calls to OID.next() must specify System vs. UserSpace.
The implication here is that each node is bound to a specific DB -- each has one UserSpace database that it can talk to. Is this appropriate? I *think* it is reasonable from a scalability perspective (and keeps the crosstalk down to a dull roar), but it's one of the things I worry about a little. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41471.57863426" DONEDATESTRING="7/16/2013 1:53 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.35718750" CREATIONDATESTRING="7/8/2013 8:34 AM" LASTMOD="41471.57863426" LASTMODSTRING="7/16/2013 1:53 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
</TASK>
<TASK TITLE="Use OIDNexter.shard to generate new OIDs" ID="792" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41471.64686343" DONEDATESTRING="7/16/2013 3:31 PM" PERCENTDONE="100" STARTDATE="41471.00000000" STARTDATESTRING="7/16/2013" CREATIONDATE="41471.64042824" CREATIONDATESTRING="7/16/2013 3:22 PM" LASTMOD="41471.64686343" LASTMODSTRING="7/16/2013 3:31 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Create QuerkiSystem database" ID="740" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41471.67782407" DONEDATESTRING="7/16/2013 4:16 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.35299769" CREATIONDATESTRING="7/8/2013 8:28 AM" LASTMOD="41471.67782407" LASTMODSTRING="7/16/2013 4:16 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Move system tables to QuerkiSystem DB" ID="741" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41471.67781250" DONEDATESTRING="7/16/2013 4:16 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.35310185" CREATIONDATESTRING="7/8/2013 8:28 AM" LASTMOD="41471.67781250" LASTMODSTRING="7/16/2013 4:16 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="User" ID="742" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41471.67777778" DONEDATESTRING="7/16/2013 4:16 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.35336806" CREATIONDATESTRING="7/8/2013 8:28 AM" LASTMOD="41471.67777778" LASTMODSTRING="7/16/2013 4:16 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Spaces" ID="743" COMMENTS="Note that this is the master "Spaces" index table, not the actual Space data tables. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41471.67778935" DONEDATESTRING="7/16/2013 4:16 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.35350694" CREATIONDATESTRING="7/8/2013 8:29 AM" LASTMOD="41471.67778935" LASTMODSTRING="7/16/2013 4:16 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="*Copy* OIDNexter" ID="744" COMMENTS="Each DB is a Shard, which means that each gets its own OIDNexter.
The QuerkiSystem DB should be Shard 1. Change the main Space database to Shard 2. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41471.67778935" DONEDATESTRING="7/16/2013 4:16 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.35384259" CREATIONDATESTRING="7/8/2013 8:29 AM" LASTMOD="41471.67778935" LASTMODSTRING="7/16/2013 4:16 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Identity" ID="746" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41471.67780093" DONEDATESTRING="7/16/2013 4:16 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.35548611" CREATIONDATESTRING="7/8/2013 8:31 AM" LASTMOD="41471.67780093" LASTMODSTRING="7/16/2013 4:16 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Point config file to the new DB" ID="754" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41471.67784722" DONEDATESTRING="7/16/2013 4:16 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.35962963" CREATIONDATESTRING="7/8/2013 8:37 AM" LASTMOD="41471.67784722" LASTMODSTRING="7/16/2013 4:16 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Release" ID="755" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41474.68076389" DONEDATESTRING="7/19/2013 4:20 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.35987269" CREATIONDATESTRING="7/8/2013 8:38 AM" LASTMOD="41474.68076389" LASTMODSTRING="7/19/2013 4:20 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Code update" ID="757" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41474.63733796" DONEDATESTRING="7/19/2013 3:17 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.36004630" CREATIONDATESTRING="7/8/2013 8:38 AM" LASTMOD="41474.63733796" LASTMODSTRING="7/19/2013 3:17 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Back up the Database!" ID="791" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41474.63736111" DONEDATESTRING="7/19/2013 3:17 PM" PERCENTDONE="100" STARTDATE="41471.00000000" STARTDATESTRING="7/16/2013" CREATIONDATE="41471.60642361" CREATIONDATESTRING="7/16/2013 2:33 PM" LASTMOD="41474.63736111" LASTMODSTRING="7/19/2013 3:17 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Enhance OIDNexter" ID="808" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41474.64219907" DONEDATESTRING="7/19/2013 3:24 PM" PERCENTDONE="100" STARTDATE="41474.00000000" STARTDATESTRING="7/19/2013" CREATIONDATE="41474.54297454" CREATIONDATESTRING="7/19/2013 1:01 PM" LASTMOD="41474.64219907" LASTMODSTRING="7/19/2013 3:24 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="In config, add entries, pointing both to old DB" ID="758" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41474.68070602" DONEDATESTRING="7/19/2013 4:20 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.36034722" CREATIONDATESTRING="7/8/2013 8:38 AM" LASTMOD="41474.68070602" LASTMODSTRING="7/19/2013 4:20 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Check that things work" ID="759" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41474.68071759" DONEDATESTRING="7/19/2013 4:20 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.36081019" CREATIONDATESTRING="7/8/2013 8:39 AM" LASTMOD="41474.68071759" LASTMODSTRING="7/19/2013 4:20 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Create new QuerkiSystem and QuerkiUser DBs" ID="760" COMMENTS="Maybe just create QuerkiSystem, and rename QuerkiUser. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41474.68072917" DONEDATESTRING="7/19/2013 4:20 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.36086806" CREATIONDATESTRING="7/8/2013 8:39 AM" LASTMOD="41474.68072917" LASTMODSTRING="7/19/2013 4:20 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Move tables, as above" ID="761" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41474.68074074" DONEDATESTRING="7/19/2013 4:20 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.36099537" CREATIONDATESTRING="7/8/2013 8:39 AM" LASTMOD="41474.68074074" LASTMODSTRING="7/19/2013 4:20 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Adjust config file" ID="762" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41474.68074074" DONEDATESTRING="7/19/2013 4:20 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.36111111" CREATIONDATESTRING="7/8/2013 8:40 AM" LASTMOD="41474.68074074" LASTMODSTRING="7/19/2013 4:20 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Test" ID="763" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41474.68075231" DONEDATESTRING="7/19/2013 4:20 PM" PERCENTDONE="100" STARTDATE="41463.00000000" STARTDATESTRING="7/8/2013" CREATIONDATE="41463.36121528" CREATIONDATESTRING="7/8/2013 8:40 AM" LASTMOD="41474.68075231" LASTMODSTRING="7/19/2013 4:20 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
</TASK>
</TASK>
<TASK TITLE="Sprint 17: July 22 - August 4" ID="810" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41502.14810185" DONEDATESTRING="8/16/2013 3:33 AM" PERCENTDONE="100" STARTDATE="41478.00000000" STARTDATESTRING="7/23/2013" CREATIONDATE="41478.51428241" CREATIONDATESTRING="7/23/2013 12:20 PM" LASTMOD="41502.14810185" LASTMODSTRING="8/16/2013 3:33 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Replace <select>s with Chosen" ID="599" COMMENTS="Chosen seems the best of the available options here, and is much better than we have now. It has some very nice capabilities -- for example, it deals cleanly with optional single-select.
LATER: Actually, given Chosen's problems with Bootstrap, we might use SelectBoxIt instead -- that explicitly supports Bootstrap, and has some nice features like popover support. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41478.51420139" DONEDATESTRING="7/23/2013 12:20 PM" PERCENTDONE="100" STARTDATE="41438.00000000" STARTDATESTRING="6/13/2013" CREATIONDATE="41438.64164352" CREATIONDATESTRING="6/13/2013 3:23 PM" LASTMOD="41478.51420139" LASTMODSTRING="7/23/2013 12:20 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Improve Property Creation and Instantiation" ID="549" COMMENTS="The whole process is totally fucked up right now, and should be totally rewritten.
The new design looks like this:
++ At the bottom of the Edit Thing window is an Add Property button.
++ When you press Add Property, you get a new pane (maybe a dialog, but better if it is inline, I think).
++ The top of the pane is a select of some sort from the existing Properties, plus a Create New Property button.
++ When you highlight one of the existing Properties, it displays a prompt describing it. (We should probably have a new property info meta-property.)
++ If you press Add with a property selected, it adds that Property, and closes the dialog.
++ If you press Create New Property, it replaces the select with a creation dialog, and a "Use Existing" button. (Which switches back to the original dialog.)
-- The creation dialog walks you through the creation process: it starts with Name, then Type, then Collection (unless that is hardcoded in the Type).
-- Meta-Properties depend on previous choices. For example, if you select Link or Tag Set, it offers you Link Model as a drop-down of the existing Models. (With a default of linking to anything.)
-- Regardless of how you do it, the dialog has an Add Property button that makes your choices take effect. This works through an AJAX call, which returns the new Property's information; that gets inserted into the Edit dialog immediately, and you can continue.
This is all much more hard-codey than I'd prefer, but it seems necessary if we're going to have a really good user experience for Property management... " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41485.75150463" DONEDATESTRING="7/30/2013 6:02 PM" PERCENTDONE="100" STARTDATE="41437.00000000" STARTDATESTRING="6/12/2013" CREATIONDATE="41437.53662037" CREATIONDATESTRING="6/12/2013 12:52 PM" LASTMOD="41485.75150463" LASTMODSTRING="7/30/2013 6:02 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Separate Property documentation fields" ID="776" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41485.75145833" DONEDATESTRING="7/30/2013 6:02 PM" PERCENTDONE="100" STARTDATE="41464.00000000" STARTDATESTRING="7/9/2013" CREATIONDATE="41464.36997685" CREATIONDATESTRING="7/9/2013 8:52 AM" LASTMOD="41485.75145833" LASTMODSTRING="7/30/2013 6:02 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Add Property Summary and Property Details fields" ID="777" COMMENTS="These are the one-line and detailed descriptions of the Property.
We might also want a formal Property Usage field, but this may wind up semi-generated eventually, at least for Methods? " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41482.47660880" DONEDATESTRING="7/27/2013 11:26 AM" PERCENTDONE="100" STARTDATE="41464.00000000" STARTDATESTRING="7/9/2013" CREATIONDATE="41464.37015046" CREATIONDATESTRING="7/9/2013 8:53 AM" LASTMOD="41482.47660880" LASTMODSTRING="7/27/2013 11:26 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Rewrite all Properties in terms of the new fields" ID="778" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41482.53468750" DONEDATESTRING="7/27/2013 12:49 PM" PERCENTDONE="100" STARTDATE="41464.00000000" STARTDATESTRING="7/9/2013" CREATIONDATE="41464.37053241" CREATIONDATESTRING="7/9/2013 8:53 AM" LASTMOD="41482.53468750" LASTMODSTRING="7/27/2013 12:49 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Display Property Summary as hover text for property names in the Editor" ID="779" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41485.37693287" DONEDATESTRING="7/30/2013 9:02 AM" PERCENTDONE="100" STARTDATE="41464.00000000" STARTDATESTRING="7/9/2013" CREATIONDATE="41464.37141204" CREATIONDATESTRING="7/9/2013 8:54 AM" LASTMOD="41485.37693287" LASTMODSTRING="7/30/2013 9:02 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Meta-properties for Create" ID="816" COMMENTS="We should add pathways for these " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41485.75148148" DONEDATESTRING="7/30/2013 6:02 PM" PERCENTDONE="100" STARTDATE="41480.00000000" STARTDATESTRING="7/25/2013" CREATIONDATE="41480.44586806" CREATIONDATESTRING="7/25/2013 10:42 AM" LASTMOD="41485.75148148" LASTMODSTRING="7/30/2013 6:02 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Name" ID="818" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41484.69202546" DONEDATESTRING="7/29/2013 4:36 PM" PERCENTDONE="100" STARTDATE="41480.00000000" STARTDATESTRING="7/25/2013" CREATIONDATE="41480.44619213" CREATIONDATESTRING="7/25/2013 10:42 AM" LASTMOD="41484.69202546" LASTMODSTRING="7/29/2013 4:36 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Type" ID="819" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41484.69204861" DONEDATESTRING="7/29/2013 4:36 PM" PERCENTDONE="100" STARTDATE="41480.00000000" STARTDATESTRING="7/25/2013" CREATIONDATE="41480.44623843" CREATIONDATESTRING="7/25/2013 10:42 AM" LASTMOD="41484.69204861" LASTMODSTRING="7/29/2013 4:36 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Collection" ID="820" COMMENTS="Which may be forced by the Type " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41484.69206019" DONEDATESTRING="7/29/2013 4:36 PM" PERCENTDONE="100" STARTDATE="41480.00000000" STARTDATESTRING="7/25/2013" CREATIONDATE="41480.44629630" CREATIONDATESTRING="7/25/2013 10:42 AM" LASTMOD="41484.69206019" LASTMODSTRING="7/29/2013 4:36 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Summary and Details" ID="822" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41484.69207176" DONEDATESTRING="7/29/2013 4:36 PM" PERCENTDONE="100" STARTDATE="41480.00000000" STARTDATESTRING="7/25/2013" CREATIONDATE="41480.44726852" CREATIONDATESTRING="7/25/2013 10:44 AM" LASTMOD="41484.69207176" LASTMODSTRING="7/29/2013 4:36 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Link Meta-properties" ID="827" COMMENTS="If the Type is Link or Tag, show these " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41484.71750000" DONEDATESTRING="7/29/2013 5:13 PM" PERCENTDONE="100" STARTDATE="41480.00000000" STARTDATESTRING="7/25/2013" CREATIONDATE="41480.44805556" CREATIONDATESTRING="7/25/2013 10:45 AM" LASTMOD="41484.71750000" LASTMODSTRING="7/29/2013 5:13 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Link Model" ID="828" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41484.71750000" DONEDATESTRING="7/29/2013 5:13 PM" PERCENTDONE="100" STARTDATE="41480.00000000" STARTDATESTRING="7/25/2013" CREATIONDATE="41480.44829861" CREATIONDATESTRING="7/25/2013 10:45 AM" LASTMOD="41484.71750000" LASTMODSTRING="7/29/2013 5:13 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
</TASK>
<TASK TITLE="Differentiate the Trash and Revert buttons" ID="807" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41482.47679398" DONEDATESTRING="7/27/2013 11:26 AM" PERCENTDONE="100" STARTDATE="41473.00000000" STARTDATESTRING="7/18/2013" CREATIONDATE="41473.71840278" CREATIONDATESTRING="7/18/2013 5:14 PM" LASTMOD="41482.47679398" LASTMODSTRING="7/27/2013 11:26 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Make Trash not require a page reload" ID="806" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41485.58017361" DONEDATESTRING="7/30/2013 1:55 PM" PERCENTDONE="100" STARTDATE="41473.00000000" STARTDATESTRING="7/18/2013" CREATIONDATE="41473.71813657" CREATIONDATESTRING="7/18/2013 5:14 PM" LASTMOD="41485.58017361" LASTMODSTRING="7/30/2013 1:55 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="UI improvements for Tag Set Property creation" ID="538" COMMENTS="When I say that a Property is a Tag Set, that should *immediately* force the Collection to QSet, and disable it.
This is *not* easy to implement -- yay for well-separated concerns, but I need to figure out how to do it.
That said, it might all be obviated by the smarter and more knowledgeable Add Property dialog that I've been meaning to write. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41485.74979167" DONEDATESTRING="7/30/2013 5:59 PM" PERCENTDONE="100" STARTDATE="41432.00000000" STARTDATESTRING="6/7/2013" CREATIONDATE="41432.75773148" CREATIONDATESTRING="6/7/2013 6:11 PM" LASTMOD="41485.74979167" LASTMODSTRING="7/30/2013 5:59 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
</TASK>
<TASK TITLE="Sprint 18: August 5 - 18" ID="839" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41505.38622685" DONEDATESTRING="8/19/2013 9:16 AM" PERCENTDONE="100" STARTDATE="41494.00000000" STARTDATESTRING="8/8/2013" CREATIONDATE="41494.73576389" CREATIONDATESTRING="8/8/2013 5:39 PM" LASTMOD="41505.38622685" LASTMODSTRING="8/19/2013 9:16 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="As the Architect, I can define Space Evolutions" ID="738" COMMENTS="We're getting to the point where this is essential. We need to be able to evolve the Spaces if we're going to implement some of these features. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41493.36339120" DONEDATESTRING="8/7/2013 8:43 AM" PERCENTDONE="100" STARTDATE="41460.00000000" STARTDATESTRING="7/5/2013" CREATIONDATE="41460.70766204" CREATIONDATESTRING="7/5/2013 4:59 PM" LASTMOD="41493.36339120" LASTMODSTRING="8/7/2013 8:43 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="LARP Schema" ID="729" COMMENTS="By NELCO, I need to be set up to demo Querki for LARP use, and be able to begin inviting a few brace souls to use it. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Use Case" DONEDATE="41495.65983796" DONEDATESTRING="8/9/2013 3:50 PM" PERCENTDONE="100" DUEDATE="41495.00000000" DUEDATESTRING="8/9/2013" STARTDATE="41458.00000000" STARTDATESTRING="7/3/2013" CREATIONDATE="41458.38728009" CREATIONDATESTRING="7/3/2013 9:17 AM" LASTMOD="41495.65983796" LASTMODSTRING="8/9/2013 3:50 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can reverse a List" ID="842" COMMENTS="The quick and easy way to deal with descending order _sort -- just add _reverse. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41495.65975694" DONEDATESTRING="8/9/2013 3:50 PM" PERCENTDONE="100" STARTDATE="41495.00000000" STARTDATESTRING="8/9/2013" CREATIONDATE="41495.65056713" CREATIONDATESTRING="8/9/2013 3:36 PM" LASTMOD="41495.65975694" LASTMODSTRING="8/9/2013 3:50 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Enable descending sort order" ID="845" COMMENTS="Add a "_desc" keyword. If I say, for example:
[[My Things -> _sort(_modTime, _desc, Display Name)]]
The _desc applies to the _modTime, and means that we are sorting *down* by modification time, and then *up* by Display Name. (Which really is what I usually want.)
Alternately, if I can figure out how it works, this might be:
[[My Things -> _sort(_desc(_modTime), Display Name)]]
Note that _desc is *not* the same thing as _not! Conceptually, _desc is producing a pseudo-Type that has the reverse comp() order from the real Type. That's weird, but might be possible, and I think it's clearer. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41495.70171296" DONEDATESTRING="8/9/2013 4:50 PM" PERCENTDONE="100" STARTDATE="41495.00000000" STARTDATESTRING="8/9/2013" CREATIONDATE="41495.66267361" CREATIONDATESTRING="8/9/2013 3:54 PM" LASTMOD="41495.70171296" LASTMODSTRING="8/9/2013 4:50 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can log into Querki securely" ID="788" COMMENTS="The login page is currently http; it needs to be https. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41501.77671296" DONEDATESTRING="8/15/2013 6:38 PM" PERCENTDONE="100" STARTDATE="41470.00000000" STARTDATESTRING="7/15/2013" CREATIONDATE="41470.35466435" CREATIONDATESTRING="7/15/2013 8:30 AM" LASTMOD="41501.77671296" LASTMODSTRING="8/15/2013 6:38 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can not link to a Thing whose name begins with underscore" ID="852" COMMENTS="If I have a method named _Foo, the Markdown for that becomes [_Foo](_Foo) -- and Actuarius then tries to turn everything between the underscores into italics instead of a link.
Can we fix this simply by rearranging the order of the clauses? " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41502.14805556" DONEDATESTRING="8/16/2013 3:33 AM" PERCENTDONE="100" STARTDATE="41498.00000000" STARTDATESTRING="8/12/2013" CREATIONDATE="41498.77567130" CREATIONDATESTRING="8/12/2013 6:36 PM" LASTMOD="41502.14805556" LASTMODSTRING="8/16/2013 3:33 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="All Things should have Create and Modified timestamps" ID="618" COMMENTS="I've been wanting this forever, and not having it is starting to turn into a real problem. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41494.73553241" DONEDATESTRING="8/8/2013 5:39 PM" PERCENTDONE="100" STARTDATE="41443.00000000" STARTDATESTRING="6/18/2013" CREATIONDATE="41443.34944444" CREATIONDATESTRING="6/18/2013 8:23 AM" LASTMOD="41494.73553241" LASTMODSTRING="8/8/2013 5:39 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Implement Space Evolution" ID="620" COMMENTS="We need to be able to update the existing Spaces. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41493.36341435" DONEDATESTRING="8/7/2013 8:43 AM" PERCENTDONE="100" STARTDATE="41443.00000000" STARTDATESTRING="6/18/2013" CREATIONDATE="41443.34995370" CREATIONDATESTRING="6/18/2013 8:23 AM" LASTMOD="41493.36341435" LASTMODSTRING="8/7/2013 8:43 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add the columns to SQL" ID="619" COMMENTS="Two new datetime columns, created and modified. These get set automatically by the system. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41493.36342593" DONEDATESTRING="8/7/2013 8:43 AM" PERCENTDONE="100" STARTDATE="41443.00000000" STARTDATESTRING="6/18/2013" CREATIONDATE="41443.34980324" CREATIONDATESTRING="6/18/2013 8:23 AM" LASTMOD="41493.36342593" LASTMODSTRING="8/7/2013 8:43 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Create a DateTime Module" ID="837" COMMENTS="This is likely to grow big enough to be worth a Module. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41494.73530093" DONEDATESTRING="8/8/2013 5:38 PM" PERCENTDONE="100" STARTDATE="41493.00000000" STARTDATESTRING="8/7/2013" CREATIONDATE="41493.44223380" CREATIONDATESTRING="8/7/2013 10:36 AM" LASTMOD="41494.73530093" LASTMODSTRING="8/8/2013 5:38 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add a DateTime Type" ID="621" COMMENTS="This is the Querki representation of DateTime. Doesn't have to be fancy to begin with.
Note that ordinary DateTimes are read and written to text, like everything else. (Probably using seconds-since-epoch?) " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41494.73532407" DONEDATESTRING="8/8/2013 5:38 PM" PERCENTDONE="100" STARTDATE="41443.00000000" STARTDATESTRING="6/18/2013" CREATIONDATE="41443.35070602" CREATIONDATESTRING="6/18/2013 8:25 AM" LASTMOD="41494.73532407" LASTMODSTRING="8/8/2013 5:38 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Expose _createTime and _modifyTime properties" ID="622" COMMENTS="These are available on all Things, and give the timestamps. They are properties, set when we read the Thing in. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41494.73534722" DONEDATESTRING="8/8/2013 5:38 PM" PERCENTDONE="100" STARTDATE="41443.00000000" STARTDATESTRING="6/18/2013" CREATIONDATE="41443.35192130" CREATIONDATESTRING="6/18/2013 8:26 AM" LASTMOD="41494.73534722" LASTMODSTRING="8/8/2013 5:38 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Enable sorting on _modTime" ID="838" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41494.73552083" DONEDATESTRING="8/8/2013 5:39 PM" PERCENTDONE="100" STARTDATE="41494.00000000" STARTDATESTRING="8/8/2013" CREATIONDATE="41494.73537037" CREATIONDATESTRING="8/8/2013 5:38 PM" LASTMOD="41494.73552083" LASTMODSTRING="8/8/2013 5:39 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
</TASK>
<TASK TITLE="Sprint 19: August 19 - Sept 1" ID="881" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41529.43533565" DONEDATESTRING="9/12/2013 10:26 AM" PERCENTDONE="100" STARTDATE="41505.00000000" STARTDATESTRING="8/19/2013" CREATIONDATE="41505.38630787" CREATIONDATESTRING="8/19/2013 9:16 AM" LASTMOD="41529.43533565" LASTMODSTRING="9/12/2013 10:26 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Basic documentation" ID="846" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41505.70157407" DONEDATESTRING="8/19/2013 4:50 PM" PERCENTDONE="100" STARTDATE="41498.00000000" STARTDATESTRING="8/12/2013" CREATIONDATE="41498.68561343" CREATIONDATESTRING="8/12/2013 4:27 PM" LASTMOD="41505.70157407" LASTMODSTRING="8/19/2013 4:50 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="There exists a Documentation Space" ID="847" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41505.70141204" DONEDATESTRING="8/19/2013 4:50 PM" PERCENTDONE="100" STARTDATE="41498.00000000" STARTDATESTRING="8/12/2013" CREATIONDATE="41498.68571759" CREATIONDATESTRING="8/12/2013 4:27 PM" LASTMOD="41505.70141204" LASTMODSTRING="8/19/2013 4:50 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="We can distinguish Properties and Methods at the QL level" ID="850" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41502.14747685" DONEDATESTRING="8/16/2013 3:32 AM" PERCENTDONE="100" STARTDATE="41498.00000000" STARTDATESTRING="8/12/2013" CREATIONDATE="41498.68780093" CREATIONDATESTRING="8/12/2013 4:30 PM" LASTMOD="41502.14747685" LASTMODSTRING="8/16/2013 3:32 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can create a "documentation" wrapper" ID="851" COMMENTS="In theory, we want to be able to feed the list of Properties into something, and have it display properly.
Ideally, we'd like to be able to take a property name as a URL parameter, and display the documentation for that property.
Initially, would probably be good enough to display it all as a single page. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41505.70140046" DONEDATESTRING="8/19/2013 4:50 PM" PERCENTDONE="100" STARTDATE="41498.00000000" STARTDATESTRING="8/12/2013" CREATIONDATE="41498.68825231" CREATIONDATESTRING="8/12/2013 4:31 PM" LASTMOD="41505.70140046" LASTMODSTRING="8/19/2013 4:50 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Documentation for Properties" ID="849" COMMENTS="Should be generated from the Properties themselves.
Should *not* include Methods! " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41505.60942130" DONEDATESTRING="8/19/2013 2:37 PM" PERCENTDONE="100" STARTDATE="41498.00000000" STARTDATESTRING="8/12/2013" CREATIONDATE="41498.68707176" CREATIONDATESTRING="8/12/2013 4:29 PM" LASTMOD="41505.60942130" LASTMODSTRING="8/19/2013 2:37 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Documentation for Methods" ID="879" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41505.60942130" DONEDATESTRING="8/19/2013 2:37 PM" PERCENTDONE="100" STARTDATE="41502.00000000" STARTDATESTRING="8/16/2013" CREATIONDATE="41502.14767361" CREATIONDATESTRING="8/16/2013 3:32 AM" LASTMOD="41505.60942130" LASTMODSTRING="8/19/2013 2:37 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="I can "View Source" for the current Thing" ID="781" COMMENTS="This is probably a menu pick?
This displays the full property/value list, in *raw* form. Text fields are displayed as _code. There is probably an implication here that _code should be able to work on any property value.
" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41505.76416667" DONEDATESTRING="8/19/2013 6:20 PM" PERCENTDONE="100" STARTDATE="41464.00000000" STARTDATESTRING="7/9/2013" CREATIONDATE="41464.52746528" CREATIONDATESTRING="7/9/2013 12:39 PM" LASTMOD="41505.76416667" LASTMODSTRING="8/19/2013 6:20 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="View Source requires login" ID="890" COMMENTS="The view URL shouldn't be insisting on login, although we *should* be enforcing Can Read... " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41507.33344907" DONEDATESTRING="8/21/2013 8:00 AM" PERCENTDONE="100" STARTDATE="41506.00000000" STARTDATESTRING="8/20/2013" CREATIONDATE="41506.74472222" CREATIONDATESTRING="8/20/2013 5:52 PM" LASTMOD="41507.33344907" LASTMODSTRING="8/21/2013 8:00 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can quickly see the difference between normal and meta-Properties" ID="883" COMMENTS="Darker pointed out that the Property Reference is a bit confusing, because the meta-Properties are mixed in with the ordinary ones. It's a good point, and suggests that organizing the Properties based on Applies To would be helpful.
The problem is that there is no way to test Applies To in an _if yet. We need two new features to make this work, so that I can say something like:
_if(_equals(Applies To, Kind.Property)) " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41507.33400463" DONEDATESTRING="8/21/2013 8:00 AM" PERCENTDONE="100" STARTDATE="41505.00000000" STARTDATESTRING="8/19/2013" CREATIONDATE="41505.84318287" CREATIONDATESTRING="8/19/2013 8:14 PM" LASTMOD="41507.33400463" LASTMODSTRING="8/21/2013 8:00 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can refer to the Kinds in a useful way" ID="884" COMMENTS="They should be visible as named Things or maybe Properties. I should be able to say something like "Kind.Property" to get that integer constant.
Less satisfying but functional would be to have separate Things representing each value.
It could possibly be done by adding numeric literals, but that's not actually a good answer for this.
After thinking about it, the easiest answer is probably _kind(Property), using the parameter as a name literal. That should be almost trivial to implement, and is reasonably sensible. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41506.62582176" DONEDATESTRING="8/20/2013 3:01 PM" PERCENTDONE="100" STARTDATE="41505.00000000" STARTDATESTRING="8/19/2013" CREATIONDATE="41505.84418981" CREATIONDATESTRING="8/19/2013 8:15 PM" LASTMOD="41506.62582176" LASTMODSTRING="8/20/2013 3:01 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Implement _equals" ID="885" COMMENTS="In a perfect world we might have == as syntax, but it's honestly unusual enough to not be worth it immediately. _equals should be dead-easy to implement. (But should be based on PType.matches()!)
Ideally, this should do pairwise matching of the two values. _equals only works if they have the same number of elements, and each element matches. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41506.62583333" DONEDATESTRING="8/20/2013 3:01 PM" PERCENTDONE="100" STARTDATE="41505.00000000" STARTDATESTRING="8/19/2013" CREATIONDATE="41505.84612269" CREATIONDATESTRING="8/19/2013 8:18 PM" LASTMOD="41506.62583333" LASTMODSTRING="8/20/2013 3:01 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Fix the Property Reference" ID="886" COMMENTS="Separate the sections based on Applies To. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41507.33398148" DONEDATESTRING="8/21/2013 8:00 AM" PERCENTDONE="100" STARTDATE="41505.00000000" STARTDATESTRING="8/19/2013" CREATIONDATE="41505.84730324" CREATIONDATESTRING="8/19/2013 8:20 PM" LASTMOD="41507.33398148" LASTMODSTRING="8/21/2013 8:00 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Parse the QURL type" ID="903" COMMENTS="QURL is what we're using in the External Link type, because java.net.URL really can't cope with simple relative URLs. But it's too raw at the moment. We need to add some simple parsing, to make sure that only URL-legal characters are contained in it. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41507.66201389" DONEDATESTRING="8/21/2013 3:53 PM" PERCENTDONE="100" STARTDATE="41507.00000000" STARTDATESTRING="8/21/2013" CREATIONDATE="41507.64622685" CREATIONDATESTRING="8/21/2013 3:30 PM" LASTMOD="41507.66201389" LASTMODSTRING="8/21/2013 3:53 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="When I reify a page from a Tag with a Link Model, it respects that Model" ID="892" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41509.51077546" DONEDATESTRING="8/23/2013 12:15 PM" PERCENTDONE="100" STARTDATE="41506.00000000" STARTDATESTRING="8/20/2013" CREATIONDATE="41506.78406250" CREATIONDATESTRING="8/20/2013 6:49 PM" LASTMOD="41509.51077546" LASTMODSTRING="8/23/2013 12:15 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can Search for simple exact strings" ID="925" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41513.67380787" DONEDATESTRING="8/27/2013 4:10 PM" PERCENTDONE="100" STARTDATE="41513.00000000" STARTDATESTRING="8/27/2013" CREATIONDATE="41513.67359954" CREATIONDATESTRING="8/27/2013 4:09 PM" LASTMOD="41513.67380787" LASTMODSTRING="8/27/2013 4:10 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can Delete a Thing" ID="840" COMMENTS="I've been putting this off, since I'm uncomfortable having Delete before History, but I think it's necessary for usability. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41514.53123843" DONEDATESTRING="8/28/2013 12:44 PM" PERCENTDONE="100" STARTDATE="41495.00000000" STARTDATESTRING="8/9/2013" CREATIONDATE="41495.50846065" CREATIONDATESTRING="8/9/2013 12:12 PM" LASTMOD="41514.53123843" LASTMODSTRING="8/28/2013 12:44 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Add "deleted" flag to the Space schema" ID="912" COMMENTS="Note that this flag is a Space Evolution.
We probably aren't even going to worry about cleaning up deleted Things -- it is in many ways easier to just leave them. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41513.50288194" DONEDATESTRING="8/27/2013 12:04 PM" PERCENTDONE="100" STARTDATE="41512.00000000" STARTDATESTRING="8/26/2013" CREATIONDATE="41512.63744213" CREATIONDATESTRING="8/26/2013 3:17 PM" LASTMOD="41513.50288194" LASTMODSTRING="8/27/2013 12:04 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add menu pick for Delete" ID="921" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41513.68768519" DONEDATESTRING="8/27/2013 4:30 PM" PERCENTDONE="100" STARTDATE="41513.00000000" STARTDATESTRING="8/27/2013" CREATIONDATE="41513.50204861" CREATIONDATESTRING="8/27/2013 12:02 PM" LASTMOD="41513.68768519" LASTMODSTRING="8/27/2013 4:30 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Confirm request to Delete" ID="922" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41513.68773148" DONEDATESTRING="8/27/2013 4:30 PM" PERCENTDONE="100" STARTDATE="41513.00000000" STARTDATESTRING="8/27/2013" CREATIONDATE="41513.50211806" CREATIONDATESTRING="8/27/2013 12:03 PM" LASTMOD="41513.68773148" LASTMODSTRING="8/27/2013 4:30 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add deleteThing to Application" ID="914" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41513.68774306" DONEDATESTRING="8/27/2013 4:30 PM" PERCENTDONE="100" STARTDATE="41512.00000000" STARTDATESTRING="8/26/2013" CREATIONDATE="41512.63785880" CREATIONDATESTRING="8/26/2013 3:18 PM" LASTMOD="41513.68774306" LASTMODSTRING="8/27/2013 4:30 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add deleteThing message to Space" ID="915" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41514.53120370" DONEDATESTRING="8/28/2013 12:44 PM" PERCENTDONE="100" STARTDATE="41512.00000000" STARTDATESTRING="8/26/2013" CREATIONDATE="41512.63802083" CREATIONDATESTRING="8/26/2013 3:18 PM" LASTMOD="41514.53120370" LASTMODSTRING="8/28/2013 12:44 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Actually Delete" ID="923" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41514.53121528" DONEDATESTRING="8/28/2013 12:44 PM" PERCENTDONE="100" STARTDATE="41513.00000000" STARTDATESTRING="8/27/2013" CREATIONDATE="41513.50223380" CREATIONDATESTRING="8/27/2013 12:03 PM" LASTMOD="41514.53121528" LASTMODSTRING="8/28/2013 12:44 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Don't load a deleted Thing" ID="913" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41514.53122685" DONEDATESTRING="8/28/2013 12:44 PM" PERCENTDONE="100" STARTDATE="41512.00000000" STARTDATESTRING="8/26/2013" CREATIONDATE="41512.63761574" CREATIONDATESTRING="8/26/2013 3:18 PM" LASTMOD="41514.53122685" LASTMODSTRING="8/28/2013 12:44 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Rename Display Text?" ID="911" COMMENTS="Horrifying prospect, but Darker may be right that the name is a little confusing, especially next to Display Name -- something more straightforward like "Looks Like" or "Page View" might be better.
This would be unfortunately large, and likely to break a lot, but at least much of it would be a grep.
It's tempting to build the very beginning of Search, in order to be able to recover from the error this will introduce. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41515.64258102" DONEDATESTRING="8/29/2013 3:25 PM" PERCENTDONE="100" STARTDATE="41511.00000000" STARTDATESTRING="8/25/2013" CREATIONDATE="41511.49107639" CREATIONDATESTRING="8/25/2013 11:47 AM" LASTMOD="41515.64258102" LASTMODSTRING="8/29/2013 3:25 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="Sprint 20: Sept 2 - Oct 21" ID="955" COMMENTS="Lost track of the sprints while the wedding planning was eating 3/4 of my brain. So this wound up becoming a big bucket. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41568.45754630" DONEDATESTRING="10/21/2013 10:58 AM" PERCENTDONE="100" STARTDATE="41529.00000000" STARTDATESTRING="9/12/2013" CREATIONDATE="41529.43541667" CREATIONDATESTRING="9/12/2013 10:27 AM" LASTMOD="41568.45754630" LASTMODSTRING="10/21/2013 10:58 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Clean up QLContext" ID="737" COMMENTS="This is currently a mess. In particular, the way that we are creating variant derived QLContexts from a ContextBase is *horrible*, and it is leading to all of these fragile invocations of the QLContext constructor in many different places.
Rethink this from scratch. The most important thing is that we should *never* explicitly create a new QLContext outside of Context.scala itself. We should use parenting much more strictly, and make it safer to always inherit, eg, the propOpt.
I suspect that there is a composition-based solution we should be thinking about here. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41529.42324074" DONEDATESTRING="9/12/2013 10:09 AM" PERCENTDONE="100" STARTDATE="41460.00000000" STARTDATESTRING="7/5/2013" CREATIONDATE="41460.69916667" CREATIONDATESTRING="7/5/2013 4:46 PM" LASTMOD="41529.42324074" LASTMODSTRING="9/12/2013 10:09 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can invite people to use Querki" ID="977" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41568.45753472" DONEDATESTRING="10/21/2013 10:58 AM" PERCENTDONE="100" STARTDATE="41568.00000000" STARTDATESTRING="10/21/2013" CREATIONDATE="41568.45667824" CREATIONDATESTRING="10/21/2013 10:57 AM" LASTMOD="41568.45753472" LASTMODSTRING="10/21/2013 10:58 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Rename package identity to querki.identity" ID="880" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41507.33842593" DONEDATESTRING="8/21/2013 8:07 AM" PERCENTDONE="100" STARTDATE="41502.00000000" STARTDATESTRING="8/16/2013" CREATIONDATE="41502.14965278" CREATIONDATESTRING="8/16/2013 3:35 AM" LASTMOD="41507.33842593" LASTMODSTRING="8/21/2013 8:07 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Hand-encode the initial passwords" ID="894" COMMENTS="Can probably do this using the Scala Interpreter? " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41550.88143519" DONEDATESTRING="10/3/2013 9:09 PM" PERCENTDONE="100" STARTDATE="41507.00000000" STARTDATESTRING="8/21/2013" CREATIONDATE="41507.34322917" CREATIONDATESTRING="8/21/2013 8:14 AM" LASTMOD="41550.88143519" LASTMODSTRING="10/3/2013 9:09 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Make Identity.email address indexed" ID="857" COMMENTS="Email address is going to be a major key, often searched on, so it needs to be indexed. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41519.62384259" DONEDATESTRING="9/2/2013 2:58 PM" PERCENTDONE="100" STARTDATE="41501.00000000" STARTDATESTRING="8/15/2013" CREATIONDATE="41501.77890046" CREATIONDATESTRING="8/15/2013 6:41 PM" LASTMOD="41519.62384259" LASTMODSTRING="9/2/2013 2:58 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Create the Querki Login Identity" ID="855" COMMENTS="This is a new class of Identity, that is a conventional login.
I log in with an email address and password.
Can we simply use the existing "handle" field for password? Should we? Or should we add an "authentication" column for things like this? (Probably.) " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41519.62387731" DONEDATESTRING="9/2/2013 2:58 PM" PERCENTDONE="100" STARTDATE="41501.00000000" STARTDATESTRING="8/15/2013" CREATIONDATE="41501.77784722" CREATIONDATESTRING="8/15/2013 6:40 PM" LASTMOD="41519.62387731" LASTMODSTRING="9/2/2013 2:58 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Migrate existing logins from Config to Identity" ID="858" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41519.62740741" DONEDATESTRING="9/2/2013 3:03 PM" PERCENTDONE="100" STARTDATE="41501.00000000" STARTDATESTRING="8/15/2013" CREATIONDATE="41501.77945602" CREATIONDATESTRING="8/15/2013 6:42 PM" LASTMOD="41519.62740741" LASTMODSTRING="9/2/2013 3:03 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Remove existing logins from Config" ID="859" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41519.62835648" DONEDATESTRING="9/2/2013 3:04 PM" PERCENTDONE="100" STARTDATE="41501.00000000" STARTDATESTRING="8/15/2013" CREATIONDATE="41501.77960648" CREATIONDATESTRING="8/15/2013 6:42 PM" LASTMOD="41519.62835648" LASTMODSTRING="9/2/2013 3:04 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can log in by Querki username" ID="861" COMMENTS="We've refocused towards email address for now, but if we're going to have usernames as a perk, then we should be able to log in with them.
Note that this is Identity.name, iff the IdentityKind is QuerkiLogin and name is non-empty. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41519.62841435" DONEDATESTRING="9/2/2013 3:04 PM" PERCENTDONE="100" STARTDATE="41501.00000000" STARTDATESTRING="8/15/2013" CREATIONDATE="41501.78145833" CREATIONDATESTRING="8/15/2013 6:45 PM" LASTMOD="41519.62841435" LASTMODSTRING="9/2/2013 3:04 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Implement User Levels" ID="566" COMMENTS="Before we bring in other people, we need a concept of privileged users. At the least, we should have these levels:
-- Pending user
-- Free user
-- Paid user
-- Permanent user
-- Admin
-- Superadmin
Note that these are system-wide concepts, not Space-specific, and relate to someone's privileges within Querki.
Of the three initial users, "system" should be superadmin, "jducoeur" should be admin, and "mark" should be a permanent user.
This is a new column in the User table. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41519.74518519" DONEDATESTRING="9/2/2013 5:53 PM" PERCENTDONE="100" STARTDATE="41438.00000000" STARTDATESTRING="6/13/2013" CREATIONDATE="41438.37656250" CREATIONDATESTRING="6/13/2013 9:02 AM" LASTMOD="41519.74518519" LASTMODSTRING="9/2/2013 5:53 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add Joined Date to the User table" ID="572" COMMENTS="I suspect that there will be social reasons to want this, and maybe practical ones as well. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41550.88194444" DONEDATESTRING="10/3/2013 9:10 PM" PERCENTDONE="100" STARTDATE="41438.00000000" STARTDATESTRING="6/13/2013" CREATIONDATE="41438.39001157" CREATIONDATESTRING="6/13/2013 9:21 AM" LASTMOD="41550.88194444" LASTMODSTRING="10/3/2013 9:10 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Release" ID="928" COMMENTS="Deal with all of the 5.sql changes on the main site.
This includes setting up the 3 main login identities! " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41520.56542824" DONEDATESTRING="9/3/2013 1:34 PM" PERCENTDONE="100" STARTDATE="41516.00000000" STARTDATESTRING="8/30/2013" CREATIONDATE="41516.60119213" CREATIONDATESTRING="8/30/2013 2:25 PM" LASTMOD="41520.56542824" LASTMODSTRING="9/3/2013 1:34 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Create the Sharing and Security window" ID="936" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41530.56069444" DONEDATESTRING="9/13/2013 1:27 PM" PERCENTDONE="100" STARTDATE="41522.00000000" STARTDATESTRING="9/5/2013" CREATIONDATE="41522.64829861" CREATIONDATESTRING="9/5/2013 3:33 PM" LASTMOD="41530.56069444" LASTMODSTRING="9/13/2013 1:27 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can create an Invitation" ID="864" COMMENTS="An Invitation has distinct semantics. It asks for who to invite, and can only be sent once to any given person. All links are automatically converted to Invite Links, and when received it sends the recipient to the login/create account workflow.
The who to invite probably need to be just a list of email addresses. Much though I would like to have full names, it's unrealistic to ask the inviters to put that in. We'll have to add the name via the actual Identity created when the person accepts.
The new Invitation mechanism is similar but not identical to the old. Instead of creating and binding to an Identity upfront, let's instead just include the PersonID and some salt, and sign it using play.api.libs.Crypto. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41550.88071759" DONEDATESTRING="10/3/2013 9:08 PM" PERCENTDONE="100" STARTDATE="41501.00000000" STARTDATESTRING="8/15/2013" CREATIONDATE="41501.78921296" CREATIONDATESTRING="8/15/2013 6:56 PM" LASTMOD="41550.88071759" LASTMODSTRING="10/3/2013 9:08 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can see all the Spaces I am a Member of" ID="964" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41551.41847222" DONEDATESTRING="10/4/2013 10:02 AM" PERCENTDONE="100" STARTDATE="41536.00000000" STARTDATESTRING="9/19/2013" CREATIONDATE="41536.45250000" CREATIONDATESTRING="9/19/2013 10:51 AM" LASTMOD="41551.41847222" LASTMODSTRING="10/4/2013 10:02 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="As a full user, I can choose a Querki handle" ID="930" COMMENTS="For now, we will allow this for all full users; eventually, this will only be for paid users.
The handle must be unique across the Querki logins. This implies that we need an index on Identity.name. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41571.38296296" DONEDATESTRING="10/24/2013 9:11 AM" PERCENTDONE="100" STARTDATE="41519.00000000" STARTDATESTRING="9/2/2013" CREATIONDATE="41519.61773148" CREATIONDATESTRING="9/2/2013 2:49 PM" LASTMOD="41571.38296296" LASTMODSTRING="10/24/2013 9:11 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="A Space should be owned by an *Identity*, not a *User*" ID="399" COMMENTS="Duh -- I should have thought of this earlier. It's inappropriate to have ownership be directly by the User, since we are often going to want to display the Space's Owner.
" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41572.39276620" DONEDATESTRING="10/25/2013 9:25 AM" PERCENTDONE="100" STARTDATE="41418.00000000" STARTDATESTRING="5/24/2013" CREATIONDATE="41418.70986111" CREATIONDATESTRING="5/24/2013 5:02 PM" LASTMOD="41572.39276620" LASTMODSTRING="10/25/2013 9:25 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="All Users have at least one Identity" ID="400" COMMENTS="Including the primordial System Users. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41572.39240741" DONEDATESTRING="10/25/2013 9:25 AM" PERCENTDONE="100" STARTDATE="41418.00000000" STARTDATESTRING="5/24/2013" CREATIONDATE="41418.71047454" CREATIONDATESTRING="5/24/2013 5:03 PM" LASTMOD="41572.39240741" LASTMODSTRING="10/25/2013 9:25 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="All Identities have a public-facing name" ID="462" COMMENTS="Because, for example, I should be putting a name on the outgoing invitation emails. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41572.39246528" DONEDATESTRING="10/25/2013 9:25 AM" PERCENTDONE="100" STARTDATE="41429.00000000" STARTDATESTRING="6/4/2013" CREATIONDATE="41429.56303241" CREATIONDATESTRING="6/4/2013 1:30 PM" LASTMOD="41572.39246528" LASTMODSTRING="10/25/2013 9:25 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Rebuild the Space Table to repoint Spaces to Identities" ID="401" COMMENTS="Likely to be a very ugly SQL query. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41572.39275463" DONEDATESTRING="10/25/2013 9:25 AM" PERCENTDONE="100" STARTDATE="41418.00000000" STARTDATESTRING="5/24/2013" CREATIONDATE="41418.71069444" CREATIONDATESTRING="5/24/2013 5:03 PM" LASTMOD="41572.39275463" LASTMODSTRING="10/25/2013 9:25 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="I can respond to an Invitation" ID="866" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41572.39424769" DONEDATESTRING="10/25/2013 9:27 AM" PERCENTDONE="100" STARTDATE="41501.00000000" STARTDATESTRING="8/15/2013" CREATIONDATE="41501.79358796" CREATIONDATESTRING="8/15/2013 7:02 PM" LASTMOD="41572.39424769" LASTMODSTRING="10/25/2013 9:27 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="If I am not yet a User, I can create a pending account" ID="869" COMMENTS="A pending account is simply a standard User, but without the ability to *do* anything outside of the Spaces I have been invited to. In particular, I can not yet create my own Spaces until I am approved.
This means we need a new flag in the User table.
We also will need to use Joined Date for *when* the account was created, so we have a good queue. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41550.87991898" DONEDATESTRING="10/3/2013 9:07 PM" PERCENTDONE="100" STARTDATE="41501.00000000" STARTDATESTRING="8/15/2013" CREATIONDATE="41501.79604167" CREATIONDATESTRING="8/15/2013 7:06 PM" LASTMOD="41550.87991898" LASTMODSTRING="10/3/2013 9:07 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="If I am not logged in to Querki but *am* a member, I can log in and continue" ID="965" COMMENTS="At which point, we go to "I can join this Invitation to my account". " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41550.88006944" DONEDATESTRING="10/3/2013 9:07 PM" PERCENTDONE="100" STARTDATE="41536.00000000" STARTDATESTRING="9/19/2013" CREATIONDATE="41536.48273148" CREATIONDATESTRING="9/19/2013 11:35 AM" LASTMOD="41550.88006944" LASTMODSTRING="10/3/2013 9:07 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="If I am already a logged-in member of this Space, I just go to the Space" ID="966" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41550.88010417" DONEDATESTRING="10/3/2013 9:07 PM" PERCENTDONE="100" STARTDATE="41536.00000000" STARTDATESTRING="9/19/2013" CREATIONDATE="41536.48435185" CREATIONDATESTRING="9/19/2013 11:37 AM" LASTMOD="41550.88010417" LASTMODSTRING="10/3/2013 9:07 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="When I accept an invitation to a Space, my Display Name updates to match me" ID="961" COMMENTS="That is, on the Person Thing.
Eventually, I should be able to choose which Identity to use. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41550.88017361" DONEDATESTRING="10/3/2013 9:07 PM" PERCENTDONE="100" STARTDATE="41534.00000000" STARTDATESTRING="9/17/2013" CREATIONDATE="41534.45603009" CREATIONDATESTRING="9/17/2013 10:56 AM" LASTMOD="41550.88017361" LASTMODSTRING="10/3/2013 9:07 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can decline an invitation" ID="868" COMMENTS="Semantically the same as "unsubscribe from this Space", but more polite.
For now, this is simply a Cancel button. Is that good enough? " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41550.88055556" DONEDATESTRING="10/3/2013 9:08 PM" PERCENTDONE="100" STARTDATE="41501.00000000" STARTDATESTRING="8/15/2013" CREATIONDATE="41501.79467593" CREATIONDATESTRING="8/15/2013 7:04 PM" LASTMOD="41550.88055556" LASTMODSTRING="10/3/2013 9:08 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
</TASK>
<TASK TITLE="Sprint 21: Oct 21 - Nov 3" ID="967" COMMENTS="Rebooting the sprint numbers, now that wedding/honeymoon are done, and I'm now working more seriously again. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41586.34458333" DONEDATESTRING="11/8/2013 8:16 AM" PERCENTDONE="100" STARTDATE="41536.00000000" STARTDATESTRING="9/19/2013" CREATIONDATE="41536.48752315" CREATIONDATESTRING="9/19/2013 11:42 AM" LASTMOD="41586.34458333" LASTMODSTRING="11/8/2013 8:16 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="As a pending user, I can not create my own Spaces" ID="920" COMMENTS="But I can join other peoples' Spaces. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41568.60344907" DONEDATESTRING="10/21/2013 2:28 PM" PERCENTDONE="100" STARTDATE="41513.00000000" STARTDATESTRING="8/27/2013" CREATIONDATE="41513.47098380" CREATIONDATESTRING="8/27/2013 11:18 AM" LASTMOD="41568.60344907" LASTMODSTRING="10/21/2013 2:28 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can access Admin functions" ID="978" COMMENTS="An Admin menu? " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41568.75160880" DONEDATESTRING="10/21/2013 6:02 PM" PERCENTDONE="100" STARTDATE="41568.00000000" STARTDATESTRING="10/21/2013" CREATIONDATE="41568.60681713" CREATIONDATESTRING="10/21/2013 2:33 PM" LASTMOD="41568.75160880" LASTMODSTRING="10/21/2013 6:02 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="As an Admin or Superadmin, I can list all Users" ID="877" COMMENTS="Obviously, this will need to become a search function before too long, but step one is simply list everyone. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41569.73789352" DONEDATESTRING="10/22/2013 5:42 PM" PERCENTDONE="100" STARTDATE="41501.00000000" STARTDATESTRING="8/15/2013" CREATIONDATE="41501.80905093" CREATIONDATESTRING="8/15/2013 7:25 PM" LASTMOD="41569.73789352" LASTMODSTRING="10/22/2013 5:42 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="As an admin, I can see the pending account requests" ID="865" COMMENTS="This is a simple list, including email addresses and all other Identity information *except* (of course) password. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41569.73813657" DONEDATESTRING="10/22/2013 5:42 PM" PERCENTDONE="100" STARTDATE="41501.00000000" STARTDATESTRING="8/15/2013" CREATIONDATE="41501.79333333" CREATIONDATESTRING="8/15/2013 7:02 PM" LASTMOD="41569.73813657" LASTMODSTRING="10/22/2013 5:42 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="As an admin, I can approve a specific pending account request" ID="870" COMMENTS="Probably a straightforward click, so we can bring in someone we particularly care about. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41569.73821759" DONEDATESTRING="10/22/2013 5:43 PM" PERCENTDONE="100" STARTDATE="41501.00000000" STARTDATESTRING="8/15/2013" CREATIONDATE="41501.79711806" CREATIONDATESTRING="8/15/2013 7:07 PM" LASTMOD="41569.73821759" LASTMODSTRING="10/22/2013 5:43 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can only see the Sharing and Security page if I am the Owner" ID="962" COMMENTS="We'll eventually add Manager as a standard role for this, and separate the role from the permission, but it's a start. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41570.43298611" DONEDATESTRING="10/23/2013 10:23 AM" PERCENTDONE="100" STARTDATE="41534.00000000" STARTDATESTRING="9/17/2013" CREATIONDATE="41534.48826389" CREATIONDATESTRING="9/17/2013 11:43 AM" LASTMOD="41570.43298611" LASTMODSTRING="10/23/2013 10:23 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="There is a limit to how many Spaces I can own" ID="933" COMMENTS="Not counting deleted Spaces. This is to discourage abuse. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41570.63587963" DONEDATESTRING="10/23/2013 3:15 PM" PERCENTDONE="100" STARTDATE="41520.00000000" STARTDATESTRING="9/3/2013" CREATIONDATE="41520.59497685" CREATIONDATESTRING="9/3/2013 2:16 PM" LASTMOD="41570.63587963" LASTMODSTRING="10/23/2013 3:15 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="When I send an invitation, I am listed as the Reply-to" ID="959" COMMENTS="This is probably true for all user-generated emails? " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41570.64737269" DONEDATESTRING="10/23/2013 3:32 PM" PERCENTDONE="100" STARTDATE="41533.00000000" STARTDATESTRING="9/16/2013" CREATIONDATE="41533.61717593" CREATIONDATESTRING="9/16/2013 2:48 PM" LASTMOD="41570.64737269" LASTMODSTRING="10/23/2013 3:32 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can see the Members of my Space" ID="935" COMMENTS="Likely as part of an overall Members and Security UI. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41571.37879630" DONEDATESTRING="10/24/2013 9:05 AM" PERCENTDONE="100" STARTDATE="41520.00000000" STARTDATESTRING="9/3/2013" CREATIONDATE="41520.59550926" CREATIONDATESTRING="9/3/2013 2:17 PM" LASTMOD="41571.37879630" LASTMODSTRING="10/24/2013 9:05 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="There is a limit to how many Members I can have in a single Space" ID="872" COMMENTS="This is mainly a sanity-check. For now, it should probably be on the order of 500. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41571.72475694" DONEDATESTRING="10/24/2013 5:23 PM" PERCENTDONE="100" STARTDATE="41501.00000000" STARTDATESTRING="8/15/2013" CREATIONDATE="41501.79899306" CREATIONDATESTRING="8/15/2013 7:10 PM" LASTMOD="41571.72475694" LASTMODSTRING="10/24/2013 5:23 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Can't specify permissions by name" ID="994" COMMENTS="I introduced this bug when switching the way Identities and Persons work. Currently, it's checking whether the User has this Person; it should be indirecting through that to the Identity. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41572.41665509" DONEDATESTRING="10/25/2013 9:59 AM" PERCENTDONE="100" STARTDATE="41572.00000000" STARTDATESTRING="10/25/2013" CREATIONDATE="41572.41577546" CREATIONDATESTRING="10/25/2013 9:58 AM" LASTMOD="41572.41665509" LASTMODSTRING="10/25/2013 9:59 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="For now, only the Owner should be allowed to edit the Security settings" ID="695" COMMENTS="At the moment, our most obvious security hole is that, if I have Edit privs to a Thing, then I can change the security settings on that Thing. That's probably not a good idea.
So we should have a separate permission, which is "Can Manage Security". Normally, this is just the Owner, but the Owner should, in theory, be able to delegate it to others.
This is going to be somewhat hard, because it is the camel's nose in the tent of field-level Security. That is potentially very powerful, and possibly very useful, but a huge architectural complication that I'd rather not wrestle with yet. For now, we might semi-hack this particular problem... " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41572.68552083" DONEDATESTRING="10/25/2013 4:27 PM" PERCENTDONE="100" STARTDATE="41454.00000000" STARTDATESTRING="6/29/2013" CREATIONDATE="41454.47968750" CREATIONDATESTRING="6/29/2013 11:30 AM" LASTMOD="41572.68552083" LASTMODSTRING="10/25/2013 4:27 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can resend an invitation to a Member" ID="940" COMMENTS="For now, we're simply allowing you to send an invitation to one that's already outstanding. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41575.51741898" DONEDATESTRING="10/28/2013 12:25 PM" PERCENTDONE="100" STARTDATE="41523.00000000" STARTDATESTRING="9/6/2013" CREATIONDATE="41523.69629630" CREATIONDATESTRING="9/6/2013 4:42 PM" LASTMOD="41575.51741898" LASTMODSTRING="10/28/2013 12:25 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="As a Superadmin, I can approve Admins" ID="876" COMMENTS="That is, I can change an account to Admin.
This probably happens by selecting a User; Superadmin gets an extra option here.
Should require confirmation. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41576.62337963" DONEDATESTRING="10/29/2013 2:57 PM" PERCENTDONE="100" STARTDATE="41501.00000000" STARTDATESTRING="8/15/2013" CREATIONDATE="41501.80869213" CREATIONDATESTRING="8/15/2013 7:24 PM" LASTMOD="41576.62337963" LASTMODSTRING="10/29/2013 2:57 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I am notified when I become a Full User" ID="980" COMMENTS="Probably by email " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41577.57936343" DONEDATESTRING="10/30/2013 1:54 PM" PERCENTDONE="100" STARTDATE="41569.00000000" STARTDATESTRING="10/22/2013" CREATIONDATE="41569.68317130" CREATIONDATESTRING="10/22/2013 4:23 PM" LASTMOD="41577.57936343" LASTMODSTRING="10/30/2013 1:54 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can not see email addresses from a Person record" ID="1008" COMMENTS="Email addresses should *only* be visible from the Sharing and Security page! " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41577.64953704" DONEDATESTRING="10/30/2013 3:35 PM" PERCENTDONE="100" STARTDATE="41577.00000000" STARTDATESTRING="10/30/2013" CREATIONDATE="41577.58825231" CREATIONDATESTRING="10/30/2013 2:07 PM" LASTMOD="41577.64953704" LASTMODSTRING="10/30/2013 3:35 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I do *not* see the invitations in All Things" ID="960" COMMENTS="Necessary for security, but it'll be a hassle. The implication is that only the Owner and the Invitee should be able to see the invitees for now. This *specifically* breaks the RSVP site until I have fancy security working properly. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41577.64960648" DONEDATESTRING="10/30/2013 3:35 PM" PERCENTDONE="100" STARTDATE="41533.00000000" STARTDATESTRING="9/16/2013" CREATIONDATE="41533.78689815" CREATIONDATESTRING="9/16/2013 6:53 PM" LASTMOD="41577.64960648" LASTMODSTRING="10/30/2013 3:35 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Check content of User Name" ID="1015" COMMENTS="Currently, I believe that "name" is so free-form that you could commit XSS with it. Fix that:
-- The length should be limited to, eg, 128 characters
-- On output, the content needs to be properly encoded. Will Play do that for me automatically? Try it out. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41581.44560185" DONEDATESTRING="11/3/2013 10:41 AM" PERCENTDONE="100" STARTDATE="41579.00000000" STARTDATESTRING="11/1/2013" CREATIONDATE="41579.34336806" CREATIONDATESTRING="11/1/2013 8:14 AM" LASTMOD="41581.44560185" LASTMODSTRING="11/3/2013 10:41 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Release" ID="990" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41578.43605324" DONEDATESTRING="10/31/2013 10:27 AM" PERCENTDONE="100" STARTDATE="41571.00000000" STARTDATESTRING="10/24/2013" CREATIONDATE="41571.72436343" CREATIONDATESTRING="10/24/2013 5:23 PM" LASTMOD="41578.43605324" LASTMODSTRING="10/31/2013 10:27 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Add the new Config nodes under querki.public" ID="991" COMMENTS="Including new system email nodes. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41578.43601852" DONEDATESTRING="10/31/2013 10:27 AM" PERCENTDONE="100" STARTDATE="41571.00000000" STARTDATESTRING="10/24/2013" CREATIONDATE="41571.72439815" CREATIONDATESTRING="10/24/2013 5:23 PM" LASTMOD="41578.43601852" LASTMODSTRING="10/31/2013 10:27 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Update the system DB with 6.sql" ID="992" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41578.43603009" DONEDATESTRING="10/31/2013 10:27 AM" PERCENTDONE="100" STARTDATE="41571.00000000" STARTDATESTRING="10/24/2013" CREATIONDATE="41571.72454861" CREATIONDATESTRING="10/24/2013 5:23 PM" LASTMOD="41578.43603009" LASTMODSTRING="10/31/2013 10:27 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
</TASK>
<TASK TITLE="Sprint 22: Nov 4 - 17" ID="1045" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41597.36472222" DONEDATESTRING="11/19/2013 8:45 AM" PERCENTDONE="100" STARTDATE="41586.00000000" STARTDATESTRING="11/8/2013" CREATIONDATE="41586.34460648" CREATIONDATESTRING="11/8/2013 8:16 AM" LASTMOD="41597.36472222" LASTMODSTRING="11/19/2013 8:45 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="I can select the items to put into a Link Set" ID="1047" COMMENTS="Basically, the new _editAsPickList command. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41586.34596065" DONEDATESTRING="11/8/2013 8:18 AM" PERCENTDONE="100" STARTDATE="41586.00000000" STARTDATESTRING="11/8/2013" CREATIONDATE="41586.34552083" CREATIONDATESTRING="11/8/2013 8:17 AM" LASTMOD="41586.34596065" LASTMODSTRING="11/8/2013 8:18 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can easily add a new item for a Link Set" ID="1048" COMMENTS="_editAsPickList(withAdd) " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41586.34630787" DONEDATESTRING="11/8/2013 8:18 AM" PERCENTDONE="100" STARTDATE="41586.00000000" STARTDATESTRING="11/8/2013" CREATIONDATE="41586.34608796" CREATIONDATESTRING="11/8/2013 8:18 AM" LASTMOD="41586.34630787" LASTMODSTRING="11/8/2013 8:18 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can change my password" ID="1046" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41586.34526620" DONEDATESTRING="11/8/2013 8:17 AM" PERCENTDONE="100" STARTDATE="41586.00000000" STARTDATESTRING="11/8/2013" CREATIONDATE="41586.34519676" CREATIONDATESTRING="11/8/2013 8:17 AM" LASTMOD="41586.34526620" LASTMODSTRING="11/8/2013 8:17 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Better password for systemUser" ID="997" COMMENTS="This is currently not secure enough. Put a much more serious password in place for systemUser. Should only be recorded in fully-secure locations. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41586.34436343" DONEDATESTRING="11/8/2013 8:15 AM" PERCENTDONE="100" STARTDATE="41576.00000000" STARTDATESTRING="10/29/2013" CREATIONDATE="41576.61472222" CREATIONDATESTRING="10/29/2013 2:45 PM" LASTMOD="41586.34436343" LASTMODSTRING="11/8/2013 8:15 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100">
<TASK TITLE="Add profile page" ID="1041" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41586.34434028" DONEDATESTRING="11/8/2013 8:15 AM" PERCENTDONE="100" STARTDATE="41585.00000000" STARTDATESTRING="11/7/2013" CREATIONDATE="41585.50887731" CREATIONDATESTRING="11/7/2013 12:12 PM" LASTMOD="41586.34434028" LASTMODSTRING="11/8/2013 8:15 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add change-password page" ID="1042" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41586.34435185" DONEDATESTRING="11/8/2013 8:15 AM" PERCENTDONE="100" STARTDATE="41585.00000000" STARTDATESTRING="11/7/2013" CREATIONDATE="41585.50893519" CREATIONDATESTRING="11/7/2013 12:12 PM" LASTMOD="41586.34435185" LASTMODSTRING="11/8/2013 8:15 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Actually change the password for systemUser" ID="1043" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41586.34434028" DONEDATESTRING="11/8/2013 8:15 AM" PERCENTDONE="100" STARTDATE="41585.00000000" STARTDATESTRING="11/7/2013" CREATIONDATE="41585.50920139" CREATIONDATESTRING="11/7/2013 12:13 PM" LASTMOD="41586.34434028" LASTMODSTRING="11/8/2013 8:15 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
</TASK>
<TASK TITLE="ALPHA" ID="993" COMMENTS="This is just a marker, so I can have a line for above and below the release. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41586.34704861" DONEDATESTRING="11/8/2013 8:19 AM" PERCENTDONE="100" STARTDATE="41572.00000000" STARTDATESTRING="10/25/2013" CREATIONDATE="41572.39179398" CREATIONDATESTRING="10/25/2013 9:24 AM" LASTMOD="41586.34704861" LASTMODSTRING="11/8/2013 8:19 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="An empty List of Text fields causes rendering to crash" ID="1051" COMMENTS="Unsurprisingly, this is due to a use of .first. Not sure why it took this long to fail, but the error is very clear. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41586.70623843" DONEDATESTRING="11/8/2013 4:56 PM" PERCENTDONE="100" STARTDATE="41586.00000000" STARTDATESTRING="11/8/2013" CREATIONDATE="41586.52246528" CREATIONDATESTRING="11/8/2013 12:32 PM" LASTMOD="41586.70623843" LASTMODSTRING="11/8/2013 4:56 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Undefined Tag pages aren't displaying properly" ID="1055" COMMENTS="Pointed out by Darker. For instance, look at the "Classic" page in Poker.
See New MySQL Space::Elizabethan England for an example. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41588.51048611" DONEDATESTRING="11/10/2013 12:15 PM" PERCENTDONE="100" STARTDATE="41586.00000000" STARTDATESTRING="11/8/2013" CREATIONDATE="41586.82445602" CREATIONDATESTRING="11/8/2013 7:47 PM" LASTMOD="41588.51048611" LASTMODSTRING="11/10/2013 12:15 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="New MySQL Space::Elizabethan England gives an error" ID="1056" COMMENTS="Looks like something is expecting a Link and is getting a Name. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41588.51072917" DONEDATESTRING="11/10/2013 12:15 PM" PERCENTDONE="100" STARTDATE="41587.00000000" STARTDATESTRING="11/9/2013" CREATIONDATE="41587.46328704" CREATIONDATESTRING="11/9/2013 11:07 AM" LASTMOD="41588.51072917" LASTMODSTRING="11/10/2013 12:15 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Difficult to distinguish between Collections in Create Property" ID="1058" COMMENTS="Specifically, it's hard to tell which button is selected. Play with the CSS for this. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41588.54596065" DONEDATESTRING="11/10/2013 1:06 PM" PERCENTDONE="100" STARTDATE="41588.00000000" STARTDATESTRING="11/10/2013" CREATIONDATE="41588.45834491" CREATIONDATESTRING="11/10/2013 11:00 AM" LASTMOD="41588.54596065" LASTMODSTRING="11/10/2013 1:06 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Error message when you create a duplicate Property is uninformative" ID="1059" COMMENTS="When you try to create a Property with a name that is already in use, you get "Error: object [Object]". That needs to clearly state that there is already a Property with that name. For extra points, it would be ideal if the message included a link that takes you to the Editor for that Property. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41589.36315972" DONEDATESTRING="11/11/2013 8:42 AM" PERCENTDONE="100" STARTDATE="41588.00000000" STARTDATESTRING="11/10/2013" CREATIONDATE="41588.46077546" CREATIONDATESTRING="11/10/2013 11:03 AM" LASTMOD="41589.36315972" LASTMODSTRING="11/11/2013 8:42 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Distinguish local vs. System Models in Create Anything" ID="1052" COMMENTS="Eric notes that the Create Anything dialog is confusing, because it contains lots of non-local Models you can instantiate. Group these by their defining Space, at least for now, as a quick improvement. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41589.38740741" DONEDATESTRING="11/11/2013 9:17 AM" PERCENTDONE="100" STARTDATE="41586.00000000" STARTDATESTRING="11/8/2013" CREATIONDATE="41586.53711806" CREATIONDATESTRING="11/8/2013 12:53 PM" LASTMOD="41589.38740741" LASTMODSTRING="11/11/2013 9:17 AM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Actions menu overlaps Create Anything dialog" ID="1053" COMMENTS="When you choose Create Any Thing, the menu doesn't close. This is a problem because, on shorter screens, it obscures the new dialog. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41589.51103009" DONEDATESTRING="11/11/2013 12:15 PM" PERCENTDONE="100" STARTDATE="41586.00000000" STARTDATESTRING="11/8/2013" CREATIONDATE="41586.53805556" CREATIONDATESTRING="11/8/2013 12:54 PM" LASTMOD="41589.51103009" LASTMODSTRING="11/11/2013 12:15 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add Open Source Credits" ID="1061" COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41589.70622685" DONEDATESTRING="11/11/2013 4:56 PM" PERCENTDONE="100" STARTDATE="41589.00000000" STARTDATESTRING="11/11/2013" CREATIONDATE="41589.55401620" CREATIONDATESTRING="11/11/2013 1:17 PM" LASTMOD="41589.70622685" LASTMODSTRING="11/11/2013 4:56 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="I can combine multiple classes in a single div" ID="1064" COMMENTS="Necessary to get some Bootstrap classes working, like "well well-small". At the moment, the {{ mechanism doesn't appear to allow spaces; it should. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" DONEDATE="41589.70634259" DONEDATESTRING="11/11/2013 4:57 PM" PERCENTDONE="100" STARTDATE="41589.00000000" STARTDATESTRING="11/11/2013" CREATIONDATE="41589.61592593" CREATIONDATESTRING="11/11/2013 2:46 PM" LASTMOD="41589.70634259" LASTMODSTRING="11/11/2013 4:57 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Add Property doesn't seem to be finding the Property Details" ID="1062" COMMENTS="That is, when I click on a Property, I'm not being shown the info about it. " COMMENTSTYPE="PLAIN_TEXT" PRIORITY="5" RISK="0" NUMCATEGORY="1" CATEGORY="Bug" DONEDATE="41589.74149306" DONEDATESTRING="11/11/2013 5:47 PM" PERCENTDONE="100" STARTDATE="41589.00000000" STARTDATESTRING="11/11/2013" CREATIONDATE="41589.59569444" CREATIONDATESTRING="11/11/2013 2:17 PM" LASTMOD="41589.74149306" LASTMODSTRING="11/11/2013 5:47 PM" CALCPERCENTDONE="100" TEXTCOLOR="8421504" TEXTWEBCOLOR="#808080" PRIORITYCOLOR="57630" PRIORITYWEBCOLOR="#1EE100"/>
<TASK TITLE="Parse error in display of _refs" ID="1066" COMMENTS="See
http://www.querki.net/u/systemUser/documentation/_refs