blender-id.git
10 days agoSource ~/.profile to get the proper $PATH master
Sybren A. Stüvel [Mon, 15 Apr 2019 12:40:50 +0000 (14:40 +0200)]
Source ~/.profile to get the proper $PATH

Without this, ~/.local/bin/pipenv won't be found.

10 days agoAllow blank 'privacy policy agreed' date on User production
Sybren A. Stüvel [Mon, 15 Apr 2019 12:09:19 +0000 (14:09 +0200)]
Allow blank 'privacy policy agreed' date on User

This allows us to edit a user's info when they haven't agreed to the
privacy policy yet.

5 weeks agoProperly pass parameters to view class
Sybren A. Stüvel [Fri, 15 Mar 2019 09:57:54 +0000 (10:57 +0100)]
Properly pass parameters to view class

5 weeks agoFix initial password form
Sybren A. Stüvel [Fri, 15 Mar 2019 09:54:58 +0000 (10:54 +0100)]
Fix initial password form

The password form that people use to set their initial password (so as part
of the registration flow) was using the wrong template & form class.

6 weeks agoUI: Remove any usage of Font Awesome in templates
Francesco Siddi [Wed, 13 Mar 2019 15:52:37 +0000 (16:52 +0100)]
UI: Remove any usage of Font Awesome in templates

We removed the Font Awesome icons library a long time ago, but many
pages were still making use of the fa fa-icon markup.
This commit removes any markup related to Font Awesome.

2 months agoRemoved usage of deprecated password_reset_complete view
Sybren A. Stüvel [Tue, 29 Jan 2019 10:19:07 +0000 (11:19 +0100)]
Removed usage of deprecated password_reset_complete view

Just a tiny step towards Django 2.x

3 months agoIntroducing documentation
Francesco Siddi [Fri, 18 Jan 2019 10:28:09 +0000 (11:28 +0100)]
Introducing documentation

Instruction on how do build and deploy docs are included.

3 months agoUpdate Pipfile.lock
Francesco Siddi [Fri, 4 Jan 2019 14:23:47 +0000 (15:23 +0100)]
Update Pipfile.lock

3 months agoAdded missing migration
Sybren A. Stüvel [Fri, 4 Jan 2019 11:56:52 +0000 (12:56 +0100)]
Added missing migration

3 months agoAdmin: add nickname field to user creation form
Sybren A. Stüvel [Fri, 4 Jan 2019 11:54:56 +0000 (12:54 +0100)]
Admin: add nickname field to user creation form

Without being able to set the nickname we can't create users.

3 months agoFixed 'Find in Cloud' admin link
Sybren A. Stüvel [Wed, 2 Jan 2019 09:34:21 +0000 (10:34 +0100)]
Fixed 'Find in Cloud' admin link

3 months agoNPM/Gulp failure fix
Sybren A. Stüvel [Wed, 2 Jan 2019 09:41:57 +0000 (10:41 +0100)]
NPM/Gulp failure fix

Overnight Gulp broke. Running `gulp` gave this error:

internal/util/inspect.js:31
const types = internalBinding('types');
              ^

ReferenceError: internalBinding is not defined
    at internal/util/inspect.js:31:15
    at req_ (/home/sybren/workspace/blender-id/node_modules/natives/index.js:137:5)
    at require (/home/sybren/workspace/blender-id/node_modules/natives/index.js:110:12)
    at util.js:25:21
    at req_ (/home/sybren/workspace/blender-id/node_modules/natives/index.js:137:5)
    at require (/home/sybren/workspace/blender-id/node_modules/natives/index.js:110:12)
    at fs.js:42:21
    at req_ (/home/sybren/workspace/blender-id/node_modules/natives/index.js:137:5)
    at Object.req [as require] (/home/sybren/workspace/blender-id/node_modules/natives/index.js:54:10)
    at Object.<anonymous> (/home/sybren/workspace/blender-id/node_modules/graceful-fs/fs.js:1:99)

Upgrading 'natives' to 1.1.6 helps work around this. See
https://github.com/gulpjs/gulp/issues/2162#issuecomment-385197164 for more
information.

4 months agoBadger API: allow granting/revoking badges by numerical User ID
Sybren A. Stüvel [Tue, 18 Dec 2018 16:32:59 +0000 (17:32 +0100)]
Badger API: allow granting/revoking badges by numerical User ID

Next to matching on email address, users can now also be matched by
their user ID. This keeps the URL stable even when the user changes
their email address.

The URL is still the same, so
`/api/badger/{grant|revoke}/{badge}/{email-or-uid}`

5 months agoEnable Google Analytics only if tracking code is set
Francesco Siddi [Thu, 15 Nov 2018 18:08:04 +0000 (19:08 +0100)]
Enable Google Analytics only if tracking code is set

5 months agoUpdate Google Analytics code
Francesco Siddi [Thu, 15 Nov 2018 17:55:28 +0000 (18:55 +0100)]
Update Google Analytics code

5 months agoSolved more Django deprecation warnings
Sybren A. Stüvel [Tue, 13 Nov 2018 14:36:44 +0000 (15:36 +0100)]
Solved more Django deprecation warnings

5 months agoClarified unit test
Sybren A. Stüvel [Tue, 13 Nov 2018 14:32:29 +0000 (15:32 +0100)]
Clarified unit test

5 months agoReverted part of 7d07c1a, I removed a bit too much
Sybren A. Stüvel [Tue, 13 Nov 2018 14:30:32 +0000 (15:30 +0100)]
Reverted part of 7d07c1a, I removed a bit too much

5 months agoT57751: Streamline Login Flow
Sybren A. Stüvel [Tue, 13 Nov 2018 14:18:17 +0000 (15:18 +0100)]
T57751: Streamline Login Flow

A few improvements:

- No more side navigation menu when anonymous.
- Show name of OAuth Application you're logging in for on the login screen.

5 months agoFixed Django deprecation warning
Sybren A. Stüvel [Tue, 13 Nov 2018 14:17:13 +0000 (15:17 +0100)]
Fixed Django deprecation warning

5 months agoSolved Django deprecation warnings
Sybren A. Stüvel [Tue, 13 Nov 2018 13:47:10 +0000 (14:47 +0100)]
Solved Django deprecation warnings

The previous way of using URL namespaces is deprecated, and will be removed
in Django 2.0

6 months agoAdded 'Find in Blender Fund' link to user admin
Sybren A. Stüvel [Tue, 23 Oct 2018 14:22:30 +0000 (16:22 +0200)]
Added 'Find in Blender Fund' link to user admin

6 months agoRemoved unused (and incorrect) variable
Sybren A. Stüvel [Tue, 23 Oct 2018 14:22:02 +0000 (16:22 +0200)]
Removed unused (and incorrect) variable

6 months agoAllow users to make their badges private
Sybren A. Stüvel [Tue, 16 Oct 2018 15:45:09 +0000 (17:45 +0200)]
Allow users to make their badges private

6 months agoMore modern get_context_data() dict construction
Sybren A. Stüvel [Tue, 16 Oct 2018 15:43:41 +0000 (17:43 +0200)]
More modern get_context_data() dict construction

6 months agoSpaces → Tabs
Sybren A. Stüvel [Tue, 16 Oct 2018 10:09:30 +0000 (12:09 +0200)]
Spaces → Tabs

6 months agoMoved RoleManager and Role up in the models.py file
Sybren A. Stüvel [Tue, 16 Oct 2018 09:12:03 +0000 (11:12 +0200)]
Moved RoleManager and Role up in the models.py file

This allows us to reference it from the User model without having to use
string references (better usage reports by IDE, easier to ctrl+click, etc.)

6 months agoUserBadgeView: always return JSON (so also for errors)
Sybren A. Stüvel [Tue, 16 Oct 2018 08:59:39 +0000 (10:59 +0200)]
UserBadgeView: always return JSON (so also for errors)

6 months agoTweak to login title, depending on context
Francesco Siddi [Tue, 16 Oct 2018 14:22:06 +0000 (16:22 +0200)]
Tweak to login title, depending on context

If the user was required to login by another page, display a more specific
message about logging in.

6 months agoUserBadgeView should use user.roles.badges() to get badges
Sybren A. Stüvel [Fri, 12 Oct 2018 13:06:11 +0000 (15:06 +0200)]
UserBadgeView should use user.roles.badges() to get badges

6 months agoFormatting
Sybren A. Stüvel [Wed, 10 Oct 2018 11:58:24 +0000 (13:58 +0200)]
Formatting

6 months agoAdmin speedup: AccesssToken now no longer has all refresh tokens in select box
Sybren A. Stüvel [Wed, 10 Oct 2018 11:58:21 +0000 (13:58 +0200)]
Admin speedup: AccesssToken now no longer has all refresh tokens in select box

6 months agoAdded tests for granting/revoking non-badge roles
Sybren A. Stüvel [Wed, 10 Oct 2018 11:42:53 +0000 (13:42 +0200)]
Added tests for granting/revoking non-badge roles

This should just work, as long as the granted/revoked role is in the list
of allowed-to-manage roles.

6 months agoRun `manage.py collectmedia` on deploy
Sybren A. Stüvel [Wed, 10 Oct 2018 11:37:37 +0000 (13:37 +0200)]
Run `manage.py collectmedia` on deploy

6 months agoUse ASCII arrow instead of Unicode one
Sybren A. Stüvel [Wed, 10 Oct 2018 11:37:29 +0000 (13:37 +0200)]
Use ASCII arrow instead of Unicode one

6 months agoFixed bug in RoleManager.badges()
Sybren A. Stüvel [Wed, 10 Oct 2018 11:04:14 +0000 (13:04 +0200)]
Fixed bug in RoleManager.badges()

6 months agoself.assertEquals → self.assertEqual
Sybren A. Stüvel [Wed, 10 Oct 2018 10:57:19 +0000 (12:57 +0200)]
self.assertEquals → self.assertEqual

6 months agoAdded default badges for devfund + CLI cmd to install fixture-media
Sybren A. Stüvel [Wed, 10 Oct 2018 10:50:57 +0000 (12:50 +0200)]
Added default badges for devfund + CLI cmd to install fixture-media

Run `manage.py collectmedia` to install all files from
`{fixture-dir}/media/xxx/yyy` into `{MEDIA_ROOT}/xxx/yyy`.

6 months agoAdd ipython as dev dependency
Sybren A. Stüvel [Wed, 10 Oct 2018 10:05:27 +0000 (12:05 +0200)]
Add ipython as dev dependency

6 months agoUI: Tweaks to badges presentation
Francesco Siddi [Wed, 10 Oct 2018 10:02:24 +0000 (12:02 +0200)]
UI: Tweaks to badges presentation

6 months agoUse correct permission value for chmod command
Francesco Siddi [Wed, 19 Sep 2018 17:26:50 +0000 (19:26 +0200)]
Use correct permission value for chmod command

6 months agoUse WEBHOOK_RETRY_COUNT instead of hardcoded value
Francesco Siddi [Wed, 19 Sep 2018 17:26:33 +0000 (19:26 +0200)]
Use WEBHOOK_RETRY_COUNT instead of hardcoded value

6 months agoFormatting
Sybren A. Stüvel [Wed, 10 Oct 2018 09:33:39 +0000 (11:33 +0200)]
Formatting

6 months agoRe-enabled showing badges on the profile page
Sybren A. Stüvel [Wed, 10 Oct 2018 09:33:35 +0000 (11:33 +0200)]
Re-enabled showing badges on the profile page

6 months agoBadges are only used when they have an image
Sybren A. Stüvel [Wed, 10 Oct 2018 09:29:16 +0000 (11:29 +0200)]
Badges are only used when they have an image

Before we could have imageless badges, which can cause all kinds of meh.

6 months agoLogout: allow redirecting to another site via /logout?next=some-url
Sybren A. Stüvel [Thu, 4 Oct 2018 10:50:44 +0000 (12:50 +0200)]
Logout: allow redirecting to another site via /logout?next=some-url

The new URL must be to the same host as the HTTP `Referer` header. Without
that header, or with a different host, the user will be redirected to
the `/about` page. Furthermore, downgrading from HTTPS to HTTP is not
allowed (if the referer was using HTTPS, you cannot redirect to HTTP).

6 months agoTest: create user within database transaction
Sybren A. Stüvel [Thu, 4 Oct 2018 10:49:30 +0000 (12:49 +0200)]
Test: create user within database transaction

By doing this the right way we don't have to clean up the user afterwards.

7 months agoAdded `--reuse-db` to pytest options
Sybren A. Stüvel [Fri, 21 Sep 2018 12:07:02 +0000 (14:07 +0200)]
Added `--reuse-db` to pytest options

This makes Django reuse the test database, which makes re-running tests
much faster. Remember to use `py.test --create-db` if you want to recreate
it (for example after changing migrations).

7 months agoAdded `mkdir media` to the install steps
Sybren A. Stüvel [Mon, 17 Sep 2018 14:09:30 +0000 (16:09 +0200)]
Added `mkdir media` to the install steps

7 months agoDescribe MySQL database creation in README.md
Sybren A. Stüvel [Mon, 17 Sep 2018 13:52:28 +0000 (15:52 +0200)]
Describe MySQL database creation in README.md

Also `blender_id_new` → `blender_id` in the example settings.

7 months agoFixed some issues with our HttpResponseNoContent class
Sybren A. Stüvel [Wed, 12 Sep 2018 13:42:54 +0000 (15:42 +0200)]
Fixed some issues with our HttpResponseNoContent class

7 months agoReturn HTTP 400 Bad Request when requesting an invalid badge size
Sybren A. Stüvel [Wed, 12 Sep 2018 13:42:39 +0000 (15:42 +0200)]
Return HTTP 400 Bad Request when requesting an invalid badge size

7 months agoRegister flatpages URL pattern last
Sybren A. Stüvel [Wed, 12 Sep 2018 13:42:24 +0000 (15:42 +0200)]
Register flatpages URL pattern last

Otherwise it interferes with serving the `media` directory in the
dev server.

7 months agoAdd support for `badge` scope in OAuth flow
Sybren A. Stüvel [Tue, 11 Sep 2018 13:35:14 +0000 (15:35 +0200)]
Add support for `badge` scope in OAuth flow

- Added `badge` to allowed scopes. This way OAuth clients can request this
  scope (rather than the other scopes, which are manually granted by us).
- Show access to badges in OAuth authorisation screen.

The scope isn't optional just yet, see
[Github issue 644](https://github.com/jazzband/django-oauth-toolkit/issues/644)
in the Django-OAuth-Toolkit project.

7 months agoUser admin: permission check for "View this user's auth tokens" link
Sybren A. Stüvel [Tue, 11 Sep 2018 12:21:19 +0000 (14:21 +0200)]
User admin: permission check for "View this user's auth tokens" link

7 months agoAdded django-admin-select2 to make editing of user roles more Ton-proof
Sybren A. Stüvel [Tue, 11 Sep 2018 10:32:40 +0000 (12:32 +0200)]
Added django-admin-select2 to make editing of user roles more Ton-proof

With the default <select> box, giving someone a role by clicking on that
role can revoke roles that are not visible (the entire list of roles
doesn't fit in the box and requires scrolling). This makes it easy to make
accidental mistakes.

By switching to select2, granting and revoking roles can be done by clicking,
without affecting non-clicked roles.

7 months agoBadge HTML API: use absolute URLs to load the images
Sybren A. Stüvel [Tue, 11 Sep 2018 10:22:43 +0000 (12:22 +0200)]
Badge HTML API: use absolute URLs to load the images

This allows embedding of the HTML into another website.

7 months agoExtended Badge API with a HTML endpoint at /api/badges/<user-id>/html
Sybren A. Stüvel [Tue, 11 Sep 2018 09:51:11 +0000 (11:51 +0200)]
Extended Badge API with a HTML endpoint at /api/badges/<user-id>/html

Optionally the URL can be extended with `/<size>` to indicate a size in
{'s', 'm', 'l'}. This set can be extended/refined later.

Passing the user ID isn't strictly necessary. However, it does allow
for caching the result (for a short while) based on the URL alone,
and without having to cache the authentication token too. This seemed like
a good idea to me.

This adds a dependency: sorl.thumbnail. It handles automatic on-demand
resizing of uploaded images in an `ImageField`. Note that the README.md has
been updated for this, most notably with an extension of the cron job to
clean up obsolete cached images.

7 months agoUpdated README.md
Sybren A. Stüvel [Tue, 11 Sep 2018 08:21:19 +0000 (10:21 +0200)]
Updated README.md

- Using dashes instead of numbers so we don't have to renumber when adding
  things.
- Added a note about prefixing with `pipenv run`.

7 months agoSolved some Django deprecation warnings
Sybren A. Stüvel [Wed, 29 Aug 2018 09:53:00 +0000 (11:53 +0200)]
Solved some Django deprecation warnings

7 months agoAdd example url for BLENDER_MYDATA_BASE_URL
Francesco Siddi [Sat, 25 Aug 2018 18:03:05 +0000 (20:03 +0200)]
Add example url for BLENDER_MYDATA_BASE_URL

8 months agoFixed CSRF failure view name
Sybren A. Stüvel [Thu, 16 Aug 2018 13:18:16 +0000 (15:18 +0200)]
Fixed CSRF failure view name

8 months agoRun collectstatic via 'pipenv run'
Sybren A. Stüvel [Wed, 15 Aug 2018 13:42:57 +0000 (15:42 +0200)]
Run collectstatic via 'pipenv run'

8 months agoMoved docutils to real dependencies
Sybren A. Stüvel [Wed, 15 Aug 2018 13:39:39 +0000 (15:39 +0200)]
Moved docutils to real dependencies

This allows us to use the documentation link in the admin site.

8 months agoGet absolute url for flatpages in footer
Francesco Siddi [Wed, 15 Aug 2018 13:37:49 +0000 (15:37 +0200)]
Get absolute url for flatpages in footer

8 months agoDouble quotes for tag attributes
Francesco Siddi [Wed, 15 Aug 2018 13:26:58 +0000 (15:26 +0200)]
Double quotes for tag attributes

8 months agoAdd package-lock.json
Francesco Siddi [Wed, 15 Aug 2018 13:21:33 +0000 (15:21 +0200)]
Add package-lock.json

8 months agoIgnore cache files from pytest
Sybren A. Stüvel [Wed, 15 Aug 2018 13:01:59 +0000 (15:01 +0200)]
Ignore cache files from pytest

8 months agoFixed some MySQL incompatibilities
Sybren A. Stüvel [Wed, 15 Aug 2018 13:01:50 +0000 (15:01 +0200)]
Fixed some MySQL incompatibilities

SQLite handled those strings just fine, MySQL didn't like them.

8 months agoMigrated from requirements.txt to pipenv
Sybren A. Stüvel [Wed, 15 Aug 2018 12:35:23 +0000 (14:35 +0200)]
Migrated from requirements.txt to pipenv

On the production server we use PIPENV_VENV_IN_PROJECT=1 so that the
virtualenv is created in a predictable location.

By moving to pipenv we automatically got some upgraded dependencies. The
only one that caused an issue was django-oauth-toolkit (1.0.0 → 1.1.2)
As they changed their abstract model we needed to create a migration to
handle that for our own concrete subclasses.

Django is still held back at <2.0, which means django-oauth-toolkit is
held back at <1.2.0.

8 months agoPlace `{% load templatelib %}` at the top of the template
Sybren A. Stüvel [Wed, 15 Aug 2018 10:53:02 +0000 (12:53 +0200)]
Place `{% load templatelib %}` at the top of the template

8 months agoUpdated assets_shared
Sybren A. Stüvel [Wed, 15 Aug 2018 10:44:45 +0000 (12:44 +0200)]
Updated assets_shared

8 months agoImport statements at top of file
Sybren A. Stüvel [Wed, 15 Aug 2018 10:44:39 +0000 (12:44 +0200)]
Import statements at top of file

8 months agoFlatpages app is no longer optional
Sybren A. Stüvel [Wed, 15 Aug 2018 10:44:30 +0000 (12:44 +0200)]
Flatpages app is no longer optional

Since we're using the flatpages in the footer of `layout.pug`, every page
requires it.

8 months agoPadding mismatch on navbar
Pablo Vazquez [Tue, 14 Aug 2018 14:06:03 +0000 (16:06 +0200)]
Padding mismatch on navbar

Resolves T56377

8 months agoNavbar: Dashboard link no longer needed
Pablo Vazquez [Tue, 14 Aug 2018 10:28:56 +0000 (12:28 +0200)]
Navbar: Dashboard link no longer needed

Use My Blender ID on the sidebar.

Resolves T56378

8 months agoSplit bid_main.views into submodules
Sybren A. Stüvel [Tue, 14 Aug 2018 08:49:23 +0000 (10:49 +0200)]
Split bid_main.views into submodules

8 months agoURLs end in a slash
Sybren A. Stüvel [Tue, 14 Aug 2018 08:48:33 +0000 (10:48 +0200)]
URLs end in a slash

8 months agoFix indentation
Pablo Vazquez [Fri, 10 Aug 2018 15:36:55 +0000 (17:36 +0200)]
Fix indentation

8 months agoFix missing icons
Pablo Vazquez [Fri, 10 Aug 2018 15:34:50 +0000 (17:34 +0200)]
Fix missing icons

8 months agoRemove broken icons
Pablo Vazquez [Fri, 10 Aug 2018 15:02:30 +0000 (17:02 +0200)]
Remove broken icons

8 months agoBWA Update
Pablo Vazquez [Fri, 10 Aug 2018 14:48:32 +0000 (16:48 +0200)]
BWA Update

8 months agoAuthentication -> Applications
Pablo Vazquez [Fri, 10 Aug 2018 14:48:25 +0000 (16:48 +0200)]
Authentication -> Applications

8 months agoRemove App icons for now
Pablo Vazquez [Fri, 10 Aug 2018 14:44:58 +0000 (16:44 +0200)]
Remove App icons for now

8 months agoStyling, layout and replace icons with svg
Pablo Vazquez [Wed, 8 Aug 2018 14:51:30 +0000 (16:51 +0200)]
Styling, layout and replace icons with svg

8 months agoUse setting for BLENDER_MYDATA_BASE_URL
Pablo Vazquez [Wed, 8 Aug 2018 09:27:07 +0000 (11:27 +0200)]
Use setting for BLENDER_MYDATA_BASE_URL

8 months agoSidebar and minor tweaks to layout
Pablo Vazquez [Tue, 7 Aug 2018 16:35:44 +0000 (18:35 +0200)]
Sidebar and minor tweaks to layout

8 months agoInclude font-borg, remove font-awesome
Pablo Vazquez [Tue, 7 Aug 2018 16:35:16 +0000 (18:35 +0200)]
Include font-borg, remove font-awesome

8 months agoLayout: Use header and footer from BWA
Pablo Vazquez [Tue, 7 Aug 2018 14:13:13 +0000 (16:13 +0200)]
Layout: Use header and footer from BWA

8 months agoUpdate Blender Web Assets
Pablo Vazquez [Tue, 7 Aug 2018 14:12:33 +0000 (16:12 +0200)]
Update Blender Web Assets

Compile Sass using Bootstrap and Font Awesome from NPM packages instead.

8 months agoNPM: New dependencies
Pablo Vazquez [Tue, 7 Aug 2018 14:08:41 +0000 (16:08 +0200)]
NPM: New dependencies

Bootstrap and Font Awesome. Also minor update to gulp-rename

9 months agoDisplay flatpages in layout.pug
Francesco Siddi [Mon, 23 Jul 2018 22:26:49 +0000 (00:26 +0200)]
Display flatpages in layout.pug
This exposes links to terms-of-service and privacy-policy.

9 months agoCommented out 'your badges' on dashboard
Sybren A. Stüvel [Thu, 12 Jul 2018 08:31:46 +0000 (10:31 +0200)]
Commented out 'your badges' on dashboard

9 months agoShow badges on user dashboard
Sybren A. Stüvel [Wed, 11 Jul 2018 14:58:57 +0000 (16:58 +0200)]
Show badges on user dashboard

9 months agoJoined cloud_roles and default_roles fixtures
Sybren A. Stüvel [Wed, 11 Jul 2018 14:58:41 +0000 (16:58 +0200)]
Joined cloud_roles and default_roles fixtures

9 months agoAdded /api/badges/{user-id} endpoint
Sybren A. Stüvel [Wed, 11 Jul 2018 13:18:04 +0000 (15:18 +0200)]
Added /api/badges/{user-id} endpoint

This enpoint returns information about the user's public badges. It
requires the caller to have a 'badge' scope on its OAuth token.

9 months agoAdded badge image, link, and label to roles
Sybren A. Stüvel [Wed, 11 Jul 2018 12:28:10 +0000 (14:28 +0200)]
Added badge image, link, and label to roles

This adds Pillow as a requirement, for image processing; it's a required
dependency of Django when you use an ImageField.

9 months agoAdded support for uploading files to MEDIA_ROOT
Sybren A. Stüvel [Wed, 11 Jul 2018 12:25:26 +0000 (14:25 +0200)]
Added support for uploading files to MEDIA_ROOT

This commit also contains some code to make it possible for the devserver
to server those files.

9 months agoDevserver automatically serves static files nowadays
Sybren A. Stüvel [Wed, 11 Jul 2018 11:14:36 +0000 (13:14 +0200)]
Devserver automatically serves static files nowadays

9 months agoAdd nickname to user in bid_addon_support fixture
Sybren A. Stüvel [Wed, 11 Jul 2018 10:41:44 +0000 (12:41 +0200)]
Add nickname to user in bid_addon_support fixture