From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id OBNlCQeHtl/dEgAA0tVLHw (envelope-from ) for ; Thu, 19 Nov 2020 14:53:59 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id chs1BQeHtl9WfAAAB5/wlQ (envelope-from ) for ; Thu, 19 Nov 2020 14:53:59 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id C9C809400EF for ; Thu, 19 Nov 2020 14:53:58 +0000 (UTC) Received: from localhost ([::1]:51146 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kflJt-00070y-Oz for larch@yhetil.org; Thu, 19 Nov 2020 09:53:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54278) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kflIz-0006Zw-RX for emacs-orgmode@gnu.org; Thu, 19 Nov 2020 09:53:01 -0500 Received: from mail-pf1-x42c.google.com ([2607:f8b0:4864:20::42c]:36272) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kflIy-0007dT-0Y for emacs-orgmode@gnu.org; Thu, 19 Nov 2020 09:53:01 -0500 Received: by mail-pf1-x42c.google.com with SMTP id a18so4720550pfl.3 for ; Thu, 19 Nov 2020 06:52:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=references:user-agent:from:to:subject:in-reply-to:message-id:date :mime-version; bh=/lyVZ4Bqm559VtWXBqdqGZW7gKD8p1JnpnzYZc3a0M8=; b=t+wC2zZEQIl+LsOok7EvvzkTA/wuDAqs/Zq+HZ29r21Iwi3frRScm9KwmX88Xtf5aE fM6Kt7h222bK35Z/WIiv3eGrP+TmVOtVFlvUOJkArS5ULrjIiDuEhcyLZpJHF43G27ZV 6aEsah0jcQ0XxBqBndl6h0nP9D5kZrqfyTVQZxRJbC9lcPy6UjqLEcJVbQf53QI+Cuoz 8QPcaanYLH681p26NygMAo1sc3Y+3lmCKnh9FQDinvS6+Kglc3DRBLJtDKbhEoUXYTMv D5UrNa8K170a7y03PAFBTrg3sXD3BB/RrS3CLVlaNMI6crlAlxVUcCZ1zTszsvqx+3aA sSYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:references:user-agent:from:to:subject :in-reply-to:message-id:date:mime-version; bh=/lyVZ4Bqm559VtWXBqdqGZW7gKD8p1JnpnzYZc3a0M8=; b=Gd3zr7rFvH0UpJ5U8wvnujeZrbn+5ehOtZgV03mMPUxoxfy+crioWSQjpxKRpE6Udc R147vXPls1SXb3r8ptiCnicSIC4UUpwfDB5G/MgpVI+KSIl0ooBRFNTcqBsEIiCFtYOl 4jRSNRlBjOq0J8crFLY0JLDgFxRn9xfvE+ae62QRX9mmZi6yQe2qc/9Szxq8ktHnGNbp qTxx7M6AFUjbia2pYdfTM6mp+sZKSmq+A4yjSBXuupxvlRAS3I6BZTCC1Pjrv6fIxFpl G+Z6uYC1mHmF8oes2aMsLjJd9Yn+dxkKEZ8dOTQff7IwFt/M6c7ULGvjo7x20XyHpblp Avcg== X-Gm-Message-State: AOAM530k33nhPGwzNBKvNv7PeJKDBQFpWhi4f1VDElZA8LWyKZhqYJDt LaF2YH1o3J7bfXOSi+FFZ+evjnjMGJTNAw== X-Google-Smtp-Source: ABdhPJwmzVA/ewFUJWRZICWlPphGPXbyfVtfDGsp7uDgbCeS+EGi3eukfYfwpTLbVnFScrI3EHGsKg== X-Received: by 2002:a17:90a:e391:: with SMTP id b17mr4912188pjz.209.1605797578137; Thu, 19 Nov 2020 06:52:58 -0800 (PST) Received: from tim-desktop (106-69-105-159.dyn.iinet.net.au. [106.69.105.159]) by smtp.gmail.com with ESMTPSA id x2sm55507pfp.13.2020.11.19.06.52.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Nov 2020 06:52:57 -0800 (PST) References: <87tutljzxo.fsf@mbork.pl> User-agent: mu4e 1.5.7; emacs 28.0.50 From: Tim Cross To: emacs-orgmode@gnu.org Subject: Re: Clock tables and two ways to categorize tasks In-reply-to: <87tutljzxo.fsf@mbork.pl> Message-ID: <87d009z9dl.fsf@gmail.com> Date: Fri, 20 Nov 2020 01:52:54 +1100 MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2607:f8b0:4864:20::42c; envelope-from=theophilusx@gmail.com; helo=mail-pf1-x42c.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Scanner: ns3122888.ip-94-23-21.eu Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20161025 header.b=t+wC2zZE; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Spam-Score: -1.71 X-TUID: Gxx0pZdficMF Marcin Borkowski writes: > Hi all, > > here's the problem I'd like to solve. I clock various tasks, and then > generate a clock table. So far, so good. But now I'd like to know > better where my time goes. Most tasks I do have a few similar > components: discussion/research, writing code, testing, etc. I thought > that I could create subheadlines under each of the tasks and give them > tags like :discuss:, :code:, :test:, :debug: and so on. (Not very > convenient, but doable, maybe with a bit of Elisp to automate the > process.) > > Now, I'd like to prepare two clock tables: one where I see how much time > every task took, and one where I can see how much time I spent coding, > testing, debugging, emailing etc. I can see in the docs that there is > the ~:match~ option, but if I understand it correctly, it can only > restrict the table to /one/ tag, so I'd need to have as many tables as > I have tags - not optimal. > > Any ideas? Should I use something else than tags for that? > Although I haven't tried it, I think you can have multiple tags. You should be able to do something like +TEST+DEBUG-DISCUSS which would give you those tasks with tags :TEST: and :DEBUG: but not :DISCUSS: Have a look at the 'Matching tags and properties" section in the manual (under the agenda section). Another approach (actually the one I use) is to put things at different levels. So at level 1 is the Tasks heading, at level 2 is each TODO at level 3 is each subtask and at level 4 are the task activities (**** Research, **** Code, **** Meetings, **** Testing, **** Documentation). My main clock table has :maxlevel 4, which shows a complete breakdown while the table I use for invoicing (where I only want to show total time, main task time and sub-task times, but not the level 4 stuff) has :maxlevel 3. Actually, I lie a bit. My current invoicing approach actually uses a custom :formatter function so that my invoice clock table has columns for rate, amount and total amount. However, the :maxlevel approach was where I started! -- Tim Cross