Edgewall Software
Modify

Ticket #2045 (new enhancement)

Opened 6 years ago

Last modified 19 months ago

shortcut to "accept" a ticket when creating it, and enable the "accept" option for other statuses

Reported by: cboos Owned by: cboos
Priority: normal Milestone: next-major-0.1X
Component: ticket system Version: devel
Severity: minor Keywords: workflow
Cc: andrew.c.martin@…
Release Notes:
API Changes:

Description

Long time ago, on the mailing list, I proposed a patch
to immediately set the status of a newly created ticket
to "assigned" if the reporter and the assignee are the
same person.

This saves one step, as the next logical step would be
to "accept" the ticket that the reporter has just created
for himself.

Therefore I propose the patch once again, for discussion:

  • model.py

     
    142142                # Assume that no such component exists 
    143143                pass 
    144144 
     145        # If the owner creates the ticket, status is directly 'assigned' 
     146        owner = self.values.get('owner') 
     147        if owner and owner == self.values.get('reporter'): 
     148            self['status'] = 'assigned' 
     149 
    145150        # Insert ticket record 
    146151        std_fields = [f['name'] for f in self.fields if not f.get('custom') 
    147152                      and f['name'] in self.values.keys()] 

Attachments

Change History

comment:1 Changed 6 years ago by cboos

  • Status changed from new to assigned

For now, I still have to accept that ticket manually :)

comment:2 Changed 6 years ago by cboos

By the way, I just realized that there's a similar situation
when one reassigns a ticket to oneself:
the ticket would also still have the status new,
when assigned would have been more appropriate.

Here also, it wouldn't make sense to reassign to oneself,
and then not wanting to accept this assignation.

Hence the revised patch:

  • model.py

     
    142142                # Assume that no such component exists 
    143143                pass 
    144144 
     145        # If the reporter assigns to himself, the status is directly 'assigned' 
     146        owner = self.values.get('owner') 
     147        if owner and owner == self.values.get('reporter'): 
     148            self['status'] = 'assigned' 
     149 
    145150        # Insert ticket record 
    146151        std_fields = [f['name'] for f in self.fields if not f.get('custom') 
    147152                      and f['name'] in self.values.keys()] 
     
    202207                    # just leave the owner as is. 
    203208                    pass 
    204209 
     210        # If the reporter reassigns to himself, the status is directly 'assigned' 
     211        owner = self.values.get('owner') 
     212        if owner and owner == author: 
     213            self['status'] = 'assigned' 
     214 
    205215        custom_fields = [f['name'] for f in self.fields if f.get('custom')] 
    206216        for name in self._old.keys(): 
    207217            if name in custom_fields: 

comment:3 Changed 6 years ago by cmlenz

I'm not sure about this. For me, “accepting” a ticket means that I'm starting work on it, I.e. it is in-progress. Just assigning a ticket to myself doesn't necessarily mean that I am planning to start working on it immediately.

Trac is about not imposing process or policies. Different users may have different policies for accepting tickets, and Trac shouldn't make any assumptions here.

comment:4 Changed 6 years ago by cmlenz

And about the reassign case you note in the comment, maybe having an accept action for tickets owned by someone else may be a better approach. That way it's at least explicit.

comment:5 Changed 6 years ago by mgood

  • Summary changed from Ticket should be immediately 'assigned' after creation when assigned to the reporter to shortcut to "accept" a ticket when creating it, and enable the "accept" option for other statuses

Well, other projects may choose to use it differently, but I believe that the "accept" option should only be used when a ticket is being actively worked on. So, there are certainly times that I would assign a ticket to myself without "accepting" it yet. This is particularly true at work where I have several projects that I'm the only developer on. So, of course I'm the owner of every ticket, but I don't "accept" it until I'm getting started on it.

I'm changing the summary of the ticket since I can see the advantage of having a shortcut (checkbox?) when creating a ticket that would immediately accept it. Also, I think that the "accept" option should be available for all statuses besides "closed". Right now it's only enabled on "new" tickets which means that accepting "reopened" or "accepted" tickets is a two step process which it doesn't need to be.

While we're on this subject, cboos, I think that it would be helpful if you didn't try to accept so many tickets since right now there are over 50 "accepted' tickets in your name, which I don't believe you're actively working on all of them. I think that this leads to confusion for both the developers and users who don't know what's actually being worked on.

comment:6 Changed 6 years ago by cboos

Well, according to your or cmlenz's acception of "accepted",
you'd perfectly right.
But I was under the impression that "accepting" a ticket
would merely mean that I "accept" to work on that item.

For me, the current names chosen for the states would rather mean:

  • new: not even seen by the developer yet (that's why there's currently so few new tickets owned by me, and for the few who are in that state, it's certainly because I forgot to "accept" them at some point)
  • accepted: the issue is acknowledged by the developer
  • fixed: done with it
  • reopened: oops, not quite

Some other states would be welcomed, but I won't discuss that here.

My point is that it was not at all evident that the "accept" state
would actually mean "I'm working on it".

For tracking current progress at the ticket level, something like
what was suggested in #1084 is far better (cf. flyspray).

But I'm not rigid on that, and if it's the recommended way to go,
I could revert the state of the tickets that I'm not working upon
to the new state.
It's just that this should be documented somewhere...

comment:7 Changed 6 years ago by direvus@…

I use the "accepted" status in the same way as cboos. If someone reports a bug to me, I won't accept the ticket until I'm convinced the bug isn't bogus. Likewise an RFE ticket won't be accepted until I'm convinced the enhancement is a good one.

It's not about whether I am working on a ticket, it's about whether I will work on it.

That said, I totally agree with cmlenz's comment that:

Trac is about not imposing process or policies. Different users may have different policies for accepting tickets, and Trac shouldn't make any assumptions here.

Perhaps this should be a user setting, like "Auto-accept when assigning tickets to yourself? <checkbox>"

comment:8 Changed 6 years ago by rob

This should be enabled as a user setting. I also want tickets I assign myself to be auto-accepted

comment:9 Changed 6 years ago by peter.becker@…

If you want the scheme cmlenz proposes, I'd like to see a separate "assigned" state between "new" and "accepted". Alternatively there could be an additional boolean attribute "accepted", in which case "new" should probably be named "unassigned" and the semantics of new would be covered by the pair "unassigned"/"not accepted".

At the moment I'd consider the UI as inconsistent and we got confused since we had some tickets missing from queries where we expected them.

A particular inconsistency for me is that reassigning an accepted ticket to the empty string changes the status to "new". That is inconsistent with reassigning a new ticket to someone, where the status does not change.

comment:10 Changed 6 years ago by opensource@…

How about adding an additional status like "in progress"?

So there would be:

  • new
  • accepted
  • in progress
  • closed
  • reopen

comment:11 Changed 6 years ago by srussell@…

I agree with some of the posts above: I prefer to use "accepted" as a tag that I'm actively working on a ticket.

To address some of the other comments, though, wouldn't a special "assigned" state be redundant? If there's a name in "Assigned to:" then it's assigned. If it's the default (somebody?) then it's not assigned.

comment:12 Changed 6 years ago by kelk@…

I have recently installed trac, and I am very happy with it.

However it is NOT clear to the users of the system, that they need to "accept" a ticket.
So most people newer do this. This may lead to queries with incomplete results.

In our case it would be nice, either to not have the accepted state at all - or to always auto-accept - also when assigning to others.

In my world you have the defect until you reassign it. The scheme with having bugs owned but not assigned leads to tickets in "no mans land".
The idea of using "assigned" as "in progress" is to me mixing defect-management too much with project-management. Defects are either fixed or not - in progress is irrelevant when you e.g. need to decide whether to release or not...

comment:13 Changed 6 years ago by athomas

  • Milestone set to 0.11

Regardless of how a particular user interprets the states, I think it's quite confusing that using the reassign action makes the state new, whereas accepting the ticket makes it assigned.

WorkFlow will allow this to be customised of course, but making the current behaviour more logical would be good IMHO. This would require assign action and an accepted state.

comment:14 Changed 6 years ago by cboos

+1, see also my last comment on #1689, which stated essentialy the same thing.

comment:15 Changed 6 years ago by fumanchu@…

For what it's worth, I implemented the same patch as cboos, and was ready to open a new ticket for y'all before I found this one.

+1 on making this configurable. I would've guessed it should be a conf-file entry, though, not a per-user setting. If it is made a per-user setting, I want to be able to default it to True site-wide.

comment:16 Changed 6 years ago by cboos

  • Keywords workflow added
  • Priority changed from low to normal
  • Severity changed from trivial to minor

For the record, #2315 and #2732 are also duplicates of this ticket.

comment:17 Changed 5 years ago by cboos

  • Status changed from assigned to new

In most BTS, the new state means not yet processed.

From the discussion above and others, it seems like a majority of the TracTeam wanted to have the accepted state (accepted as defined in comment:13) to be used as an indicator of "Someone is actively/currently working on this".

We probably need something in between, meaning "this ticket has been noticed and the team decided what to do about it". Currently, this is done by assigning a milestone, which is not that satisfying (there might be valid ticket for which no milestone are adequate). A better solution would probably an acknowledged state.

And this brings me back to the very topic of this ticket: my original request for enhancement was Ticket should be immediately 'assigned' after creation when assigned to the reporter. This could be rephrased: Ticket should be immediately 'acknowledged' after creation when assigned to the reporter, provided we have that acknowledged state.

Opposed to the acknowledged state, there should also be a needinfo state, i.e. the ticket has been seen but can't be processed further until some more details are given (#2944).

So this would give the following first steps of the workflow:

  1. create new ticket -> (new) state
  2. (new) : seen and "triaged", the verb could be validate -> (acknowledged) state
  3. (new) : seen but can't decide, the verb could be question -> (feedback) state

(feedback or needinfo, same thing)

So this ticket is about doing 1. and 2. in one step at ticket creation time, when the reporter assigns the ticket to himself. Now I hope that this sounds unquestionable ;)

comment:18 Changed 5 years ago by sid

Oh, I can't wait for workflow. Then everyone can do it their own way.

comment:19 Changed 5 years ago by cboos

#4749 is also discussing the default workflow.

comment:20 Changed 5 years ago by anonymous

I cannot Accept a Reopened ticket. (10.3) Is this by design ? That is, i fix a ticket, now it is closed, tester/manager reopens, now it's reopened, I should now be able to Accept this ticket, but this option is not available.

Maybe design is that tester reopens, then manager must reassign ( even though it is assigned to me already ), then it gets New status (what? that's no good, as you mention several times here, that reopened != new ).

comment:21 Changed 5 years ago by ecarter

WorkFlow is in trunk now. Note that the default workflow was left as it was, warts and all. However, the framework is in place so that a reasonable default workflow can be chosen, along with several examples for the common use cases.

comment:22 Changed 4 years ago by osimons

Didn't the discussions & decisions on the new 'fixed default workflow' committed as [5658] essentially resolve this issue for 0.11?

comment:23 Changed 4 years ago by osimons

#6584 closed as a duplicate - after initial recommendation of using plugin and custom workflow.

comment:24 Changed 4 years ago by ecarter

  • Milestone changed from 0.11.1 to 0.12

The part of this enhancement that remains is being able to take custom workflow actions upon ticket creation. Customizable workflow does not provide a hook into ticket creation, nor am I planning to add one for the 0.11 series. Deferring to 0.12.

comment:25 Changed 22 months ago by b5

It would be cool if you would built the proposed patch in and have a config variable to enable it. It should not cost others much performance. But I am used since more than two years to create tickets for myself and then immediately accept them. Because for us "accept" came to mean "saw it, will do it, no questions now, not declined". I think it may mean this in many rougher environments actually, where avoiding blame games is part of how trac helps.

Thank you!

comment:26 Changed 19 months ago by Andrew C Martin <andrew.c.martin@…>

  • Cc andrew.c.martin@… added
View

Add a comment

Modify Ticket

Change Properties
<Author field>
Action
as new
as The resolution will be set. Next status will be 'closed'
to The owner will be changed from cboos. Next status will be 'new'
The owner will be changed from cboos to anonymous. Next status will be 'assigned'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.