Commit Graph

22196 Commits

Author SHA1 Message Date
Tim Abbott 716c525389 backends: Sort imports. 2017-10-24 08:59:39 -07:00
rht 5755f475f4 upgrade: Add "must be run as root" check.
The logic and text is based on scripts/lib/upgrade-zulip.
2017-10-23 23:01:54 -07:00
rht dcb46afa90 upgrade: Remove an extraneous `sudo` prefix.
Because scripts/upgrade-zulip-from-git must be run from root anyway.
2017-10-23 23:01:46 -07:00
Umair Khan 19ccff060a i18n: Extract language options from tracked locales.
Now we use 'git ls-files' to get the list of locales that we actually
track. Previously we were using os.listdir to get the contents of the
static/locale directory. This could also return locales which were
present in the directory but are not supported by us, e.g. zh_CN.
2017-10-23 22:58:44 -07:00
Tim Abbott 1978455287 subs: Fix exception with streams overlay open but no active stream.
Previously, if you had the streams overlay open (but no active stream
clicked) while another user edited your subscriptions state, we'd
throw an exception handle the get_events call, because the code for
rerendering the subscribers list didn't consider the possibility that
there was no active stream.
2017-10-23 22:56:14 -07:00
Tim Abbott 9d0e1a2e0c subs: Don't try to update stream settings UI when closed.
The recent fixes we made to make stream settings update properly when
doing live updates were great, but they would throw an exception if
the stream settings overlay wasn't open.  This fixes that by adding
the appropriate check.
2017-10-23 22:44:27 -07:00
Tim Abbott bdc7772bab subs: Fix bug with invalid access to stream IDs.
`sub.id` isn't a valid field; it's `sub.stream_id`.
2017-10-23 22:44:05 -07:00
Brock Whittaker 4b45878946 notifications: If "Notification" is undefined, just return "denied".
We do not want the code to lead to a path where it will attempt to
display native notifications if the “Notification” object doesn’t
exist, as this likely means that the device does not support OS
notifications.
2017-10-23 21:29:42 -07:00
Tim Abbott ad165a6f8f settings: Remove remaining DEPLOYMENT_ROLE_* code remnants.
These should have been removed when we removed Zilencer.
2017-10-23 21:15:03 -07:00
Tim Abbott 7fd7e054e1 docs: Fix broken link in changelog on ReadTheDocs. 2017-10-23 17:43:21 -07:00
Tim Abbott 8a32f012bf docs: Highlight notes on apt upgrades for perf. 2017-10-23 17:41:25 -07:00
Tim Abbott a174455ae1 docs: Document API super user bots a bit more in security model docs. 2017-10-23 17:37:38 -07:00
Steve Howell b851020b1e Excluded topic-muted users from stream push notifications.
Fixes #7059
2017-10-23 17:26:15 -07:00
Steve Howell 78b1a8442b Add StreamTopicTarget.user_ids_muting_topic(). 2017-10-23 17:26:15 -07:00
Steve Howell 0164cfdf5c migrations: Index MutedTopic on stream/topic.
This index lets us quickly find all users who may be muting
a topic, which useful when we send messages out.
2017-10-23 17:26:15 -07:00
Steve Howell 0263c857b3 tests: Add test_stream_recipient_info(). 2017-10-23 17:26:15 -07:00
darshanime 6078f648cb settings: use None for memcached cache timeout.
This is a cleaner approach than the old "really big number" strategy.
2017-10-23 16:34:43 -07:00
Tim Abbott a57f577650 i18n: Update translations files. 2017-10-23 16:18:16 -07:00
Greg Price 6c19bc9f1d onboarding: Revise text in prompt to enable desktop notifications.
Making the same point (that you can configure the notifications in
settings) at both steps felt pushy.  I think the first prompt is
actually best kept to a minimum of words, so leave that one with
just the ask.

In the second step, try an active pitch.  This could go either way, or
be any number of other messages, but the settings line felt a little
defensive to me, like it was suggesting that our notifications would
be noisy and here's a way you can try to mitigate that.  I think with
our default settings (and in an org with mostly-reasonable humans, but
even a large and busy one) they're actually not at all noisy; and if
we learn of situations where that's not true, we'll work to fix that.
So, try this line instead.

A style note: I chose "your team" here to refer to the people the user
communicates with in their organization.  We consistently say either
"organization" or sometimes "realm" for the concrete thing in the
product that is the whole universe of streams and users, etc., that a
given account lives in; but that feels too formal here.  Conversely,
one reason we don't say "team" for an organization is that it feels
too cozy and small, more appropriate for 8 people who interact every
day than for 80 or 8000 people; but this line is mainly about those
8 people even if the organization has 8000.  There are some examples
of this already in the codebase; see `git grep -w team`.

i18n note: These passages of a couple of connected sentences should
generally be marked for translation as one message, not several
separate ones.  That helps the translator be sure of the context so
they can translate appropriately.  For example, in the second prompt
in this version, there's an implicit "because" relationship between
the two sentences, and in some languages (I'm 90% sure this is true in
Japanese), it would be weird to leave it implicit and the second
sentence should contain the equivalent of "That's because".
2017-10-23 15:16:21 -07:00
Brock Whittaker e304c44c2e integrations: Impose max-width for readability.
This imposes a maximum width constraint on the center block so
that it can maintain readability and keep the content paragraphs
to less than 1000px.

Fixes: #7092.
2017-10-23 14:24:31 -07:00
Brock Whittaker 981e6e6836 settings: Display "Never" over "Invalid Date" for inactive users.
This shows the text "Never" for users who are part of a realm but
have never been active, rather than a more vague JavaScript output
of "Invalid Date" due to the fact that their last presence
evaluates to NaN.
2017-10-23 13:57:11 -07:00
Tim Abbott 145817d1e0 forms: Pass the realm into authenticate in OurAuthenticationForm.
Historically, we'd just use the default Django version of this
function.  However, since we did the big subdomains migration, it's
now the case that we have to pass in the subdomain to authenticate
(i.e. there's no longer a fallback to just looking up the user by
email).

This fixes a problem with user creation in an LDAP realm, because
previously, the user creation flow would just pass in the username and
password (after validating the subdomain).
2017-10-23 12:36:09 -07:00
Tim Abbott 4ecf781ed4 test_signup: Fix LDAP end-to-end tests accidentally using wrong backend.
Apparently, we were accidentally using the EmailAuthBackend in parts
of these tests.
2017-10-23 12:25:47 -07:00
Steve Howell a66409de2e tests: Add FetchQueriesTest.test_queries().
This new test solves the problem that when we
made changes to the page-load codepath in the past,
it's been hard to identify what new code caused
more database queries.  Now you can see query
counts broken out by event type.

This requires a small, harmless change to extract
an `always_want` function in `lib/events.py`.
2017-10-23 11:11:19 -07:00
Steve Howell c584289d11 tests: Count cache hits for page load. 2017-10-23 11:11:19 -07:00
Eeshan Garg f8b5976335 webhooks/taiga: Support Epic events. 2017-10-23 11:09:43 -07:00
Tim Abbott 4db99196e9 message_edit: Fix red highlighting for messages mentioning you.
When we added support for mentioning users when editing messages, we
neglected to add this bit of code needed to make sure the UI code in
message_list_view.js would actually rerender that part of the
message's state.

Arguably, this is a sign that the message_container structure should
be just recomputed every time we rerender messages, but that's a less
tactical fix.
2017-10-23 11:02:30 -07:00
Eeshan Garg 0600646fbf python-zulip-api: Upgrade to latest release (0.3.5 -> 0.3.7). 2017-10-21 06:08:40 -07:00
Tim Abbott e450d9ab8c docs: Document text_content field of our markdown test cases. 2017-10-20 16:08:16 -07:00
Steve Howell a1d887c950 Use check_bool validator in get_messages_backend().
This is the more modern way in our codebase to validate
bool fields.
2017-10-20 15:51:57 -07:00
Steve Howell 0e106a2488 Add client_gratavar support to GET /messages.
Clients fetching messages can now specify that they are able
to compute their avatar, and if they set client_gratavar to
True in the request (w/our normal encoding scheme), then the
backend will not compute it, and the payload will be smaller.

The fix starts with get_messages_backend.  The flag gets
passed down through these functions:

    * MessageDict.post_process_dicts.
    * MessageDict.set_sender_avatar.

We also fix up the callers for post_process_dicts to explicitly
pass in the client_gravatar path, but for now they all just hard
code the value to False.
2017-10-20 15:49:21 -07:00
Tim Abbott 42d6defd40 docs: Update changelog for changes going into 1.7 release. 2017-10-20 15:39:53 -07:00
derAnfaenger 1b67652380 docs: Add explicit command to su to zulip from prod step 5 on. 2017-10-20 14:57:44 -07:00
Tim Abbott 0828b4ad90 docs: Add troubleshooting notice for `su zulip` as the zulip user. 2017-10-20 14:57:44 -07:00
Tim Abbott 216fbc2f79 docs: Fix a typo in installation docs. 2017-10-20 14:55:20 -07:00
Tim Abbott 54a2ef7b59 docs: Improve discussion of Ubuntu system updates. 2017-10-20 14:38:34 -07:00
Tim Abbott b511e9d0a9 docs: Recommend Xenial over Trusty for new installations. 2017-10-20 14:34:48 -07:00
Greg Price 12f8ec780e docs/expensive-migrations: Revise a bit for clarity.
Borrows some language from the paragraph in the changelog that
points to it.
2017-10-20 14:21:58 -07:00
Tim Abbott 4418425c10 translations: Add a few new languages.
Indonesian, at least, has gotten pretty far in translating.
2017-10-20 14:20:31 -07:00
Tim Abbott 618ace1f5c build-release-tarball: Fix missing CSS-inlined email templates.
These apparently we're being included.
2017-10-20 14:08:25 -07:00
Greg Price 50927c7cfd changelog: Revise a bit for clarity and formatting before 1.7 release.
This leaves most of the highlights untouched, to be revised
separately.
2017-10-20 14:04:27 -07:00
Brock Whittaker 79d0f13885 sidebars: Move arrows and unread counts away from scrollbars.
The arrows were too close to the scrollbars that it would be
difficult to click them sometimes. This moves over the arrows and
unread counts to combat the issue.
2017-10-20 13:29:10 -07:00
Brock Whittaker 1a9c13a655 left-sidebar: Vertically align nested PM lines.
This vertically aligns the lines to be centered rather than about
three pixels closer to the bottom than to the top.
2017-10-20 13:11:43 -07:00
Brock Whittaker e5a09f422c notification-banner: Check if mobile before displaying.
Notifications essentially don't work on any mobile web clients,
so don't even show the banner.

This also fixes a traceback where it checks the permission state
with `notifications.permission_state()`, which calls
`Notification.permission`, which will error due to `Notification`
not existing on mobile devices.

Fixes: #7105.
2017-10-20 13:07:40 -07:00
Tim Abbott 7c7e93cb43 docs: Improve discussion of legacy desktop app in changelog. 2017-10-20 12:11:06 -07:00
Nikhil Kumar Mishra 075158ec81 docs: Correct details about mobile and desktop codebases.
http://zulip.readthedocs.io/en/latest/architecture-overview.html
mentions "Our mobile clients are separate code repositories: Android
and React Native iOS app. " However Zulip Mobile is the official
mobile Zulip client supporting both iOS and Android.

Edited by tabbott to also fix confusion about the desktop.
2017-10-20 11:57:26 -07:00
Umair Khan 2db1cba9cc i18n: Use language code instead of locale.
We have been assigning locale to language code. Mostly code and locale
are same but for languages like zh-Hans, locale is zh_Hans and code is
zh-hans.

After this commit, compilemessages command should be run.
2017-10-20 11:21:26 -07:00
Umair Khan df13ac570a i18n: Add localized name in language_name_map.json. 2017-10-20 11:20:22 -07:00
Umair Khan 3769972fc2 i18n: Clean up code to create language_options.json.
Previously we were using regexes to extract the language from our
locale files. Now we use LANG_INFO data structure provided by Django
to do the same and fallback to PO files only when language code is not
present in the Django data structure.
2017-10-20 11:20:22 -07:00
Tim Abbott 15f3d5f714 nginx: Fix some buggy gzip compression configuration.
We weren't compressing SVG, while at the same time were incorrectly
compressing octet-stream (Which meant downloading .tar.gz files in
Chrome would get double-compressed).
2017-10-20 11:01:28 -07:00