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