Commit Graph

125 Commits

Author SHA1 Message Date
Gergely Polonkai 5639c3f578 Make it possible to accept follow requests 2018-07-12 12:10:53 +02:00
Gergely Polonkai 61f10f951c Make it possible to lock profiles
Locked profiles cannot be followed
2018-07-12 12:10:53 +02:00
Gergely Polonkai 496b5b6c04 [Refactor] Move notification creation to the Profile model 2018-07-12 12:00:36 +02:00
Gergely Polonkai dc0b2954c1 [Refactor] Move invitation code to the Event model 2018-07-12 11:08:13 +02:00
Gergely Polonkai 36c2f0fd77 Add test for following a user through the web UI 2018-07-12 10:34:59 +02:00
Gergely Polonkai 27c78ff36f Create the Profile.follow() method 2018-07-12 10:34:59 +02:00
Gergely Polonkai 5d886a7853 [Bugfix] Fix the FQN of invalid remote profiles (ie. no domain set) 2018-07-12 10:17:56 +02:00
Gergely Polonkai 5550e5ecf3 Make PyLint happy again 2018-07-12 10:16:04 +02:00
Gergely Polonkai 8e3bcd8ede Create a view that can list all events 2018-07-11 12:57:32 +02:00
Gergely Polonkai 48ffb0d472 [Refactor] Refactor the month view template so it can display all events
…not just the events of the current user.
2018-07-11 12:57:32 +02:00
Gergely Polonkai c3348d3212 Make it possible to edit one’s profile
…even though it’s only one field yet.
2018-07-11 12:57:32 +02:00
Gergely Polonkai 1a69928241 [Refactor] Create a base settings page
This will make it easier to add new settings pages for e.g. privacy settings, applications,
etc. later.
2018-07-11 12:57:32 +02:00
Gergely Polonkai 7b935afdad [Bugfix] Fix the event creating code
It tried to associate the event with a user instead of a profile.  It is a regression introduced
by #41
2018-07-11 12:57:32 +02:00
Gergely Polonkai 303dd3d082 [Bugfix] Fix the display name on the profile pages 2018-07-11 09:35:32 +02:00
Gergely Polonkai 81d949d708 Add a view for the first steps after the initial login 2018-07-10 16:39:34 +02:00
Gergely Polonkai 41f6c88df1 Make PyLint happy again 2018-07-10 16:39:30 +02:00
Gergely Polonkai 66659dfe51 Make registration show an error message on username or email reuse 2018-07-10 15:33:57 +02:00
Gergely Polonkai 4c65644291 Make it possible to accept invites 2018-07-10 10:58:56 +02:00
Gergely Polonkai 321f31b3c6 Add the Response model
This is to store RSVPs.
2018-07-10 10:58:51 +02:00
Gergely Polonkai 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
Gergely Polonkai 582e53038b Add notifications to the menu 2018-07-10 10:31:30 +02:00
Gergely Polonkai 0a1701dacd Make actors and items in notifications links 2018-07-10 10:27:08 +02:00
Gergely Polonkai 17cca9380f Allow users to invite other users to events 2018-07-09 18:22:13 +02:00
Gergely Polonkai 6274543206 Create the Invitation model 2018-07-09 18:18:26 +02:00
Gergely Polonkai 69f2a0d9cc [Linting] Make PyLint happy with the current code 2018-07-09 18:13:39 +02:00
Gergely Polonkai 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
Gergely Polonkai efc9b24e2c [Code Cleanup] Remove an unused import 2018-07-09 17:17:01 +02:00
Gergely Polonkai 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
Gergely Polonkai 3bd381692b Send a notification when a follow action happens 2018-07-09 14:55:07 +02:00
Gergely Polonkai 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
Gergely Polonkai f1fab33c8d Display following/followed users on the profile page 2018-07-09 13:14:59 +02:00
Gergely Polonkai ba1a660b1a Follow users 2018-07-09 13:13:03 +02:00
Gergely Polonkai 4cbebb9c5a Connect events with profiles instead of local users 2018-07-09 13:05:26 +02:00
Gergely Polonkai 89605538c2 Use the event UUID as the event identifier in URLs 2018-07-09 13:05:26 +02:00
Gergely Polonkai c7457f6ed1 Add the event_uuid field to the Event model 2018-07-09 13:05:26 +02:00
Gergely Polonkai 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
Gergely Polonkai ad53608966 Display profiles 2018-07-09 11:50:36 +02:00
Gergely Polonkai 2136546390 Add a __repr__ method to the Profile method 2018-07-09 10:12:14 +02:00
Gergely Polonkai acb7566d1b [Code Cleanup] Remove the unused wraps import from calsocial.__init__ 2018-07-09 10:12:14 +02:00
Gergely Polonkai 295e19198e [Bugfix] Fix the default timezone setting 2018-07-09 10:12:14 +02:00
Gergely Polonkai d14d32767c Make PyLint happy with the models code 2018-07-09 08:15:40 +02:00
Gergely Polonkai 531faa1ce7 Add PyLint as a development dependency
Use `pylint calsocial` to run the static analysis.
2018-07-09 08:15:40 +02:00
Gergely Polonkai 5283599da2 Create the Profile model
It is capable of holding both local and remote profiles
2018-07-09 08:15:40 +02:00
Gergely Polonkai 12eb91d012 Log an audit message when a user logs out 2018-07-08 23:18:16 +02:00
Gergely Polonkai 23d0cd4b55 Log an audit message when a user successfully logs in 2018-07-08 23:18:16 +02:00
Gergely Polonkai 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
Gergely Polonkai 2b8e976543 AuditLog model 2018-07-08 23:00:58 +02:00
Gergely Polonkai 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
Gergely Polonkai 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
Gergely Polonkai 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
Gergely Polonkai 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
Gergely Polonkai ba7c766316 Allow displaying event details 2018-07-03 14:22:03 +02:00
Gergely Polonkai bba44a3c7f Add user settings with time zones 2018-07-03 13:15:17 +02:00
Gergely Polonkai d07e34a182 Display event timestamps in the current user’s time zone 2018-07-03 12:11:38 +02:00
Gergely Polonkai 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
Gergely Polonkai 60aab91c08 User settings 2018-07-03 12:09:44 +02:00
Gergely Polonkai 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
Gergely Polonkai 76bcd21e0a [Refactor] Make the app routes static methods
They don’t use self, so PyLint complains.
2018-07-03 10:07:48 +02:00
Gergely Polonkai 2f66fdb83e [Docs] Add/update docstrings and license text in every file 2018-07-03 09:52:25 +02:00
Gergely Polonkai a5bf841898 [Code Cleanup] Fix a broad except call
It is enough to catch `UnknownTimeZoneError` here.
2018-07-03 09:52:25 +02:00
Gergely Polonkai 6e0d50552d [Code Cleanup] Remove an unused import 2018-07-03 09:52:19 +02:00
Gergely Polonkai 5300e4978e [Code Cleanup] Wrap some long lines 2018-07-03 09:52:15 +02:00
Gergely Polonkai 5f5ccaa1ea [Code Cleanup] Update some variable names to conform with PEP8 2018-07-03 09:51:31 +02:00
Gergely Polonkai 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
Gergely Polonkai 894024aa88 [Bugfix] Fix a method call in TimezoneField
It wasn’t a method call, but it should have been.
2018-07-03 09:28:06 +02:00
Gergely Polonkai 8a46f3c66a Add proper time zone support
Until now event timestamps were saved in the server’s time zone.  Now they are saved in UTC,
considering the time zone set by the creator of the event.
2018-07-02 17:32:06 +02:00
Gergely Polonkai 26c31bcc04 [Bugfix] Fix the ordering of events
They were in SQL order.  Now they are ordered by start time.
2018-07-02 17:27:42 +02:00
Gergely Polonkai 32c84725a9 [Bugfix] Fix day-event fetching
It returned today’s events regardless of the day.
2018-07-02 16:52:37 +02:00
Gergely Polonkai df2af81083 [Bugfix] One more fix for the babalex transition 2018-07-02 14:33:47 +02:00
Gergely Polonkai 4c03829264 Add the previous/next year/month links to the month view 2018-07-02 14:07:38 +02:00
Gergely Polonkai f41cf43f80 [Bugfix] Fix for "Move from Flask-Babel to Flask-BabelEx"
I forgot to fix this in calendar_system.gregorian…
2018-07-02 13:34:47 +02:00
Gergely Polonkai 7cb46c476b [Bugfix] Move from Flask-Babel to Flask-BabelEx
It is used internally by Flask-Security anyway, so it’s one less package to install.  Also, using
Flask-Babel causes trouble with Flask-Security…
2018-07-02 13:27:26 +02:00
Gergely Polonkai 3a1cdf8f6a [Refactor] Move app-level views into the CalendarSocialApp class 2018-07-02 10:54:02 +02:00
Gergely Polonkai 723cabbe72 [Refactor] Move the application running code from __init__ to __main__ 2018-07-02 10:47:34 +02:00
Gergely Polonkai 7846d9017d [Refactor] Rename the app module to calsocial
Just for clarity
2018-07-02 10:41:32 +02:00