Giter VIP home page Giter VIP logo

django-badger's Introduction

django-badger's People

Contributors

askvictor avatar huxley avatar l-hedgehog avatar lmorchard avatar martinsam avatar mozilla-github-standards avatar mythmon avatar rlr avatar toxicwar avatar willkg 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  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  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  avatar  avatar  avatar  avatar  avatar

django-badger's Issues

Badge delegates / multiple approvers

Allow the creator of a badge to specify a group of other users. These users should be granted the ability to do all or almost all of the things the badge creator can do, eg:

  • approve nominations,
  • issue awards,
  • manage claim codes,
  • edit (?)
  • delete (?)

Copying from my old TODO notes:

  • List of users managed by badge creator who can
    • Issue awards
    • Approve nominations
  • Just use plain old Django groups?
    • Need a non-admin UI to manage the group associated with a badge.
    • Should be possible to share the same group between badges. eg. assign
      multiple badges to the same user group

Tag descriptions / Badge sets

This issue may highlight the need for a more explicit user-owned Badge set concept, for which tags are really just kind of a grouping hack. A Badge set would be created for an organization or an event, allow a delegate group, and maybe have a mechanism where badge creators can be asked whether or not they wish one or more of their badges to be included in the set.

Might be handy to enable a verbose description of a tag, display that on the tag page. This can help describe an event using the tag, or provide more context in general.

An issue is that tags belong to no one, so who has permission to edit the description? Maybe add support for a kind of tag owned by a user and a group of delegates. Those people could:

  • edit the tag description,
  • control access to add the tag to badges,
  • use the tag to extend certain permissions over the tagged badges (eg. claim code access, etc)
  • grant claims to badges in the tag / group

Not sure if this is overloading tags too much. Descriptions could be useful, at least.

Offer to push new badges to backpack from profile view

Currently, there's just a "push to backpack" button on award view page. But, the issuer API allows for pushing multiple badges at once. So, it might be nice to:

  • track which badges have been pushed to the backpack already,
  • prompt the user to push new badges to backpack from profile in one go.

Do this just from profile view? Or, whenever badges are awarded? That is, never push just one badge, always prompt / offer to push all new badges.

Should this be a button in need of clicking on profile, or should the user always be prompted / guided toward this whenever there are new un-pushed badges? (Maybe a checkbox, never display this prompt again?)

Invite-only mode for site

badg.us is wide open for sign in. Might be nice to add an invite-only option for other instances of the site

Nomination explanation field

There should be a freeform text field that nominators can use to explain why someone was nominated for a badge

Badge content localization

Is there a decent way to accept translations for badge content in the DB? These might be leads:

  • django-modeltranslation
    • Adds per-locale columns to existing model
  • transdb
    • Needs modification / subclass of model
    • Adds a blob column with JSON structure containing translations

Comments on badges, awards, nominations

Badges, awards, and nominations are social objects. Allow discussion on each of them.

  • Support a per-object checkbox to enable/disable comments
  • Object owner and superuser should be able to moderate comments
  • Spam protection? Akismet?
  • Notifications?

Expiration time on Award

Allow some badge awards to expire after a period of time. Need to warn awardee in advance of expiration?

Update with OBI changes

  • salty hashes instead of email addresses
  • delete / disable in-house code for baking badges?

Private profiles

Implement a checkbox on a user profile that removes the user from public lists. Maybe also restrict profile display, even if you know the URL. This could let a user share a few badges, if they like, but otherwise hide for the most part.

Award explanation field (aka evidence)

There should be a freeform text field that awarders can use to explain why a badge was awarded. The award page is where the Evidence field points in the OBI JSON, so this description should serve for that.

Second / like a public nomination

Allow some nominations to be public-visible, accept likes or seconds to reflect support for the nomination. Possibly auto-approve nomination after X number of seconds / likes have been accumulated.

Merge django-badger and django-badger-multiplayer

The idea of django-badger-multiplayer as an "addon" is a nifty idea, but requires some hacks and awkward things. Maybe merge the projects? If merged, is there a way in Django to not create certain DB tables for models that would go unused in a non-multiplayer installation? (ie. Nominations)

Implement nomination rejection

There's no way to reject a nomination right now. Implement that, along with:

  • a text field to supply a reason why.
  • notifications to nominator, but maybe not nominee

Support subdomains for separate issuer origins

On badg.us, everything happens on the same domain / origin. It could be interesting to support username-based subdomains to offer separate issuer domains. So, you'd have badges coming from origins like:

  • lmorchard.badg.us
  • deusx.badg.us
  • johndoe.badg.us

Each of those domains would be a "home page" for that user's created badges, and OBI JSON assertions would include separate origins for each issuer.

Basing this on username could be a problem for groups / institutions, though. That places all power with one user, when there should be a number of people involved. Maybe the origin should be an arbitrarily-named thing that any user can create and share with delegate groups? Name it after the user by default, but allow the name to be changed.

Refine front page header

  • Add a button to "have a claim code?" form
  • Immediately award badge on claim, do not pass GO^Wbadge claim page
  • Neaten up layout so that elements in the 3 columns align better.

Data visualization on the badge tag page

The badge tag page could serve as an interesting focal point for badges at an event. Think about adding more data to the page, such as:

  • Recent awards for badges tagged "foo" (mostly done)
  • People earning badges
  • Badges not yet earned by anyone
  • badges over time, % of badges earned

More things? The general idea is to give an at-a-glance view of badge activity for a tag, not just the list of badges.

Couldn't get autodiscover to run

Not sure what I have done wrong but autodiscover in init.py was not running, so I added a call to autodiscover() at the bottom of the file and all is well.

browserid broken

The BrowserID signin button on the left side of the claim page doesn't work - it gets a CSRF error. The login form is probably missing the csrf token?

Option to auto-accept all nominations

A user might not want to manually accept award nominations that have been approved. Offer a profile checkbox to auto-accept any award nominations, possibly also expose that checkbox on the acceptance dialog (eg. Never show this again, accept all awards in the future?)

Fix sign-in immediately after sign-out

Attempting to sign in immediately after signing out seems broken. Currently, I redirect to a sign in page after sign out to avoid the bug. I think its that CSRF session data is destroyed on logout, thus breaking the sign in forms.

Use Amazon S3 for OBI JSON assertions

When #6 is implemented, implement the ability to move storage of OBI assertions to S3 from a local filesystem. This will help keep awarded badge assertions hosted in case the Django site ever needs to be taken down for any length of time.

Hypermedia API

Need some work to offer a read/write hypermedia API for external apps:

  • create / edit / delete badges
  • issue awards
  • issue nominations

Readable feeds exist for most everything else.

Authentication? Use OAuth? Use a valet API id/key - arbitrary generation? per badge?

(FWIW, hypermedia API is what the cool kids call REST, these days. Everyone's using the term as a buzzword for non-REST things, so they can have it.)

Implement award hiding

When available, #10 will allow awards to be deleted. Also allowing awards to be hidden can also be a less-severe way to get awards out of public lists without entirely rejecting them.

Option to auto-approve all nominations

Someone might create a badge and then be disinclined to manually approve all nominations or designate a delegate group to take care of it. Offer the option to just auto-approve all incoming nominations.

Site localization

I'm trying to ensure all strings are marked up for l10n while building the site, but have not yet made a serious attempt to extract strings or try the site out in other languages. Spend some time getting this all working.

"Help Wanted" system for content collaboration

See also: http://decafbad.com/2010/07/badger-article/#section-92

Making badge images & descriptions can be hard. It would be nice if there was a way to flag one or more parts of a badge as in need of help from writers, artists, etc. Then, offer a page where people can see badges in need of help and submit suggestions that badge owners can opt to apply.

Copying from my notes:

  • Maybe a django app separate from Badger altogether
  • Flag a content object and certain fields as in need of help
  • Search by content type (eg. text, image)
  • Description of help desired (eg. design, review, rewrite, delegation)
  • Accept help and apply changes

Claim multiple award codes in a batch

From home page, accept multiple space or comma separated claim codes. Ensure user is signed in. After that, process claim for each code without routing through claim detail page.

Also, look into combining the award emails into one email when a batch is issued at once. Currently, each award will result in a separate email for each.

Maybe this process?

  • Claim 1 code from front page
  • Process that claim, confirmation page offers multiple claim codes for further batch?

Public vs secret nominations

Whether nominations are public or secret is kind of fuzzy right now. Implement a checkbox that can make a nomination public to all, and send notifications to the nominee. If disabled, the nomination should be visible only to the nominator and badge owners.

Update vanilla Django templates

The itch I'm scratching involves Jinja2 templates and Mozilla's Playdoh conventions. So, the vanilla Django templates fall out of date. Revisit them and make sure the app works with vanilla Django.

Redeemable badge awards

Use case: "lorchard owes you a beer". Bring the award to me, and I scan the QR code. When redeemed, the badge award goes away or is marked as redeemed. Might be a confusing idea, a claim of an already-claimed award.

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.