Calendar. Add event block

remotes/origin/1203
Назар Котюк 11 years ago
parent a5e35a6a37
commit 3a23d56b40
  1. 17
      accounts/models.py
  2. 1
      accounts/urls.py
  3. 22
      accounts/views.py
  4. 56
      templates/client/accounts/calendar.html
  5. 44
      templates/client/includes/accounts/calendar_list.html
  6. 2
      templates/client/includes/accounts/calendar_table.html

@ -222,6 +222,23 @@ class User(AbstractBaseUser, PermissionsMixin):
"""
return self.seminar_users.language().select_related('country', 'city').all()
def remove_from_calendar(self, data):
expo = data['expo']
conf = data['conf']
seminar = data['seminar']
webinar = data['webinar']
calendar = self.calendar
if expo:
calendar.expositions.remove(*expo)
if conf:
calendar.conferences.remove(*conf)
if seminar:
calendar.seminars.remove(*seminar)
if webinar:
calendar.webinars.remove(*webinar)
class Profile(models.Model):

@ -15,6 +15,7 @@ urlpatterns = patterns('',
url(r'^profile/$', login_required(ProfileView.as_view())),
url(r'^profile/company/$', login_required(ProfileCompanyView.as_view())),
url(r'^profile/settings/$', login_required(SettingsView.as_view())),
url(r'^profile/calendar/remove/$', 'accounts.views.remove_from_calendar'),
url(r'^profile/calendar/$', login_required(CalendarView.as_view())),
url(r'^profile/feed/page/(?P<page>\d+)/$', Feed.as_view()),
url(r'^profile/feed/$', login_required(Feed.as_view())),

@ -481,4 +481,24 @@ class Feed(ListView):
user = self.request.user
filter_form = self.filter_form(user=user)
context['filter_form'] = filter_form
return context
return context
@login_required
def remove_from_calendar(request):
if request.GET:
expo = request.GET.get('expo')
conf = request.GET.get('conf')
seminar = request.GET.get('seminar')
webinar = request.GET.get('webinar')
data = {'expo': expo if expo is None else json.loads(expo),
'conf': conf if conf is None else json.loads(conf),
'seminar': seminar if seminar is None else json.loads(seminar),
'webinar': webinar if webinar is None else json.loads(webinar)}
user = request.user
user.remove_from_calendar(data)
return HttpResponse(json.dumps({'success': True}), content_type='application/json')
else:
return Http404

@ -24,8 +24,64 @@
{% endwith %}
</div>
<div class="m-article cal-lists">
<div class="cl-sect">
<div class="cls-title">{{ days.15|date:"F"}}’{{ days.15|date:"y"}}</div>
{% include 'includes/accounts/calendar_list.html' with events=events %}
</div>
<div class="cl-actions clearfix">
<div class="cla-title">{% trans 'Все / выделенные:' %}</div>
<div class="cla-btns">
<a class="button" id="btn_delete" href="#">{% trans 'удалить из расписания' %}</a>
<!--
<a class="button icon-calendar-o" href="#">{% trans 'ЭКСПОРТИРОВАТЬ В' %} <span class="lc">iCal</span></a>
<a class="button icon-save" href="#">{% trans 'сохранить в xls' %}</a>
<a class="button icon-save" href="#">{% trans 'сохранить в pdf' %}</a>
<a class="button icon-print" href="#">{% trans 'Распечатать' %}</a>
-->
</div>
</div>
<div class="to-prev-cal">
<a class="icon-back" href="/profile/calendar/?year={{ days.15|add_month:'-1'|date:'Y' }}&month={{ days.15|add_month:'-1'|date:'m' }}">{% trans 'Посмотреть прошедший календарь' %}</a>
</div>
</div>
</div>
<script>
$(function () {
$('#btn_delete').on('click', function(e){
e.preventDefault();
var expos = $("input[name=expo]:checkbox:checked").map(function(){
return $(this).val();
}).get();
var confs = $("input[name=conf]:checkbox:checked").map(function(){
return $(this).val();
}).get();
var seminars = $("input[name=seminar]:checkbox:checked").map(function(){
return $(this).val();
}).get();
var webinars = $("input[name=webinar]:checkbox:checked").map(function(){
return $(this).val();
}).get();
var sendData = {'expo': JSON.stringify(expos),
'conf':JSON.stringify(confs),
'seminar':JSON.stringify(seminars),
'webinar': JSON.stringify(webinars)}
$.get('/profile/calendar/remove/', sendData, function(data){
if(data.success){
location.reload();
}
})
});
})
</script>
{% endblock %}
{% block scripts %}
<script src="{% static 'client/js/profile.js' %}"></script>
{% endblock %}

@ -0,0 +1,44 @@
<ul>
{% for event in events %}
<li>
<div class="cal-item clearfix">
<a href="{{ event.get_permanent_url }}">
<div class="cali-pict">
{% include 'client/includes/show_logo.html' with obj=event %}
</div>
</a>
<div class="cli-info">
<div class="cli-top clearfix">
<header>
<div class="cli-title"><a href="{{ event.get_permanent_url }}">{{ event.name|safe }}</a></div>
<div class="cli-icos">
<span class="ce-ico icon-check"></span>
<span class="ce-ico icon-fav"></span>
</div>
</header>
<div class="cli-descr">{{ event.main_title|safe }}</div>
</div>
<div class="cli-bot clearfix">
<div class="cli-date">
{% include 'client/includes/show_date_block.html' with obj=event %}
</div>
<div class="cli-place">
<a href="{{ event.catalog }}country/{{ event.country.url }}">{{ event.country }}</a>, <a href="{{ event.catalog }}city/{{ event.city.url }}">{{ event.city }}</a>,
{% if event.place %}
<a href="/places/{{ event.place.url }}">{{ event.place }}</a>
{% endif %}
</div>
</div>
</div>
</div>
<div class="check-wrap">
<label class="check"><input type="checkbox" name="{{ event.event_type }}" value="{{ event.id }}" /></label>
</div>
</li>
{% endfor %}
</ul>

@ -9,7 +9,7 @@
<div class="ep-sect-body calenadar-body">
<header>
<div class="pc-month-wrap">
<a class="pcm-prev" href="/profile/calendar/?year={{ days.15|add_month:'-1'|date:'Y' }}&month={{ days.0|add_month:'-1'|date:'m' }}">&lt;</a>
<a class="pcm-prev" href="/profile/calendar/?year={{ days.15|add_month:'-1'|date:'Y' }}&month={{ days.15|add_month:'-1'|date:'m' }}">&lt;</a>
<div class="pc-month">{{ days.15|date:"F"}}’{{ days.15|date:"y"}}</div>
<a class="pcm-next" href="/profile/calendar/?year={{ days.15|add_month:'1'|date:'Y' }}&month={{ days.15|add_month:'1'|date:'m' }}">&gt;</a>
</div>

Loading…
Cancel
Save