- Галлерея
+ Галерея
diff --git a/apps/content/templates/content/contest_work.html b/apps/content/templates/content/contest_work.html
index 00f2bca3..04fdc3c4 100644
--- a/apps/content/templates/content/contest_work.html
+++ b/apps/content/templates/content/contest_work.html
@@ -8,13 +8,13 @@
@@ -68,7 +68,7 @@
- {% include 'templates/blocks/share.html' %}
+ {% include 'templates/blocks/share.html' with share_object_name='работой' %}
{% endblock content %}
diff --git a/apps/content/views.py b/apps/content/views.py
index 38461f16..dd22d463 100644
--- a/apps/content/views.py
+++ b/apps/content/views.py
@@ -28,6 +28,7 @@ class ContestView(DetailView):
model = Contest
context_object_name = 'contest'
template_name = 'content/contest.html'
+ query_pk_and_slug = True
def get_context_data(self, *args, **kwargs):
context = super().get_context_data()
diff --git a/project/templates/blocks/header.html b/project/templates/blocks/header.html
index 5be001d8..38d314bf 100644
--- a/project/templates/blocks/header.html
+++ b/project/templates/blocks/header.html
@@ -50,6 +50,9 @@
+
{% include 'templates/blocks/user_menu.html' %}
diff --git a/project/templates/blocks/lil_store_js.html b/project/templates/blocks/lil_store_js.html
index e944a567..cb5eb6f8 100644
--- a/project/templates/blocks/lil_store_js.html
+++ b/project/templates/blocks/lil_store_js.html
@@ -4,7 +4,7 @@
staticUrl: '{% static "" %}',
accessToken: '{{ request.user.auth_token }}',
user: {
- id: '{{ request.user.id }}',
+ id: {{ request.user.id|default:'null' }},
}
};
diff --git a/project/templates/blocks/share.html b/project/templates/blocks/share.html
index c895fe32..9bb1cb72 100644
--- a/project/templates/blocks/share.html
+++ b/project/templates/blocks/share.html
@@ -1,7 +1,7 @@
{% load static %}
-
Поделиться {% if livelesson or lesson %}уроком{% else %}курсом{% endif %}
+
Поделиться {% if share_object_name %}{{ share_object_name }}{% else %}{% if livelesson or lesson %}уроком{% else %}курсом{% endif %}{% endif %}
-
+
@@ -85,7 +85,9 @@
};
},
mounted() {
- $('[data-show-upload-contest-work]').click(() => {
+ $('[data-show-upload-contest-work]').click((e) => {
+ e.preventDefault();
+ e.stopPropagation();
this.clear();
this.show();
});
@@ -127,7 +129,7 @@
},
save() {
if(! this.validate()) {
- return;
+ return false;
}
let data = this.contestWork;
data.contest = this.contestId;
@@ -138,7 +140,7 @@
}
});
request.then((response) => {
- if(response.data.id){
+ if(+response.data.id){
this.$emit('add:contest-work', response.data);
this.hide();
window.location.reload();
diff --git a/web/src/components/blocks/Likes.vue b/web/src/components/blocks/Likes.vue
index 10979c93..d1807254 100644
--- a/web/src/components/blocks/Likes.vue
+++ b/web/src/components/blocks/Likes.vue
@@ -1,6 +1,7 @@
- {{ likesProp }}
+ {{ likesProp }}
@@ -20,25 +21,29 @@
}
},
methods: {
- addLike() {
- if(this._userLiked){
+ addLike(event) {
+ if(this.userLikedProp){
return;
}
- api.post('/api/v1/likes/', {
- obj_type: this.objType,
- obj_id: this.objId,
- }, {
- headers: {
- 'Authorization': `Token ${this.$root.store.accessToken}`,
- }
- })
- .then((response) => {
- if(response.data && response.data.id) {
- this.userLikedProp = true;
- this.likesProp += 1;
- this.$emit('liked');
- }
- })
+ if(this.$root.store.user.id) {
+ event.stopPropagation();
+ api.post('/api/v1/likes/', {
+ user: this.$root.store.user.id, // FIXME
+ obj_type: this.objType,
+ obj_id: this.objId,
+ }, {
+ headers: {
+ 'Authorization': `Token ${this.$root.store.accessToken}`,
+ }
+ })
+ .then((response) => {
+ if (response.data && response.data.id) {
+ this.userLikedProp = true;
+ this.likesProp += 1;
+ this.$emit('liked');
+ }
+ });
+ }
}
}
}
diff --git a/web/src/js/modules/popup.js b/web/src/js/modules/popup.js
index f4bb5e94..a1a91d9f 100644
--- a/web/src/js/modules/popup.js
+++ b/web/src/js/modules/popup.js
@@ -6,10 +6,13 @@ $(document).ready(function () {
popup;
body.on('click', '[data-popup]', function(e){
+ let data = $(this).data('popup');
+ if(! data) {
+ return true;
+ }
e.preventDefault();
e.stopPropagation();
- let data = $(this).data('popup');
popup = $(data);
showPopup();
diff --git a/web/src/sass/_common.sass b/web/src/sass/_common.sass
index 71e3d94d..fdeca783 100755
--- a/web/src/sass/_common.sass
+++ b/web/src/sass/_common.sass
@@ -4139,3 +4139,15 @@ a
&__bio
flex: calc(100% - 70px);
+.loading-loader
+ content: ''
+ position: absolute
+ top: 50%
+ left: 50%
+ width: 24px
+ height: 24px
+ margin: -12px 0 0 -12px
+ border: 3px solid #B5B5B5
+ border-left: 3px solid transparent
+ border-radius: 50%
+ animation: loading .6s infinite linear