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
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
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
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
32c84725a9
[Bugfix] Fix day-event fetching
...
It returned today’s events regardless of the day.
2018-07-02 16:52:37 +02:00
df2af81083
[Bugfix] One more fix for the babalex transition
2018-07-02 14:33:47 +02:00
4c03829264
Add the previous/next year/month links to the month view
2018-07-02 14:07:38 +02:00
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
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
3a1cdf8f6a
[Refactor] Move app-level views into the CalendarSocialApp class
2018-07-02 10:54:02 +02:00
723cabbe72
[Refactor] Move the application running code from __init__ to __main__
2018-07-02 10:47:34 +02:00
7846d9017d
[Refactor] Rename the app module to calsocial
...
Just for clarity
2018-07-02 10:41:32 +02:00
6b3d36ff21
Add an app icon
...
It doesn’t cover all use cases (see [this article](https://css-tricks.com/favicon-quiz/ ), but it’s
a good start.
2018-07-01 07:24:44 +02:00
4668089901
Add event creation
2018-06-30 06:44:45 +02:00
a25e869eca
Load events for the month view
2018-06-30 06:02:46 +02:00
bac17faed2
Create the Event model
2018-06-30 06:02:46 +02:00
6c4eb97c01
Create a basic month view
2018-06-30 06:02:46 +02:00
448ae1bce0
Make the web app select the language based on browser values
...
Language also can be selected using the `?l=langcode` query string.
2018-06-29 14:56:57 +02:00
bc47310cfb
Registration
2018-06-29 14:27:50 +02:00