Removed django context, now uses only React
This commit is contained in:
parent
575577642c
commit
30407e09dc
@ -30,14 +30,6 @@
|
|||||||
|
|
||||||
<div class="row justify-content-center new-section">
|
<div class="row justify-content-center new-section">
|
||||||
|
|
||||||
{% block hidden_form %}
|
|
||||||
<div style="display: none">
|
|
||||||
{% for field in form.users %}
|
|
||||||
{{ field.tag }}
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
<div class="col-10">
|
<div class="col-10">
|
||||||
<h6 class="table-title">Список сотрудников</h6>
|
<h6 class="table-title">Список сотрудников</h6>
|
||||||
|
|
||||||
@ -50,25 +42,11 @@
|
|||||||
<th>Role</th>
|
<th>Role</th>
|
||||||
<th>Checked</th>
|
<th>Checked</th>
|
||||||
</thead>
|
</thead>
|
||||||
|
<tbody id="tbody">
|
||||||
<tbody id="old_tbody">
|
|
||||||
{% for user in users %}
|
|
||||||
<tr>
|
|
||||||
<td><a href="#">{{ user.name }}</a></td>
|
|
||||||
<td>{{ user.user.email }}</td>
|
|
||||||
<td>{% if user.custom_role_id == ZENDESK_ROLES.engineer %}
|
|
||||||
engineer
|
|
||||||
{% elif user.custom_role_id == ZENDESK_ROLES.light_agent %}
|
|
||||||
light_agent
|
|
||||||
{% endif %}
|
|
||||||
</td>
|
|
||||||
<td class="checkbox_field"></td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
</tbody>
|
||||||
<tbody id="new_tbody"></tbody>
|
|
||||||
</table>
|
</table>
|
||||||
{% endblock%}
|
<p id="loading">Данные загружаются...</p>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -96,7 +74,9 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block buttons %}
|
||||||
<div class="col-5">
|
<div class="col-5">
|
||||||
|
|
||||||
<button type="submit" name="engineer" class="request-acess-button default-button">
|
<button type="submit" name="engineer" class="request-acess-button default-button">
|
||||||
@ -107,8 +87,9 @@
|
|||||||
Назначить выбранных на роль легкого агента
|
Назначить выбранных на роль легкого агента
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
|
||||||
</form>
|
</form>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
@ -285,13 +285,9 @@ class AdminPageView(LoginRequiredMixin, PermissionRequiredMixin,SuccessMessageMi
|
|||||||
Функция формирования контента страницы администратора (с проверкой прав доступа)
|
Функция формирования контента страницы администратора (с проверкой прав доступа)
|
||||||
"""
|
"""
|
||||||
context = super().get_context_data(**kwargs)
|
context = super().get_context_data(**kwargs)
|
||||||
users = get_list_or_404(
|
|
||||||
UserProfile, role='agent')
|
|
||||||
context['users'] = users
|
|
||||||
context['ZENDESK_ROLES'] = ZENDESK_ROLES
|
|
||||||
context['engineers'], context['light_agents'] = count_users(get_users_list())
|
context['engineers'], context['light_agents'] = count_users(get_users_list())
|
||||||
context['licences_remaining'] = max(0, ZENDESK_MAX_AGENTS - context['engineers'])
|
context['licences_remaining'] = max(0, ZENDESK_MAX_AGENTS - context['engineers'])
|
||||||
return context # TODO: need to get profile page url
|
return context
|
||||||
|
|
||||||
|
|
||||||
class CustomLoginView(LoginView):
|
class CustomLoginView(LoginView):
|
||||||
|
@ -1,21 +1,5 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
function move_checkboxes() {
|
|
||||||
let checkboxes = document.getElementsByName("users");
|
|
||||||
let fields = document.querySelectorAll(".checkbox_field");
|
|
||||||
if (checkboxes.length == fields.length) {
|
|
||||||
for (let i = 0; i < fields.length; ++i) {
|
|
||||||
let el = checkboxes[i].cloneNode(true);
|
|
||||||
fields[i].appendChild(el);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
alert(
|
|
||||||
"Количество пользователей агентов не соответствует количеству полей в форме AdminPageUsers"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
move_checkboxes();
|
|
||||||
|
|
||||||
// React
|
// React
|
||||||
class TableRow extends React.Component {
|
class TableRow extends React.Component {
|
||||||
render() {
|
render() {
|
||||||
@ -49,8 +33,8 @@ class TableBody extends React.Component {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
get_users() {
|
async get_users() {
|
||||||
axios.get("/api/users").then((response) => {
|
await axios.get("/api/users").then((response) => {
|
||||||
this.setState({
|
this.setState({
|
||||||
users: response.data.users,
|
users: response.data.users,
|
||||||
engineers: response.data.engineers,
|
engineers: response.data.engineers,
|
||||||
@ -62,7 +46,12 @@ class TableBody extends React.Component {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete_pretext() {
|
||||||
|
document.getElementById("loading").remove();
|
||||||
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
|
this.get_users().then(() => this.delete_pretext());
|
||||||
this.interval = setInterval(() => {
|
this.interval = setInterval(() => {
|
||||||
this.get_users();
|
this.get_users();
|
||||||
}, 60000);
|
}, 60000);
|
||||||
@ -79,5 +68,4 @@ class TableBody extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ReactDOM.render(<TableBody />, document.getElementById("new_tbody"));
|
ReactDOM.render(<TableBody />, document.getElementById("tbody"));
|
||||||
setTimeout(() => document.getElementById("old_tbody").remove(), 60000);
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user