> > Feature (approved)

notice on persons?

Summary

approved
Sep 7, 2006
100%
Oct 26, 2006
Sep 7, 2006 / binder
Jan 5, 2009 / phsouzacruz
burger
 

Attached files

No files uploaded
 
It's important to have a notice on persons only.
sometimes a client or prospective client calls and you have to put down some notes not on a specific task.
In that context it would also be important to add notices on projects.

And last not least should a notice be in some way related to a person. So it would be a kind of CRM-functionality, so the information of a phone-conversation can be assigned to a PM?

29 Comments

pixtur:Already implemented, but...

9 years ago

Most of this features are already implemented, but I disabled them, because the cluttered the interface and are probably not the best way to handle this task. I think what we need is a quick way to create a "wiki page"-task.

Some background:
  1. Due the the user right model we cannot have items outside of projects. That keeps us from attaching items to persons, because we do not know, how to check visibility for them. (I am still looking for a solution of this problem).
  2. Although there could be project-comments, why not create a new tasks? If we introduce a task category anyway (see ) it would provide the same functionality and much more. (e.g. you could turn it into a real task and assign it. You could book an effort on a telefon conference, etc.). I am not sure how to link it to a person though...

binder:Reply to Already implemented, but...

9 years ago

sounds interesting. especially the last part.

But we should keep an eye on how long this could take. Imagine the phone rings and you have to open a new task, put the person in this task, add a notice, etc. pp...

It would be much easier to search for "mr. smith" and add some action to him.

binder:Reply to Already implemented, but...

9 years ago (2. update 9 years ago)

i thought again about it. I'm looking for some kind of CRM-functionality like this:
  1. person/client calls
  2. i open him via search
  3. personView gives me the joice to "add new <<task>>" (or whatever we will call it?)
  4. the next view is like the newtaskview, but there
    1. I can also assign the task to existing projects/folders which the person (who called) is assigned to or
    2. I can create on the fly a new project/folder to put the task in
Thus we don't have to find new ways to assign notices on persons and we also have the great opportunity to have a phone call turning into a task via one click (which is really sexy!) *G*

pixtur:Cool idea...

9 years ago

Hi Binder,
I like your thinking very much (I believe we work in quiet the same manner). I will write some more soon...

tom

binder:Reply to Cool idea...

9 years ago

something new? ;)
we need this urgently... *G*

madlyr:and if we could count easily time spent on that phone call...

9 years ago

... it would be >>almost<< everything we need ;)

binder:Reply to and if we could count easily time spent on that phone call...

9 years ago (2. update 9 years ago)

you could then book efforts on this "task" (or whatever it's called: ).
thus, you can count all efforts on a project (including phone calls).

Is this what you need?

madlyr:Reply to Reply to and if we could count easily time spent on that phone call...

9 years ago

Yes. If we could categorize (kind of effort?) of efforts (e.g. consultation, phoe calls, research, coffe break) and then see time spend not only on particular tasks/efforts/project but on particular categories, then it would be ideal.
More... We could count category efforts across projects, persons, etc.

Effort category should be expandable easily - different people or firms, different needs.

I'm not shure if this do not crosses streber with other functionality, but this kind of statistical view could be very interesting.

binder:Reply to Reply to Reply to and if we could count easily time spent on that phone call...

9 years ago (2. update 9 years ago)

cool idea!
this would also solve a question, which will arouse later, if we added some calculation features for streber. Different categorized efforts could result in different sums for calculation of the bill! Then you can calculate the benefit of a specific team member or a project, ...

see or for more on statistics.

pixtur:Sorry for the delay, how about this solutions:

9 years ago

  1. in personView add "Create Note"
  2. render pages/task_more.inc.php -> taskNoteOnPerson()
  3. renders a small form similar to taskEditDescription() with following fields:
    • Drop-Down of open projects:
      • default should be project last $auth->cur_user has last been working on
      • projects with PersonXYZ as team member should be preferred
    • Inputfield Title with default content like "Note on PersonXYZ, 2006-10-26 on..."
    • Text area on description
    • form option checkbox (like create another...): "Book effort after submit"
  4. after submit all pages/task_more.inc.php -> taskNoteOnPersonSubmit()

A nice feature whould be add a second dropdown field with the tasks of the selected project, which could be updated on change by jquery.

Something like this.

tino:Reply to Sorry for the delay, how about this solutions:

9 years ago

Hey burger,

A nice feature whould be add a second dropdown field with the tasks of the selected project, which could be updated on change by jquery.

When you're done, I could give it try.


regards tino

binder:Reply to Sorry for the delay, how about this solutions:

9 years ago (4. update 9 years ago)

No problem, I just didn't want to let the issue be forgotten! ;)

Problem with your suggestion is, I cannot filter for persons (e.g. clients). If I'm preparing for a meeting with my client, I wanted to see, what we discussed the last days/weeks/months/... I would like to see a connection between persons and notices. So I can also assign a team member to specific conversations: The result of a phone call can be interesting for a team member, so I can assign the notice also on that team member. So I'd like to stay with the "task-solution", we discussed earlier. If your described "note" is a sub-categorie of "task", I'm convinced! Then I can assign this client to that task!

but I would also change your step 3, because it should also contain the possibility to add a new project:
  1. renders a small form similar to taskEditDescription() with following fields:
    • Drop-Down of open projects:
      • default should be project last $auth->cur_user has last been working on (is this default necessary?)
      • projects with PersonXYZ as team member should be preferred
      • one field should be "new project ..." => onChange to this value reveals inputfields
        • title of new project
        • short of new project?
        • drop-down list company with default company PersonXYZ is assigned to
        • ... more information on that stage? I still can edit that project later on!
    • Inputfield Title with default content like "Note on PersonXYZ, 2006-10-26 on..."
    • Text area on description
    • form option checkbox (like create another...): "Book effort after submit"
    • the note should also automatically be assigned to cur_user
last/not least I would change other views as well:
  1. add "see notes" to personView => lists all "notes", which that person is assigned to with possibility to expand view (like the new )
  2. show notes an "my tasks"-page => I can assign a phone call to a person, which is not at the office at present
  3. add a list of last notes on the

pixtur:Excellent

9 years ago (2. update 9 years ago)

This is discussion is brilliant. It's sooo cool to see the solution getting better an better. So one last round:
  • Yes, Note is a subtype of Task
    • sooner of later we should start with but for now this works with a regular tasks as well. The only problem is, that normal tasks would be listed in the person's assigned tasks list.
  • Your suggestions to creating new projects on the fly is soooo beautiful. I really love it. Now we have to find a common solution for "smart & interactive" forms:
    • We need a special "onChange" event handler that would be attached by jquery. But I am not sure where to put this. Maybe we could define a onLoad-functions-array in the html-header and later add new init-functions on the fly like:

from rough example

echo "<select id=bla> <option>1</option><option>1</option></select>";
echo "<script>streber_page.init_functions.append(function() {$('select#bla').onChange=function{ ... }}
  • I like the See notes idea, although I am not sure how to distinguish notes from other tasks. Maybe we already should implement for this?
  • The "Show notes" list could look similar to the comment list, which fold/expand toggles. Since a "Note" is just a "Task" it already has the "view_collapsed" field which could be used for this.

binder:Reply to Excellent

9 years ago (2. update 9 years ago)

first of all, I think, the notes should behave just as a task. I can influence the visibility of a note by adjusting the status!

we could split this into two steps (because I think would last a bit longer... ;)

step1:π

  • add note just opens new task as described
  • everything is done with a task (we need to distinguish on task-name?)

step2:π

  • after ist finished add note opens new "note"
  • we could then distiguish on task categories
  • see notes is included

pixtur:ok...

9 years ago

Doing it in two steps will be just fine.

burger:

9 years ago

Hi Tom,

I know that your a assigned to this task but if you don't mind I would like to implement step1. Is this okay for you?

pixtur:yeah, of cause!

9 years ago

Just go ahead!

burger:Done?

9 years ago

Hi Tom!

I added the 'notice on person' functionality.
It would be great if you would test it and tell me your opinion.

Thanks.


pixtur:Looked at your changes...

9 years ago (2. update 9 years ago)

Hi Burger

I had a rough look at your code. Although I am very impressed with how this wonderful function turned out, I still have some nitpicky comments:

task_more.inc.phpπ

  • please do not use TAB characters
  • Line 3044: please do not use camelCase for varibales.
    • $newTask better written as $task_new
  • Line 3084: please leave spaces before and after "="
  • Line 3104: maybe the Minor Title could be something like "edit"
  • Line 3157: please use formatting characters out of translation text
    • __('- no assigned projects') -> `'- '. __('no projects')
  • Line 3198: Not sure, but if you label this "no other projects" you would require some assoc. array to collect all projects ids already been added to the list?
  • Why not just leave labels like "Company Projects" entirely, if there are none?
  • when rendering Checkboxes in forms, please use "<label for="XXX">" to increase hit area
  • Line 3244: Why do you use Form_customHTML instead of something like:
    • $form->add(new Form_checkbox('checkbox_id',"Label",$value)); ?

render_page.inc.phpπ

  • Line 490-503: This code should be added to a js-file (e.g. misc.js)
  • Pleae do not use document get element by id, but $('label#new_project')


On labeling form fields...π

I would suggest to start all form fields with the object type they are related
to:
  • new_project -> new_project_id
  • pub_level -> task_pub_level
  • prio -> task_prio
  • a.s.o.
  • The new effort could use the created time of the new task as beginning time
Like always I hope to be not too frustrating ,-) And once again I must emphasize, how cool this very complex feature turned out...

tom


burger:Thanks for your comments ...

9 years ago (4. update 9 years ago)

Hi Tom,

Don't worry I'm always very appreciate for your comments. Without them I wouldn't learn that much. Even though I think I will never learn to avoid Tabs ;) (Sorry!!!!).

I will change the most of the code as recommended.

Some notes:
  1. I use Form_customHTML because I can set the value parameter (like ... value=$person_id ...) --> the $value variable at Form_checkbox only marks the checkbox
  2. "All other projects": We thought it doesn't matter if some projects are in two categories. But the problem with array_flip results anyway in no double recordsets.
  3. I cannot put my js-function at misc.js, because it doesn't work in there and I don't know why?!

tino:Reply to Thanks for your comments ...

9 years ago

Hello Esther,

I cannot put my js-function at misc.js, because it doesn't work in there and I don't know why?!

from burger



I can take a look at this...

burger:Comment

9 years ago

I committed some changes. Maybe you can check them?

pixtur:some comments on your three questions

9 years ago

  • on 1st: This is a bug. From_checkbox should use the value parameter just a you suggested it.
  • on 2nd: Arg... The array_flip-issue again... Urgs... We have to refactor this in the next release.
  • on 3rd: I already adjusted you js-code to:

from misc.js

    $("body.taskNoteOnPersonEdit input#new_project").change(function(e)
    {
		$('#proj').toggle();
		$('#proj_list').toggle();
    });

As you can see, with jquery you can write javascript code much shorter.

tino:Reply to some comments on your three questions

9 years ago (3. update 9 years ago)

Hey Tom,

you were a bit faster than I ;-)

I made some changes - so now we have a really cool slide effect

pixtur:did you delete the page function for "New Person"?

9 years ago

I saw you removed the code at rev.151 or so. But I do not understand why. I sometimes need this link, so I restored the function.

burger:Comment

8 years ago

Thanks for the new function at misc.js for the notice on persons.

But I still have the problem that it doesn't work. If I check the checkbox then nothing happens. So what can I do?

pixtur:I will check this..

8 years ago

probably the eventhandler must be overwritten for the checkbox?
But for me it seemed to work quiet well.




burger:Comment

8 years ago

I really don't no what's the problem with the misc.js.
I don't have problems with the listFunctions.js.

pixtur:Reply to Comment

8 years ago