f782ece010
Add tests for registration
2018-07-10 15:34:52 +02:00
66659dfe51
Make registration show an error message on username or email reuse
2018-07-10 15:33:57 +02:00
0595a28535
Add the first test
...
It just checks if the index page has a specific sentence. But at least it’s now possible to
create tests.
2018-07-10 12:10:24 +02:00
4c65644291
Make it possible to accept invites
2018-07-10 10:58:56 +02:00
321f31b3c6
Add the Response model
...
This is to store RSVPs.
2018-07-10 10:58:51 +02:00
0fb0ff8c99
Add an ID field to the Invite model
...
It turned out the multi-field primary key is not a good idea.
2018-07-10 10:31:30 +02:00
582e53038b
Add notifications to the menu
2018-07-10 10:31:30 +02:00
0a1701dacd
Make actors and items in notifications links
2018-07-10 10:27:08 +02:00
17cca9380f
Allow users to invite other users to events
2018-07-09 18:22:13 +02:00
6274543206
Create the Invitation model
2018-07-09 18:18:26 +02:00
69f2a0d9cc
[Linting] Make PyLint happy with the current code
2018-07-09 18:13:39 +02:00
9af673666c
Rename Profile.fqdn to Profile.fqn
...
It’s not a domain name, so the `d` is not needed.
2018-07-09 18:07:23 +02:00
efc9b24e2c
[Code Cleanup] Remove an unused import
2018-07-09 17:17:01 +02:00
6657cc1c91
[Bugfix] Fix user follow
...
* The link didn’t have a closing tag
* The whole mechanism didn’t work
I probably submitted a previous patch…
2018-07-09 17:17:01 +02:00
3bd381692b
Send a notification when a follow action happens
2018-07-09 14:55:07 +02:00
379a5b1bb0
Allow users to list their notifications
...
This is in very early stage, but at least it works.
2018-07-09 14:11:08 +02:00
f1fab33c8d
Display following/followed users on the profile page
2018-07-09 13:14:59 +02:00
ba1a660b1a
Follow users
2018-07-09 13:13:03 +02:00
4cbebb9c5a
Connect events with profiles instead of local users
2018-07-09 13:05:26 +02:00
89605538c2
Use the event UUID as the event identifier in URLs
2018-07-09 13:05:26 +02:00
c7457f6ed1
Add the event_uuid field to the Event model
2018-07-09 13:05:26 +02:00
1c2635045b
Make User.profile a single object instead of a list
...
Because it’s a one-to-one relationship anyway, what’s the use of lists here?
2018-07-09 13:05:26 +02:00
ad53608966
Display profiles
2018-07-09 11:50:36 +02:00
2136546390
Add a __repr__ method to the Profile method
2018-07-09 10:12:14 +02:00
acb7566d1b
[Code Cleanup] Remove the unused wraps import from calsocial.__init__
2018-07-09 10:12:14 +02:00
295e19198e
[Bugfix] Fix the default timezone setting
2018-07-09 10:12:14 +02:00
d14d32767c
Make PyLint happy with the models code
2018-07-09 08:15:40 +02:00
531faa1ce7
Add PyLint as a development dependency
...
Use `pylint calsocial` to run the static analysis.
2018-07-09 08:15:40 +02:00
5283599da2
Create the Profile model
...
It is capable of holding both local and remote profiles
2018-07-09 08:15:40 +02:00
12eb91d012
Log an audit message when a user logs out
2018-07-08 23:18:16 +02:00
23d0cd4b55
Log an audit message when a user successfully logs in
2018-07-08 23:18:16 +02:00
aede5873d2
Add our own login form
...
We gain multiple things with this, but the main point is to do audit logging in case a valid user
enters an invalid password.
2018-07-08 23:14:39 +02:00
2b8e976543
AuditLog model
2018-07-08 23:00:58 +02:00
f392505441
[Bugfix] Fix for the anonymous user’s timezone
...
It returned `None` instead of the application default.
2018-07-08 23:00:58 +02:00
7a39fca449
Add the force_locale utility function
...
It will be needed when sending emails and generating log messages.
2018-07-08 22:56:10 +02:00
c770e6cfa6
Create our own anonymous user class
...
This is required so the anonymous user also has a time zone (which is required to render public events.)
2018-07-08 22:36:47 +02:00
943021e152
Add the timezone property to app
...
It will make it easier to get a default time zone.
2018-07-08 22:32:41 +02:00
ba7c766316
Allow displaying event details
2018-07-03 14:22:03 +02:00
bba44a3c7f
Add user settings with time zones
2018-07-03 13:15:17 +02:00
d07e34a182
Display event timestamps in the current user’s time zone
2018-07-03 12:11:38 +02:00
8a7772917c
Add the User.timezone property
...
It either queries the user’s `timezone` setting, uses the app’s default time zone (stored in the
`DEFAULT_TIMEZONE` configuration key), or uses UTC as a final fallback.
2018-07-03 12:11:38 +02:00
60aab91c08
User settings
2018-07-03 12:09:44 +02:00
3cf2c15d3d
[Refactor] Refactor Event.__as_tz() so it accepts a timezone
...
Until now it could only convert to the event’s timezone
2018-07-03 12:09:44 +02:00
76bcd21e0a
[Refactor] Make the app routes static methods
...
They don’t use self, so PyLint complains.
2018-07-03 10:07:48 +02:00
2f66fdb83e
[Docs] Add/update docstrings and license text in every file
2018-07-03 09:52:25 +02:00
a5bf841898
[Code Cleanup] Fix a broad except call
...
It is enough to catch `UnknownTimeZoneError` here.
2018-07-03 09:52:25 +02:00
6e0d50552d
[Code Cleanup] Remove an unused import
2018-07-03 09:52:19 +02:00
5300e4978e
[Code Cleanup] Wrap some long lines
2018-07-03 09:52:15 +02:00
5f5ccaa1ea
[Code Cleanup] Update some variable names to conform with PEP8
2018-07-03 09:51:31 +02:00
9dd2a1120f
[Refactor] Change GregorianCalendar.day_events() to a static method
...
It takes a date as its parameter, and doesn’t use the class’ timestamp, so there’s no point making
it an instance method.
2018-07-03 09:51:30 +02:00