Commit Graph

20735 Commits

Author SHA1 Message Date
Steve Howell
c19b3aec0c Avoid sorting in UserPresence query.
We were using `.order_by('user_profile_id', '-timestamp') in our
UserPresence query in get_status_dicts_for_query.

We don't need a full sort to produce the dictionary of statuses.
In fact the whole operation in Python is still O(N):

    - divvy rows up to be per-user in an O(N) pass
    - find max row for the 'aggregated' entry in an O(n) pass
      per user

The one minor annoyance of this fix is that datetime_to_timestamp
is lossy, so if you naively call to_presence_dict before finding
the "max" row, you get test flakes if rows are created during the
same second.  I decided to avoid calling to_presence_dict so there
are fewer moving parts, but there's still the ugly step of having
to remove the "dt" field from the final results.
2017-09-08 12:32:17 -07:00
Cynthia Lin
19e134698e compose: Refocus compose box if message view link is clicked.
Fixes #4331
2017-09-08 11:30:57 -07:00
Cynthia Lin
ead2a4c071 left sidebar: Prevent closing in responsive mode.
Fixes #2913
2017-09-08 11:20:36 -07:00
Cynthia Lin
44b514d897 left sidebar: Move Streams header icons out of <a> elements. 2017-09-08 11:20:36 -07:00
Cynthia Lin
99025c8f10 search: Remove search close button when narrowed to home view.
Fixes #6426
2017-09-08 11:13:06 -07:00
Akash Nimare
bf470d3d1e updated desktop app to v1.4.0 2017-09-08 07:55:25 -07:00
Brock Whittaker
26f6d708c2 Make plan CTA buttons all line up. 2017-09-07 12:43:47 -07:00
Brock Whittaker
f026fc6f0c Add :hover and :active states to button.green.
This now adds these interactive states to the /plans/ page by
proxy of adding them to the `button.green` component.
2017-09-07 12:43:47 -07:00
Brock Whittaker
caf98941cb Change "&" => "&amp;" HTML entity.
This is a good change for HTML encoding.
2017-09-07 12:43:47 -07:00
Brock Whittaker
8895561ae3 Uncomment "Plans & Pricing" link in the footer. 2017-09-07 12:43:47 -07:00
Brock Whittaker
e82cc3f993 Add more margin-top to <h3> tag.
The <h3> default margin of 10px brought it too close vertically to the
the paragraph tag above it, so this increases it to 20px.
2017-09-07 12:40:03 -07:00
Brock Whittaker
aac7b3c5eb Increase font size of <p> and <li> to 1.2em.
This increases the font size from 1em => 1.2em.
2017-09-07 12:40:03 -07:00
Brock Whittaker
26281df767 Change line height in <p> and <li>.
This decreases the <p> line height from 1.8em to 1.6em, and increases
the <li> line height from 20px to 1.6.
2017-09-07 12:40:03 -07:00
Steve Howell
642e059725 fix_unreads: Add docstring explaining migration use case. 2017-09-07 07:06:03 -07:00
Steve Howell
4dfe6bb320 Add migration to fix unread messages. 2017-09-07 07:06:03 -07:00
Steve Howell
69203c1c81 fix_unreads: Remove commit() call in fix().
The commit() call in fix() breaks migrations and tests (unless you
mock) due to outer transactions.

We now explicitly call commit() from the management command.
2017-09-07 07:06:03 -07:00
Steve Howell
638675cd7e fix_unreads: Use raw SQL to check topic mutes.
Using raw SQL for checking the topic mutes makes it easier
to use the library in a migration.
2017-09-07 07:06:03 -07:00
Steve Howell
8cc8e87daf fix_unreads: Use logging instead of print. 2017-09-07 07:06:03 -07:00
Steve Howell
a2fe4178be Extract zerver/lib/fix_unreads.py.
This is a pure code move.
2017-09-07 07:06:03 -07:00
Steve Howell
848c0803bd Exclude muted topics from unread count. 2017-09-07 07:06:03 -07:00
Steve Howell
f5edeb01ae Calculate idle users more efficiently when sending messages.
Usually a small minority of users are eligible to receive missed
message emails or mobile notifications.

We now filter users first before hitting UserPresence to find idle
users.  We also simply check for the existence of recent activity
rather than borrowing the more complicated data structures that we
use for the buddy list.
2017-09-07 06:59:44 -07:00
Steve Howell
97c5f085e7 minor: Extract locals in do_send_messages().
This is a prepartory commit for another refactoring.
2017-09-07 06:59:44 -07:00
Steve Howell
981f557422 Extract receiver_is_off_zulip().
We are splitting out this logic from the more complicated
UserPresence-related logic, so that we can simplify the latter.
2017-09-07 06:59:44 -07:00
Steve Howell
776bdc59db Avoid unnecessary steps in process_message_event().
There is no reason to compute receiver_is_idle() unless a user
is actually PM'ed or mentioned.
2017-09-07 06:59:44 -07:00
Tommy Ip
b2fe5c6005 Remove duplicate field in .eslintrc.json.
'narrow_state' is already present in line 107.
2017-09-07 06:30:09 -07:00
Robert Hönig
34e3329919 linter: Add rule against misspelled "Terms of Service". 2017-09-07 06:29:33 -07:00
Greg Price
0986fe700d i18n: Keep markup out of a translated string where we easily can.
Use jQuery DOM construction methods, rather than string concatenation,
to keep things structured and to stay clear of the lint rules introduced
in ee6235d71.
2017-09-07 13:00:54 +09:00
Steve Howell
99f4d420a5 Reduce the font size for search.
Until we get search bubbles, the search text is kind of a
distracting detail for most users.  This just makes the
height 2px smaller for now.  This will also make more text
show up on mobile web.
2017-09-06 18:49:54 -07:00
Steve Howell
8e2d9b8f68 Make recipient bar styling more compact and clean. 2017-09-06 18:49:54 -07:00
Steve Howell
ad52ef27ee Make tab styling more compact and clean. 2017-09-06 18:49:54 -07:00
Umair Khan
bd43c447c3 travis: Log the Python version.
This allows us to ascertain the Python version under which we ran the
tests.
2017-09-06 13:48:50 -07:00
Umair Khan
a27eda1994 travis: Run backend tests in Python 3.5. 2017-09-06 13:48:50 -07:00
Umair Khan
c039f73656 setup_venv: Link to the correct Python interpreter.
Travis enables different Python versions through virtual environments,
but it seems that there is a little caveat when we try to create Zulip's
virtual environment by referring Travis' virtual environment; Zulip's
virtual environment refers the system Python. We encountered this
behaviour when we tried to run our backend test suite under Python 3.5
in Travis. 'python3 --version' command before activating Zulip's
virtualenv showed 'Python 3.5.3' and after it showed 'Python 3.4.3'.
This happened when we created the virtual environment using
'virtualenv -p python3'.

The solution seems to be to explicitly give the path of the Python
interpreter in the Travis' virtual environment using 'which python3'.
2017-09-06 13:48:50 -07:00
Aditya Bansal
d7f10bf3a1 profiling: Add snakeviz to dev tools.
This adds snakeviz to dev tools and also updates the message displayed
upon running `test-backend` with `--profile` option to say how to run
snakeviz correctly when using vagrant development environment.
2017-09-06 13:46:24 -07:00
Robert Hönig
910f04af29 bot settings: Properly hide bot_table_error. 2017-09-06 13:44:02 -07:00
Cynthia Lin
23e8582bfd message view: Change PM flag to match PM compose flag.
Fixes #6413
2017-09-06 10:12:13 -07:00
Robert Hönig
25742c1199 Capitalize s in Terms of service.
A few strings used `Terms of service`
instead of `Terms of Service`. This change
makes the latter form consistent over the repo.
2017-09-06 09:49:19 -07:00
Robert Hönig
6120841876 docs: Update bots_guide.md.
This include various small changes to adapt
this document to the latest repo changes.
2017-09-06 09:48:04 -07:00
Cynthia Lin
ec36382857 settings: Prevent backdrop leak when clicking outside of modal.
Fixes #3791 and closes #3794
2017-09-06 09:35:16 -07:00
Cynthia Lin
f697e6bb0e modals: Implement new modal methods. 2017-09-06 09:35:16 -07:00
Cynthia Lin
aa21b2bce6 overlays: Create modal helper methods to manage display status. 2017-09-06 09:35:16 -07:00
Cynthia Lin
915419e089 templates: Add links to user docs for empty starred/mentioned msg feeds.
Fixes #6376
2017-09-06 09:13:33 -07:00
Shubham Dhama
dc49f563eb message view: Fix line-wrapping of empty conversation/feed message. 2017-09-06 09:13:33 -07:00
Shubham Dhama
67abd9d1f7 message view: Center-align text of an empty conversation/feed message.
Fixes: #6150
2017-09-06 09:13:33 -07:00
Cynthia Lin
8bfc11bb98 hotkeys: Add uncondense/collapse/uncollapse message functionality.
Fixes #5914
2017-09-06 08:53:39 -07:00
Umair Khan
f7d8db792c makemessages: Allow whitespaces after comma in i18n.
We allow such patterns:

```
i18n.t('Test __variable__',
        {variable: "script"})
```
2017-09-06 07:01:43 -07:00
Umair Khan
ee6235d716 lint: Add regex to disallow i18n string concatenation.
Fixes #6398
2017-09-06 07:01:43 -07:00
Umair Khan
d52760d2ef i18n: Don't span i18n strings on multiple lines.
If we use string concatenation to span i18n strings across multiple
lines then we end with such strings to be translated by the translators:

```
"This is the first line"\n + "This is the second line"
```
2017-09-06 07:01:43 -07:00
Umair Khan
95fe984de5 i18n: Do not concatenate i18n strings.
We should use variables in i18n strings to give proper context to the
translators. If the pattern is this:

```
i18n.t("Count " + count + " items")
```

Then it will be captured like this:

```
{"Count" + count + "items": ""}
```

Which is not good for the translators.
2017-09-06 07:01:43 -07:00
Greg Price
5045e53d63 i18n: Update Japanese translations.
This comes from, in the dev environment:
  ./manage.py makemessages -l en -l ja
  tx push -s -l ja
  tx pull -f -l ja --mode=developer

The makemessages and `tx push` provide Transifex with the updated set
of strings and metadata.  I'm not entirely sure why that's necessary,
but without it a lone `tx pull` left the server crashing with numerous
zerver.models.DoesNotExist exceptions.

(So to be precise, there was another `tx pull` at the start, just like
the final one.  That shouldn't matter for the result, though.)
2017-09-04 13:29:55 +09:00