Coder Social home page Coder Social logo

jethro-pmm's People

Contributors

alwr avatar eb3nezer avatar edwhiting avatar funkydan2 avatar howardgrigg avatar jefft avatar s4069b avatar tbar0970 avatar thesle avatar tim-pearce avatar vanoudt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jethro-pmm's Issues

DB error when trying to delete a group referenced from a user account restriction

Configure a user account to be restricted to person group X
Then try to delete group X.
DB error ensues:

Request: Array
(
[view] => _edit_group
[groupid] => 88
[action] => delete
)

Array
(
[0] => Array
(
[function] => _handleError
[class] => System_Controller
[type] => ->
[args] => Array
(
[0] => 256
[1] => Database Error: _doQuery: [Error message: Could not execute statement]
[Last executed query: DELETE FROM person_group WHERE id='88']
[Native code: 1451]
[Native message: Cannot delete or update a parent row: a foreign key constraint fails (je_imagine.account_group_restriction, CONSTRAINT account_group_restriction_groupid FOREIGN KEY (groupid) REFERENCES _person_group (id))]

               [2] => /home/jethro/code/2.10.1/include/general.php
               [3] => 54
               [4] => [Object/Array]
           )

   )

Locking not being enforced for recording attendance

It seems to be possible for 2 people to open a record-attendance page for a congregation at the same time, so that when they both save one person's data clobbers the others.

It's meant to enforce locking like when you edit a person etc.

Run Sheet Templates

Ability to save various "template" run sheets which include some concrete items (eg "Sermon") and some service-component-category placeholders (eg "Song").

When editing a (blank?) run sheet you can select "use template" and select one of the saved tempates. The current run sheet is then populated with the items from the template. Then you select specific components to replace the placeholders.

It would probably be necessary to be able to save the specific date's run sheet with some placeholders still unreplaced - eg if you haven't chosen all the songs yet.

More details to be determined.

FR: Edit system configuration within Jethro

The DB credentials will always need to be in the conf.php file

But we could move all the other config into a settings table in the DB, so that it can be edited from within jethro. Saves on system-administrator effort.

Migration plan could be:

On init: Select all from settings table, and for any setting not already defined as a constant, define it as a constant. For any setting that is already defined as a constant, define(<setting_name>_DEFINED_IN_FILE).

In the settings page:
For each setting,
if <setting_name>_DEFINED_IN_FILE is set:

  • save the constant value to the DB
  • render a read-only interface
  • show an explanatory message inviting them to remove it from the conf.php file

else

  • show editable interface.

School Years / Age Group graduation

Has come up many times.

Kids have exact ages / birth dates
and school years
and broader age brackets (infants / upper primary etc).

The desire is to
automatically put them into age brackets based on DOB
AND/OR record school year rather than broader age bracket, and be able to bulk graduate year5 -> 6 etc.

Missing MEMBERS_DSN and MEMBER_PASSWORD_MIN_LENGTH variables in sample conf.php

Hi Tom,

Trying 2.9's new /members URL, I just get a database error. Turns out it is because /members/index.php relies on a new variable, MEMBERS_DSN being defined, which isn't in the sampel conf.php's.

Having defined MEMBERS_DSN in conf.php, I then could log in as a member, but got an error up top complaining about a missing MEMBER_PASSWORD_MIN_LENGTH, which also needs defining.

If you'd like to 'git remote add jefft https://github.com/jefft/jethro-pmm'' these changes are in HEAD.

Regards,
Jeff

Add search box to members home page

When you first log in to the members interface
it should have the "search for person" box visible
without having to go to the "people" page.

FR: explicit ordering of multiple roster allocations

When multiple people are assigned to a given role on a particular date, their order is not currently recorded. When they are re-displayed they come up in alphabetical order. For situations such as 3 bible readers doing 3 bible readings, it would be helpful to have the order of allocations preserved.

This would require a new Rank column in the roster_assignment table.

Permissions change

I have just begun using Jethro and am loving it, however I seem to have hit a wall. I tried to increase a user's permissions from being restricted to their congregation to no restriction, but cannot do so. Despite all boxes being ticked, this user still cannot add a new family (which is what I want to enable them to do). Since I cannot delete the user and start again but can only make them inactive, I am at a loss how to enable their permissions.

Installer issue

When installing Jethro , I get the following mysql error after completing first page of the installer

_doQuery: [Error message: Could not execute statement] [Last executed query: CREATE TABLE person_group_headcount ( date DATE NOT NULL, person_groupid INT(11) NOT NULL, number INT(11) NOT NULL, PRIMARY KEY (date, person_groupid), CONSTRAINT FOREIGN KEY (person_groupid) REFERENCES _person_group (id) ) Engine=InnoDB;] [Native code: 1005] [Native message: Can't create table 'jethro.person_group_headcount' (errno: 150)]
SYSTEM ERROR (ERROR)
Database Error: _doQuery: [Error message: Could not execute statement] [Last executed query: CREATE TABLE person_group_headcount ( date DATE NOT NULL, person_groupid INT(11) NOT NULL, number INT(11) NOT NULL, PRIMARY KEY (date, person_groupid), CONSTRAINT FOREIGN KEY (person_groupid) REFERENCES _person_group (id) ) Engine=InnoDB;] [Native code: 1005] [Native message: Can't create table 'jethro.person_group_headcount' (errno: 150)]

Any ideas. I'm keen on evaluating this for my church with probable move to easy jethro as we grow

Ability to delete a person/family completely

This has been asked for various times. Archiving a person is basically the same, but if you're using a hosted system where you have limited person records in your plan, you will find yourself wanting to delete people altogether for cost reasons.

Deleting a person will delete all the notes etc associated with them.

If a person is a staff member they will never be able to be deleted (because they may have had notes assigned to them etc).

Alternative name field

Somebody might be known as "Tom" but their email address says "Thomas". Or somebody has a Chinese name and an English name. Therefore it could be useful to have an extra field in the person record "Alternative name", which would be examined when searching for a person but not generally shown in lists etc.

Archived group memberships not visible on user admin page

Hi,

Say I have a group, called 'Test Group', and then restrict a user to that group via Admin -> User Accounts:

screenshot

If I then Archive the group, the admin view for our use changes to this:

screenshot

Instead of seeing the archived group's name, we see an empty field.

This gives the impression that there are NO group-level restrictions on the user, i.e. that the user can see all groups. But actually the user can see no groups - they're limited to just one (archived) group. Super confusing!

Finally, if one clicks 'Update Account' on a user with an archived group, the archived group membership is lost:

screenshot

By doing so, one may have inadvertently given a user access to all groups.

Action plan updates failing to save

Create an action plan that sets a date field including a comment "A"
Now re-open the action plan and change the comment for the date field to "B" and save
Then execute the action plan for a person
That person's date field has comment "A" rather than "B"

[CEC]

Feature request - Ability to show multiple people on a map

For various purposes we often export CSV files from Reports to create maps with BatchGeo. However, given that Jethro already generates maps for individuals, could we add a feature in the drop down from any list of people to 'Show in Map' that would show the location of those individuals in a map. This would eradicate the error-prone export step and provide immediate feedback on where groups of people are located.

Mail merge has results in bad order

If you have a list of persons sorted alphabetically
then you select them all
then choose the "mail merge a document" bulk action
then in the resulting document, the persons are listed in order of ID

  • not the order they were displayed in the browser.

Mailto multiple addresses does not work with outlook

Jethro's mailto links separate multiple addresses with commas.
Outlook, by default, does not recognise this - it wants semicolon as the separator.
It seems there is debate about which of these approaches is the standard (if either).

Todo: Check if other major clients (gmail, thunderbird, mac mail) accept semicolons; if so, change to semicolons.

In the process, we should abstract the writing of the mailto links to a single over-ridable function so that those with special needs can override.

Handling guests from other congregations when recording attendance

Background: Sometimes a pastor is recording attendance at congregation A and they notice that a person who belongs to congregation B is present. They want to mark that person as present for the Sunday (even though they attended a different-to-normal service).

Currenly, the pastor has to open up the whole attendance for congregation B, find the applicable person and click "present".

It would be easier if, at the bottom of the mark-attendance form, there was a way to search for extra persons to record their congregational attendance for that date.

This would only work for congregational attendance, not for group attendance.

DB error when sorting person report by attendance

Database Error: doQuery: [Error message: Could not execute statement]
[Last executed query: SELECT p.id as ID, p.first_name AS 'p.first_name', p.last_name AS 'p.last_name', p.id as view_link, p.id as checkbox, (SELECT CONCAT(ROUND(SUM(present)/COUNT(
)_100), "%")
FROM attendance_record
WHERE date >= '2015-03-30'
AND groupid = 0
AND personid = p.id) AS Attendance
FROM person p
JOIN family f ON p.familyid = f.id

                            WHERE
                                    (p.status IN ('0', '1'))
    AND (p.age_bracket = '0')
    AND ((SELECT SUM(present)/COUNT(*)*100
                                                                    FROM attendance_record
                                                                    WHERE date >= '2015-03-30'
                                                                    AND groupid = 0
                                                                    AND personid = p.id) < 50)
                            GROUP BY p.id ORDER BY `attendance_percent`, p.last_name, p.first_name]

[Native code: 1054]
[Native message: Unknown column 'attendance_percent' in 'order clause']

FR: Copy last week's run sheet

When editing a run sheet, a new button "Copy service" which copies all the items from this congregation's previous service into the current run sheet.

Useful if service structure is mostly the same each week; You can remove/replace items which change (eg songs).

See also: "Service sheet templates" feature request.

Display Attendance CSV export broken?

Hi,

We're running 0.9.2 Jethro. It seems that the CSV export for Display Attendance is returning just a single record (the first person in _person), regardless of how many users are checked. To replicate:

  • Go to Attendance -> Display
  • Pick any congregation/group and time period which returns some attendances
  • Check more than one user
  • In the 'With selected people' drop-down, pick 'Export as CSV'

Only a single line of CSV is returned.

Using Firefox dev tools, I can extract the query as a curl command, which shows the result:

jturner@jturner-desktop ~ $ curl 'https://jethro.coastec.net.au/?call=csv' -H 'Host: jethro.coastec.net.au' -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' --compressed -H 'Referer: https://jethro.coastec.net.au/?view=attendance__display&age_bracket=&for_type=groupid&groupid=243&start_date_d=19&start_date_m=1&start_date_y=2015&end_date_d=06&end_date_m=2&end_date_y=2015&params_submitted=1' -H 'Cookie: JethroSession=$REDACTED' -H 'Connection: keep-alive' --data 'personid%5B%5D=363&personid%5B%5D=439&personid%5B%5D=585&personid%5B%5D=166&personid%5B%5D=536&personid%5B%5D=537&merge_type=person'
ID,"FIRST NAME","LAST NAME",GENDER,"AGE BRACKET",CONGREGATION,STATUS,EMAIL,"MOBILE TEL","WORK TEL","CONTACT REMARKS","DATE OF LAST STATUS CHANGE","CREATED DATE",CREATOR,FAMILY_NAME,ADDRESS_STREET,ADDRESS_SUBURB,ADDRESS_STATE,ADDRESS_POSTCODE,HOME_TEL,CONGREGATION
1,Chris,Ekins,Male,Adult,Arvo,Regular,[email protected],"0434 199 553",,"Original Launch Team (Founding Pastor)

",,"11 Dec 2012 6:07pm","Chris Ekins (#1)",Ekins,"28 Belton Way",Forster,NSW,2428,,Arvo
jturner@jturner-desktop ~ $ 

Song Usage Report

Based on saved run sheets

List all the components of type [song] that have been used in the last [3] months for congregations [X, Y]
and for each one how many times it's been used.

Useful for CCLI reporting.

Outdated Jethro download link on Sourceforge

Hi,

A minor nit: the old sourceforge page still has 2.7.2 as the latest download:

http://sourceforge.net/projects/jethro-pmm

Also, the page http://jethro-pmm.sourceforge.net/download.php is blank:

screenshot

I get a 200 response with a bizarro corrupt HTTP header, with the URL 'https: //github.com/tbar0970/jethro-pmm/releases' tossed in amongst the response headers:

jturner@jturner-desktop ~ $ curl -v http://jethro-pmm.sourceforge.net/download.php
* Hostname was NOT found in DNS cache
*   Trying 216.34.181.96...
* Connected to jethro-pmm.sourceforge.net (216.34.181.96) port 80 (#0)
> GET /download.php HTTP/1.1
> User-Agent: curl/7.35.0
> Host: jethro-pmm.sourceforge.net
> Accept: */*
> 
< HTTP/1.1 200 OK
* Server Apache/2.2.15 (CentOS) is not blacklisted
< Server: Apache/2.2.15 (CentOS)
< Vary: Host
< https: //github.com/tbar0970/jethro-pmm/releases
< Cache-Control: max-age=172800
< Expires: Fri, 06 Feb 2015 02:33:29 GMT
< Content-Type: text/html
< Content-Length: 0
< Date: Wed, 04 Feb 2015 02:33:29 GMT
< X-Varnish: 488059601
< Age: 0
< Via: 1.1 varnish
< Connection: keep-alive
< 
* Connection #0 to host jethro-pmm.sourceforge.net left intact

Flexible assignee for action plan notes

Action plans can be configured to create notes.

At the moment, you have to select an assignee for those notes when you define the action plan.

It would be good if instead you could select assignee when executing the plan.

Email parsing problem

Hi Tom,
I've just struck a new problem with the current version of Jethro:
I have a new person to enter, their email address is a little different: [email protected]
Jethro won't accept this - I assume because it's one of the newer tld's

Easy to fix?

Cheers

Neil A.
(PS, sorry, no idea how to add the labels, etc to this post...)

upgrade problem

Hi. Just upgraded from 2.7.1 to 2.9.4
(Had the same problems backing up DB that Neil Atwood had but have got through those ok now)
Ran the SQL upgrades for 2.8 & 2.9 and edited the new conf.php

However, when try to run I get an error message: "Fatal error: Could not generate random string in /home/kensingt/public_html/jethro/jethro-pmm/include/general.php on line 617"

Any ideas?

Thanks
Colin Watts

PS: I also need to use the MDB2 package if that is relevant

_person_group table not created on new installation

On a nice shiny new empty database, I fill in the initial user form, and then I see:

_doQuery: [Error message: Could not execute statement]
 [Last executed query:
     CREATE TABLE person_group_headcount ( `date` DATE NOT NULL, `person_groupid`     INT(11) NOT NULL, `number` INT(11) NOT NULL, PRIMARY KEY (`date`, `person_groupid`), CONSTRAINT FOREIGN KEY (`person_groupid`) REFERENCES `_person_group` (`id`) ) Engine=InnoDB;] [Native code: 1005] [Native message: Can't create table 'jethroch_jethro.person_group_headcount' (errno: 150)]

This is because the _person_group table does not yet exist. I can't find in the source where it is meant to be created.

mysql> show tables;
+--------------------------------+
| Tables_in_jethroch_jethro      |
+--------------------------------+
| abstract_note                  |
| action_plan                    |
| attendance_record              |
| congregation                   |
| congregation_headcount         |
| congregation_service_component |
| family                         |
| family_note                    |
+--------------------------------+
8 rows in set (0.00 sec)

Jethro loses data when marking attendees with over 1000 people

When the Record Attendance form has over 1000 people, Jethro will fail to record the attendance selections of the last ones. In the Apache error log we see:

PHP Warning:  Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0, referer: https://jethro.coastec.net.au/?view=attendance__record&age_bracket=&for_type=congregationid&congregationid%5B%5D=1&congregationid%5B%5D=2&congregationid%5B%5D=&attendance_date_d=08&attendance_date_m=2&attendance_date_y=2015&params_submitted=1

PHP is silently restricting the submitted HTTP POST data to 1000 users (even if most are 'unknown').

Reports: Show groups without filtering by group

Currently, if you configure a report which shows people who are in then you can add a column in the results which shows exactly which of those groups each person is in. Eg if you filter by people in then it can list the exact growth group they're in.

It would be useful to be able to list groups like this without having to filter by groups. Then you could list a whole congregation and those who are in a growth group have the growth group name next to them and those who are not in a group have an empty cell.

Ditto for showing attendance at the group.

FR: Abbreviate names in public roster

Some people don't like their whole name being displayed in a public roster.
We could add a setting (where?) to abbreviate names to eg "Tom B" in the public roster.

Potential issue: If you have "Tom Barrett" and "Tom Baker". Tricky to solve this one.

FR: Terms and Conditions for member interface

It would be good to allow configurable T&Cs to be displayed on the member interface at some point.
"You may only use the data here for church business, and not pass it on to anyone" etc.

Feature request - Attendance report for more than one group

Problem and rationalle:

At the moment one can input and display attendance for more than one congregations, but not more than one group. So, if you have groups to maintain records of attendance at (for example) many Bible Study Groups, it is not currently possible to input or display these in one go. But, for tracking attendance over multiple related groups this is a really useful feature ... and the functionality must be basically similar as the implementation for congregations.

Feature Request:
So, the feature request is simple: provide the ability to report attendance over a number of groups at the same time, in the same way as we already have for congregations.

FR: Ability to add people to groups when adding new family

New field for person groups: Offer this group when creating a new family [ Yes - ticked; Yes - unticked; No ].
When creating a new family, the groups that have this field set to "yes" will be listed with (ticked/unticked) checkboxes.
When the new family is saved, its members are added to whatever groups were ticked.

Undefined index when importing some CSVs

Undefined index: email
Line 80 of /home/jethro/code/2.9.4/templates/person_list.template.php

Request: Array
(
[view] => admin__import
[groupid] => 55
)

Array
(
[0] => Array
(
[file] => /home/jethro/code/2.9.4/templates/person_list.template.php
[line] => 80
[function] => _handleError
[class] => System_Controller
[type] => ->
[args] => Array
(
[0] => 8
[1] => Undefined index: email
[2] => /home/jethro/code/2.9.4/templates/person_list.template.php
[3] => 80
[4] => [Object/Array]
)

   )

[1] => Array
(
[file] => /home/jethro/code/2.9.4/db_objects/family.class.php
[line] => 267
[args] => Array
(
[0] => /home/jethro/code/2.9.4/templates/person_list.template.php
)

       [function] => include
   )

[2] => Array
(
[file] => /home/jethro/code/2.9.4/include/db_object.class.php
[line] => 503
[function] => _printSummaryRows
[class] => family
[type] => ->
[args] => Array
(
)

   )

[3] => Array
(
[file] => /home/jethro/code/2.9.4/db_objects/family.class.php
[line] => 222
[function] => printSummary
[class] => db_object
[type] => ->
[args] => Array
(
)

   )

[4] => Array
(
[file] => /home/jethro/code/2.9.4/views/view_10_admin__5_import.class.php
[line] => 292
[function] => printSummary
[class] => family
[type] => ->
[args] => Array
(
[0] =>
[1] => [Object/Array]
)

   )

[5] => Array
(
[file] => /home/jethro/code/2.9.4/include/system_controller.class.php
[line] => 153
[function] => printView
[class] => View_Admin__Import
[type] => ->
[args] => Array
(
)

   )

Feature request - Export Service Run Sheet for import by EasyWorship

As soon as I demo'd the Service Run Sheet functionality to some of our worship team members the first thing they asked was 'Can this be exported for import by EasyWorship?'. I guess there are too many different service projection programs out there, and so this may be a 'feature too far', but it seems sensible to try to provide some kind of integration between the Run Sheets planned and the software used to project those words within the service.

So, really a 'long grass' suggestion - for when someone has a lot of spare time!! And, of course, there may be a better 'open source' target.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.