From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Kitchin Subject: Re: Showing Property in headline; generating table from properties; exporting table to CSV Date: Thu, 06 Aug 2015 09:52:29 -0400 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:37654) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZNLb1-0000yK-W0 for emacs-orgmode@gnu.org; Thu, 06 Aug 2015 09:52:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZNLax-0002AV-P7 for emacs-orgmode@gnu.org; Thu, 06 Aug 2015 09:52:35 -0400 Received: from mail-qk0-x232.google.com ([2607:f8b0:400d:c09::232]:33879) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZNLax-0002AK-IJ for emacs-orgmode@gnu.org; Thu, 06 Aug 2015 09:52:31 -0400 Received: by qkcs67 with SMTP id s67so3982858qkc.1 for ; Thu, 06 Aug 2015 06:52:31 -0700 (PDT) In-reply-to: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Matt Price Cc: Org Mode This gets you pretty close to what you want. I changed some grades to make it easier to see it is doing the right thing. #+BEGIN_SRC emacs-lisp (setq assignments '()) (setq students '()) ;; get assignments (org-map-entries (lambda () (when (= 1 (nth 0 (org-heading-components))) (add-to-list 'assignments (nth 4 (org-heading-components)) t)))) ;; get student names as list of cons cells (org-map-entries (lambda () (when (= 2 (nth 0 (org-heading-components))) (add-to-list 'students (cons (nth 4 (org-heading-components)) '()) t)))) ;;loop over entries (dolist (assignment assignments) (save-excursion ;; jump to assignment (org-open-link-from-string (format "[[*%s]]" assignment)) ;; map over entries (org-map-entries (lambda () (let* ((student (car (assoc (nth 4 (org-heading-components)) students)))) (when student (setf (cdr (assoc student students)) (append (cdr (assoc student students)) (list (org-entry-get (point) "GRADE"))))))) nil 'tree))) (setq gradebook (append (list (append '("Student") assignments) 'hline) students)) (orgtbl-to-csv gradebook nil) #+END_SRC #+RESULTS: : Student,Definition,Darwin : Student One,10,40 : Student Two,20,50 : Student Three,30,60 Matt Price writes: > Hello eveyrone! > > I know the big guns are all working on last-minute 8.3 bugs (thank you!). > > I am hoping to get some guidance before heading off on vacation. I have > switched over to doing all grading for my courses in org. My workflow: > > - export a csv file containing student names. > - generate grading templates for each student, for each assignment > - email comments back to students > - enter marks in an official spreadsheet which can be used for final grade > submission > > A sample "Comments.org" is at the bottom of this email (it was a little > long). > > So, here are my questions: > > - I currently store my grades as properties of level-2 headlines. However, > I would really like to be able to see the grades when the headline is > folded, so I can have a quick visual sense of how many papers I've marked, > how well the students are doing, and so forth. THe best would be to be > able to see the actual marks in the headlines; but if I could, say, adjust > the color of the healdine based on the property value, that would be cool > too. > > - It seems silly to record the grades once in org, and then again in a > libreoffice spreadsheet. Better would be to generate a table and/or csv > spreadsheet directly from the headlines and property values. So, the > example below would give the table: > | Student | Definition | Darwin | > | Student One | 0 | 0 | > | Student Two | 0 | 0 | > | Student Three | 0 | 0 | > > and from there I guess I could generate a CSV just with org-table-export. > > Had anyone done either of these tasks before? Any guidance on how to do > it? > > Thanks as always, > Matt > > ------------------------------------------ > * Definition > ** TODO Student One > :PROPERTIES: > :GRADE: 0 > :MAIL_TO: student.one@utoronto.edu > :MAIL_CC: matt.price@utoronto.ca > :MAIL_REPLY: matt.price@utoronto.ca > :MAIL_SUBJECT: Comments on Definition Assignment (Student One) > :END: > - Organization :: > - Clarity of Thesis :: > - Presentation of Evidence :: > - Grammar and Spelling :: > - Style :: > - Citations :: > - Further Comments :: > - Grade :: > ** TODO Student Two > :PROPERTIES: > :GRADE: 0 > :MAIL_TO: student.two@utoronto.edu > :MAIL_CC: matt.price@utoronto.ca > :MAIL_REPLY: matt.price@utoronto.ca > :MAIL_SUBJECT: Comments on Definition Assignment (Student Two) > :END: > - Organization :: > - Clarity of Thesis :: > - Presentation of Evidence :: > - Grammar and Spelling :: > - Style :: > - Citations :: > - Further Comments :: > - Grade :: > ** TODO Student Three > :PROPERTIES: > :GRADE: 0 > :MAIL_TO: student.three@utoronto.edu > :MAIL_CC: matt.price@utoronto.ca > :MAIL_REPLY: matt.price@utoronto.ca > :MAIL_SUBJECT: Comments on Definition Assignment (Student Three) > :END: > - Organization :: > - Clarity of Thesis :: > - Presentation of Evidence :: > - Grammar and Spelling :: > - Style :: > - Citations :: > - Further Comments :: > - Grade :: > > > * Darwin > ** TODO Student One > :PROPERTIES: > :GRADE: 0 > :MAIL_TO: student.one@utoronto.edu > :MAIL_CC: matt.price@utoronto.ca > :MAIL_REPLY: matt.price@utoronto.ca > :MAIL_SUBJECT: Comments on Darwin Assignment (Student One) > :END: > - Organization :: > - Clarity of Thesis :: > - Presentation of Evidence :: > - Grammar and Spelling :: > - Style :: > - Citations :: > - Further Comments :: > - Grade :: > ** TODO Student Two > :PROPERTIES: > :GRADE: 0 > :MAIL_TO: student.two@utoronto.edu > :MAIL_CC: matt.price@utoronto.ca > :MAIL_REPLY: matt.price@utoronto.ca > :MAIL_SUBJECT: Comments on Darwin Assignment (Student Two) > :END: > - Organization :: > - Clarity of Thesis :: > - Presentation of Evidence :: > - Grammar and Spelling :: > - Style :: > - Citations :: > - Further Comments :: > - Grade :: > ** TODO Student Three > :PROPERTIES: > :GRADE: 0 > :MAIL_TO: student.three@utoronto.edu > :MAIL_CC: matt.price@utoronto.ca > :MAIL_REPLY: matt.price@utoronto.ca > :MAIL_SUBJECT: Comments on Darwin Assignment (Student Three) > :END: > - Organization :: > - Clarity of Thesis :: > - Presentation of Evidence :: > - Grammar and Spelling :: > - Style :: > - Citations :: > - Further Comments :: > - Grade :: > --------------------------------------------- > > I have three remaining issues -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu