Code Monkey home page Code Monkey logo

workstand's People

Contributors

dependabot[bot] avatar drwlrsn avatar fexd avatar foltra avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

workstand's Issues

Guardian field doesn't save when entered on PC

When entering youth as a new member onto Workstand on a PC and the Guardian field is filled out, the filled guardian data does not seem to save. Entering into the field again after initial saving seems to save the field properly.

Report Page with Basic Statistics

Would be nice to have the ability to see basic stats / data about visitations.

For example:

  • average visits per shift / per week / per month
  • average member visits (above)
  • average volunteer visits (above)

Guardian payment type

Generally some parents just accompany their children. These members should not have to pay. We should create payment type for this.

Add support for translation in forms

The new member member form and new membership form should be prepared for some sort of translation service. Currently there is a branch implementing part of this.

Fix Security Alerts

This is first noted in #81 , but opened a new ticket because it's quite a list.
Partial list sorting by severity:
Screen Shot 2019-06-12 at 5 14 49 PM

Github now offers to "send automatic pull-requests" for these alerts.

Sign-in search does not handle spaces

For example, searching a common name like 'Robert' will return the maximum five results, but if the Robert we are looking for is not in that list and we try and use the last name, we no longer get any more refined results

Autocomplete will not close on tablet

When a member or potential member walks in, often it's easiest to use the autocomplete on the Sign-in page to search for their membership. On tablet, after searching the autocomplete drop down does not close until the result is clicked on.

Munge sign-ins

Conditions

if membership has no previous sign-in

create new sign-in on create date if a Tuesday or Saturday else the closest precious T or S

Request: Add More Purposes

Some users are visiting for different reasons we would like to track. Add these options:

  • parts
  • buy bike
  • tour / visit

Licence choice

So we should probably pick a licence for this thing.
I am partial to the MIT and BSD 2-Clause. This most likely because I am lazy and I don't like reading long licences.

@FeXd thoughts?

Name

I picked a name. It's pretty decent. A URL exists for it and there is no project on GH with the same name.

I am still open to suggestions tho. I was hoping for some sort of animal pun like Velociraptor so we could get a cool logo. Pinging @FeXd

images/tick.svg (Not Found)

GET https://workstand.bikelover.org/images/tick.svg?embed 404 (Not Found)

This occurs when you select a member to edit, or select suspend and/or ban for a member, and click on save, etc.

Images are under static, however, there is no such image.

New member process

@FeXd, I am trying to nail down how a new membership would be created. Right now I have three concepts that work together to create a full membership: registration.models.Member, core.models.Membership, and core.models.Payment.

  • Member is responsible for the personal details and acknowledgements.
  • Membership keeps track of the status of the member. E.g. the date the membership was created, when it expires, etc.
  • Payment assigned to membership to determine how it was paid for.

My gut feeling for creating a new member would be to create a new Member and automatically create and add to Member a Membership. This Membership instance would have payment = None and be considered unpaid. After saving both, we could redirect to a page with payment options and maybe dispatch an email with the payment options as well.

Payment would still have to be manually assigned, but in the future we can enhance this to allow for the automatic buying and renewal of memberships.

static content not being served when using production was (Add https to webpack)

Add https to webpack-dev-server or ensure workstand is serving those assets.

In issue #69 you note:

- Mixed Content: The page at 'https://workstand.bikelover.org/members/' was loaded over HTTPS, but requested an insecure script 'http://192.168.99.100:3000/assets/bundles/members-07458b6f6b11b22dd314.js'. This request has been blocked; the content must be served over HTTPS.
- Mixed Content: The page at 'https://workstand.bikelover.org/members/' was loaded over HTTPS, but requested an insecure script 'http://192.168.99.100:3000/assets/bundles/babelPolyfill-07458b6f6b11b22dd314.js'. This request has been blocked; the content must be served over HTTPS.

Those assets are not being accessed simply because they are not being served from a secure server.

Involvement relationship fields

Members of the BCBC would like to express what type of involvement they would like. This information can be used to contact members about their interests.

Types of involvement can include:

  1. receive newsletters
  2. volunteer
  3. use shop to repair my bike
  4. build a bike in the shop
  5. social and outdoor events

When creating a new member, or updating one, they should be added to our MailChimp lists.

Merge Users

Occasionally a user has multiple accounts created (by accident) and both users have sign-ins. It would be nice if we were able to merge users and not lose any visitation data.

New Member Creation - success / failure is not clear

After filling out the form, if a user forgets postal code, the user is presented with the same form, but it appears to have saved.

Suggestion: A large Green Success banner or a large Red Failure banner should be displayed at top of page after creation is attempted.

Larger Font Sizes

Font sizes should be increased across the entire application for easier reading on mobile tablet devices. Currently fonts are quite small.

Currently should be branched off of spa and we can merge later. Try to only touch styling files.

Date Picker won't skip back years

When the date picker is presented; you can click on the date (left) to go to year select mode; after selecting a date, if a user clicks ok, the entire prompt is closed and the date in the form is unchanged.

Enhancement: provide initial data

It would really help draw more attention to this project if there was some initial data to quickly spin up a working demo or development instance. Normally this is done with initial data either as a fixture or sql. Back on February 22, 2017 you said,

Some dev data is defs on my todo list. I have a fairly long list at the moment tho. I am trying to get the bicycle tracking portion done before spring hits...

I think you are beyond that point now, so I am holding you to your todo list, todo this sooner, rather than later!

Youth payment type

A youth member does not have to pay for membership. A payment of None or Unknown does not make sense for youth members. So we should add a youth payment type.

Update README

Now that I have moved over to a docker-compose, the README needs to be updated to describe how to get the project running locally.

Requests: Change User Form Information

We haven't been using address for quite some time. Would be nice to simplify the form and only collect:

  • Name (required)
  • Postal Code (not required)
  • Contact (email / phone / etc - required)
  • Youth? (yes / no) - (specifically, are they under 18)
  • Guardian Name (required if youth)
  • Guardian Contact (required if youth)

New member form displays incorrect error message for name

screen shot 2018-04-29 at 11 36 23

'First name' and 'Last name' display an error message about user entries being too long even when there is nothing entered. The form should display that the user entry is too short (and minimum length perhaps) up until the point that requirement is satisfied. It should display "too long" (and maximum length) until the point that requirement is satisfied. Maybe it should do lots of other stuff too :)

Remove tests for state transition

We now do async validation, so tests that rely on validation to prevent a transition do not work.

# def test_assessed_cannot_transition(self):
# bike = mommy.make('bike.Bike')
# client = APIClient()
# client.force_authenticate(user=self.user, token='blah')
# result = client.put(f'/api/v1/bikes/{bike.id}/assessed/')
#
# self.assertEqual(result.status_code, status.HTTP_400_BAD_REQUEST)
# def test_assessed_still_cannot_transition(self):
# data = {
# "colour": "black",
# "make": "Miyata",
# "serial_number": "12345676",
# "source": Bike.COS_BIKE_DIVERSION_PILOT,
# "donated_by": "Greg",
# "donated_at": "2017-01-01",
# }
# bike = Bike.objects.create(**data)
# client = APIClient()
# client.force_authenticate(user=self.user, token='blah')
# result = client.put(f'/api/v1/bikes/{bike.id}/assessed/')
#
# self.assertEqual(result.status_code, status.HTTP_400_BAD_REQUEST)

# def test_available_cannot_transition(self):
# data = {
# "colour": "black",
# "make": "Miyata",
# "serial_number": "12345676",
# "source": Bike.COS_BIKE_DIVERSION_PILOT,
# "donated_by": "Greg",
# "donated_at": "2017-01-01",
# "size": Bike.SMALL,
# "price": '68.00',
# "state": BikeState.ASSESSED
# }
# bike = Bike.objects.create(**data)
# client = APIClient()
# client.force_authenticate(user=self.user, token='blah')
# result = client.put(f'/api/v1/bikes/{bike.id}/available/')
#
# self.assertEqual(result.status_code, status.HTTP_400_BAD_REQUEST)

Sign-in modal after clicking sign-in

When signing in a member, after clicking Sign-in a modal or something displaying the following:

  1. Notes
  2. Status
  3. Membership status (Active, Expired, Expiring Soon)

Required Fields are not highlighted

It is not clear that email & postal code are required when entering a new user.

Solution: Make required fields red or have asterisk beside them.

Separate Inactive Members

When sorting for members, it would be nice to not have inactive members fill the list first.

Could they be listed last? Or through another search?

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.