Commit 5e47149779c27e03c05f8bc8fb4399c08bf5183c
1 parent
08d6a5c1
Some fixes to bugs caused by removing private notes.
Showing
4 changed files
with
71 additions
and
27 deletions
dictionary/ajax_lemma_view.py
... | ... | @@ -503,10 +503,13 @@ def hide_message_duplicates(messages): |
503 | 503 | |
504 | 504 | @ajax(method='post') |
505 | 505 | def get_lemma_note(request, message_id): |
506 | - message_obj = Message.objects.get(id=message_id) | |
507 | - return {'private' : message_obj.private, | |
508 | - 'topic' : message_obj.topic, | |
509 | - 'message_text' : message_obj.message_text} | |
506 | + try: | |
507 | + message_obj = Message.objects.get(id=message_id) | |
508 | + except Message.DoesNotExist: | |
509 | + raise AjaxError('already removed') | |
510 | + return {'private' : message_obj.private, | |
511 | + 'topic' : message_obj.topic, | |
512 | + 'message_text' : message_obj.message_text} | |
510 | 513 | |
511 | 514 | @ajax(method='post') |
512 | 515 | def lemma_notes_form_submit(request, form_data): |
... | ... | @@ -1789,11 +1792,14 @@ def entry_lookup(request, term): |
1789 | 1792 | ######################### LEMMA NOTES ################### |
1790 | 1793 | @ajax(method='post') |
1791 | 1794 | def remove_lemma_note(request, message_id): |
1792 | - message_obj = Message.objects.get(id=message_id) | |
1793 | - if(message_obj.sender != request.user or not message_obj.private): | |
1794 | - raise AjaxError('can not remove') | |
1795 | - message_obj.delete(); | |
1796 | - return {} | |
1795 | + try: | |
1796 | + message_obj = Message.objects.get(id=message_id) | |
1797 | + except Message.DoesNotExist: | |
1798 | + raise AjaxError('already removed') | |
1799 | + if(message_obj.sender != request.user or not message_obj.private): | |
1800 | + raise AjaxError('can not remove') | |
1801 | + message_obj.delete(); | |
1802 | + return {} | |
1797 | 1803 | |
1798 | 1804 | ############### CZASOWNIKI PODOBNE ################### |
1799 | 1805 | @ajax(method='post') |
... | ... |
dictionary/ajax_user_notes.py
... | ... | @@ -26,25 +26,37 @@ from dictionary.models import Message |
26 | 26 | @render('note_text.html') |
27 | 27 | @ajax(method='get', encode_result=False) |
28 | 28 | def get_note_text(request, id): |
29 | - message_obj = Message.objects.get(id=id) | |
30 | - message_obj.new = False | |
31 | - message_obj.save() | |
32 | - return {'message_text': message_obj.message_text} | |
29 | + message_text = '' | |
30 | + try: | |
31 | + message_obj = Message.objects.get(id=id) | |
32 | + message_obj.new = False | |
33 | + message_obj.save() | |
34 | + message_text = message_obj.message_text | |
35 | + except Message.DoesNotExist: | |
36 | + pass | |
37 | + return {'message_text': message_text} | |
33 | 38 | |
34 | 39 | @ajax(method='post') |
35 | -def remove_note(request, message_id): | |
36 | - message_obj = Message.objects.get(id=message_id) | |
40 | +def remove_note(request, message_id): | |
41 | + try: | |
42 | + message_obj = Message.objects.get(id=message_id) | |
43 | + except Message.DoesNotExist: | |
44 | + raise AjaxError('already removed') | |
37 | 45 | if message_obj.sender != request.user or not message_obj.private: |
38 | 46 | raise AjaxError('can not remove') |
39 | 47 | message_obj.delete() |
40 | 48 | return {} |
41 | 49 | |
42 | 50 | @ajax(method='post') |
43 | -def get_lemma_from_note(request, message_id): | |
44 | - message_obj = Message.objects.get(id=message_id) | |
45 | - request.session['lemma_from_note_entry'] = message_obj.lemma.entry | |
46 | - request.session['lemma_from_note_id'] = message_obj.lemma.id | |
47 | - new_notes_count = request.user.user_settings.new_notes_number() | |
51 | +def get_lemma_from_note(request, message_id): | |
52 | + try: | |
53 | + message_obj = Message.objects.get(id=message_id) | |
54 | + request.session['lemma_from_note_entry'] = message_obj.lemma.entry | |
55 | + request.session['lemma_from_note_id'] = message_obj.lemma.id | |
56 | + new_notes_count = request.user.user_settings.new_notes_number() | |
57 | + except Message.DoesNotExist: | |
58 | + new_notes_count = request.user.user_settings.new_notes_number() | |
59 | + raise AjaxError('already removed') | |
48 | 60 | return {'new_notes_count': new_notes_count} |
49 | 61 | |
50 | 62 | @ajax(method='post') |
... | ... |
dictionary/static/js/lemma-view.js
... | ... | @@ -2320,6 +2320,18 @@ function selectNotesTr(id) |
2320 | 2320 | HideProgressAnimation(); |
2321 | 2321 | error_alert(status + ': ' + error); |
2322 | 2322 | }, |
2323 | + | |
2324 | + bad_data_callback: function(result) { | |
2325 | + if (result == 'already removed') { | |
2326 | + HideProgressAnimation(); | |
2327 | + error_alert('Notatka została usunięta, odśwież widok.'); | |
2328 | + return false; | |
2329 | + } | |
2330 | + else { | |
2331 | + HideProgressAnimation(); | |
2332 | + return true; | |
2333 | + } | |
2334 | + }, | |
2323 | 2335 | }); |
2324 | 2336 | } |
2325 | 2337 | } |
... | ... | @@ -4748,18 +4760,17 @@ function saveHandle(event) |
4748 | 4760 | } |
4749 | 4761 | |
4750 | 4762 | ////////// lemma notes /////////////// |
4751 | -function removeLemmaNote(id) | |
4752 | -{ | |
4753 | - ShowProgressAnimation(); | |
4763 | +function removeLemmaNote(id) { | |
4754 | 4764 | if(id != -1) |
4755 | 4765 | { |
4766 | + ShowProgressAnimation(); | |
4756 | 4767 | message_id = id.replace('note_', ''); |
4757 | 4768 | |
4758 | 4769 | $.ajaxJSON({ |
4759 | 4770 | method: 'post', |
4760 | 4771 | url: ajax_remove_lemma_note, |
4761 | 4772 | data: { |
4762 | - message_id: message_id//, | |
4773 | + message_id: message_id, | |
4763 | 4774 | }, |
4764 | 4775 | |
4765 | 4776 | callback: function(result) { |
... | ... | @@ -4778,8 +4789,12 @@ function removeLemmaNote(id) |
4778 | 4789 | error_alert('Usuwać można jedynie notatki prywatne.'); |
4779 | 4790 | return false; |
4780 | 4791 | } |
4781 | - else | |
4782 | - { | |
4792 | + else if (result == 'already removed') { | |
4793 | + HideProgressAnimation(); | |
4794 | + error_alert('Notatka została już usunięta, odśwież widok.'); | |
4795 | + return false; | |
4796 | + } | |
4797 | + else { | |
4783 | 4798 | HideProgressAnimation(); |
4784 | 4799 | return true; |
4785 | 4800 | } |
... | ... |
dictionary/static/js/user-notes.js
... | ... | @@ -113,7 +113,10 @@ function delete_user_note() { |
113 | 113 | error_alert('Usuwać można jedynie notatki prywatne.'); |
114 | 114 | return false; |
115 | 115 | } |
116 | - | |
116 | + else if (result == 'already removed') { | |
117 | + error_alert('Notatka została usunięta, odśwież widok.'); | |
118 | + return false; | |
119 | + } | |
117 | 120 | else |
118 | 121 | return true; |
119 | 122 | }, |
... | ... | @@ -146,6 +149,14 @@ function get_lemma_from_note(id) |
146 | 149 | error_callback: function(xhr, status, error) { |
147 | 150 | error_alert(status + ': ' + error); |
148 | 151 | }, |
152 | + bad_data_callback: function(result) { | |
153 | + if (result == 'already removed') { | |
154 | + error_alert('Notatka została usunięta, odśwież widok.'); | |
155 | + return false; | |
156 | + } | |
157 | + else | |
158 | + return true; | |
159 | + }, | |
149 | 160 | }); |
150 | 161 | } |
151 | 162 | |
... | ... |