tbar0970 / jethro-pmm Goto Github PK
View Code? Open in Web Editor NEWJethro Pastoral Ministry Manager
License: GNU General Public License v3.0
Jethro Pastoral Ministry Manager
License: GNU General Public License v3.0
Feature request: Ability to mark attendance just for persons with status X within congregation Y
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
(
)
)
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.
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¶ms_submitted=1
PHP is silently restricting the submitted HTTP POST data to 1000 users (even if most are 'unknown').
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:
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¶ms_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 ~ $
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.
In the `service program' menu I create some services with 1 Corinthians 12 as the passage.
Save, and then click on the bible reference. It gets rewritten to http://www.biblestudytools.com/nrs/passage/?q=1-cor+12 which gives
No Search Results found. Please try another search.
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)
It would be valuable to
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.
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:
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
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.
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.
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]
)
)
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.
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.
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]
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
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.
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.
...without being indicated as archived.
It would be ideal to have a "show/hide archived" option somewhere
Failing that, grey out the archived people and show them last.
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.
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.
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.
Steps to reproduce: Run a report showing all people who have suburb = xyz.
No results.
The ability, when recording attendance for a congregation/group, to also record a total headcount (by age bracket?)
See https://sourceforge.net/p/jethro-pmm/discussion/728894/thread/4a22a53e/?limit=25#f8e0 and elsewhere.
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.
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
If you create more than 50 action plans
then only the first 50 appear in the list when you try to execute them.
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
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.
Edit a person and add a date field value
Then view the person.
The "dates" row is blank.
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:
else
When you are recording/displaying attendance, there are several dropboxes for choosing congregations.
If you leave the first one blank ('--choose--') and choose a congregation in the second one, you get a fatal error.
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.
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.
but from a Member Interface view archived persons & families should not be visible at all.
It appears that individually archived people are not visible, but when an entire family has been archived at the family level then the members are still visible.
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']
Hi,
Say I have a group, called 'Test Group', and then restrict a user to that group via Admin -> User Accounts:
If I then Archive the group, the admin view for our use changes to this:
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:
By doing so, one may have inadvertently given a user access to all groups.
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.
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.
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
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...)
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).
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.