Esempio n. 1
0
File: views.py Progetto: relique/crm
def index(request):
    user = request.user
    if request.method == 'POST':
        form = EventForm(request.POST)
        if form.is_valid():
            event = form.save(user=user)
            title = event._meta.verbose_name.title()
            messages.success(
                request, "{event} was added.".format(event=title))
        else:
            messages.error(request, form.errors)
    else:
        form = EventForm()

    today = dt.date.today()
    if 'filter' in request.GET:
        date = dt.datetime.strptime(request.GET['filter'], '%d-%m-%Y').date()
    else:
        date = today

    from_ = dt.datetime(date.year, date.month, date.day)
    nextdate = date + dt.timedelta(days=1)
    to = dt.datetime(nextdate.year, nextdate.month, nextdate.day)

    followups = FollowUp.objects.filter(user__company=user.company, date=date)
    meetings = Meeting.objects.filter(
        Q(date_started__range=(from_, to)) | Q(date_ended__range=(from_, to)),
        user__company=user.company)

    if not user.is_head:
        followups = followups.filter(user=user)
        meetings = meetings.filter(user=user)

    mdict = dict()
    for m in meetings:
        # Keep data in `mdict` in a object-per-time format.
        # E.g. mdict[6] will retrieve a `Meeting` object at 6 o'clock.
        hr = str(m.date_started.hour)
        if len(hr) == 1:
            hr = '0' + hr
        min_ = str(m.date_started.minute)
        if len(min_) == 1:
            min_ = '0' + min_
        time = '{hr}:{min}'.format(hr=hr, min=min_)
        mdict[time] = m

    ctx = {
        'event_form': form,
        'is_today': True if date == today else False,
        'followup_list': followups,
        'meeting_list': sorted(mdict.items()),
        'title': "My events",
        'title_icon': 'calendar-o',
        'date': '{month} {day}'.format(month=LONG_MONTH_NAMES[date.month-1],
                                       day=date.day)
    }
    return render(request, 'events/index.html', ctx)
Esempio n. 2
0
 def get(self, request, *args, **kwargs):
     id = self.id
     if id is None:
         return HttpResponseForbidden()
     event = Event.objects.filter(id=self.id).first()
     if event is None:
         form = EventForm()
     else:
         form = EventForm(instance=event)
     return render(request, "dashboard/events/create.html", locals())
Esempio n. 3
0
 def post(self, request, *args, **kwargs):
     post = request.POST.copy()
     form = EventForm(post)
     if form.is_valid():
         form.save()
         return redirect(reverse("events_index_dashboard"))
     else:
         for e in form.errors:
             messages.error(request, e)
     return render(request, "dashboard/events/create.html", locals())
Esempio n. 4
0
def CreateEvent(request):
    if request.method == 'GET':
        type_events = TypeEventModel.objects.all()
        type_location = TypeLocation.objects.all()
        config = ConfigPlatform.objects.get(id=1)

        return render(request,
                      'event/event_new.html',
                      context={
                          'type_events': type_events,
                          'type_location': type_location,
                          'config': config
                      })
    elif request.method == 'POST':

        if request.POST.get('idevent'):
            event = EventModel.objects.filter(
                id=request.POST.get('idevent')).first()
            event.title = request.POST.get('title')
            event.url_event = request.POST.get('url_event')
            event.description = request.POST.get('description')
            event.type_event = TypeEventModel.objects.get(
                id=request.POST.get('id_type'))
            event.location_name = request.POST.get('locationName')
            event.location_address = request.POST.get('locationAddress')
            event.location_state = request.POST.get('locationState')
            event.location_country = request.POST.get('locationCountry')
            event.save()

            return JsonResponse({
                'status': "change",
            })
        else:
            form = EventForm(request.POST)

            if form.is_valid():
                event = form.save(commit=False)
                event.user = User.objects.filter(id=request.user.id).first()
                newevent = form.save()

                return JsonResponse({
                    'status': "OK",
                    'id_event': newevent.id,
                })
            else:
                return JsonResponse({
                    'status': "Error",
                    'errors': form.errors,
                })
Esempio n. 5
0
    def generate_missing_fields_form(*fields):
        data = {
            "name":
            "Name",
            "start_date_time":
            make_aware(datetime.datetime(2200, 1, 1, hour=1, minute=20)),
            "end_date_time":
            make_aware(datetime.datetime(2200, 1, 1, hour=1, minute=20)),
            "member_only":
            True,
            "lead":
            "Lead",
            "description":
            "Description",
            "location":
            "Location",
            "organizer":
            Group(name="organizer-group").save(),
            "price":
            42.0,
        }
        upload_image = get_image_file()
        files = {
            "image": SimpleUploadedFile(upload_image.name, upload_image.read())
        }

        for field in fields:
            if field in data:
                del data[field]
            if field in files:
                del files[field]
        return EventForm(data=data, files=files)
Esempio n. 6
0
    def test_event_form(self):

        response = self.client.get('/events/create')
        html = response.content.decode('utf-8')

        user = User(**self.user)
        event = Event(author=user, **self.event)
        form = EventForm(instance=event)
Esempio n. 7
0
def insertEventType(request):
    if request.method == 'POST':
        form = EventTypeForm(request.POST)
        if form.is_valid():
            form.save()
            messages.success(request,'Tipo de evento agregado')
            form2 = EventForm()
        return HttpResponseRedirect(reverse('evento_crear'))
    else:
        form = EventTypeForm()   
    return render(request, 'events/insertEvenType.html',{'form':form}) 
Esempio n. 8
0
def updateEvent(request,id):
    event = Event.objects.get(id=id)
    if request.method =='GET':
        form= EventForm(instance=event)
    else:
        form = EventForm(request.POST, instance=event)
        if form.is_valid():
            form.save()
        return redirect('evento_listar')
    return render(request,'events/insertEvents.html',{'form':form})
Esempio n. 9
0
def index(request):

    context = RequestContext(request)

    registered = False

    if request.method == "POST":

        event_form = EventForm(data=request.POST)

        if event_form.is_valid():

            event = event_form.save(commit=False)
            if request.user.is_authenticated():
                event.organizer = request.user

            event.save()
            event_form.save_m2m()
            return HttpResponseRedirect("/")

            registered = True

        else:
            print event_form.errors

    else:
        event_form = EventForm()

    return render_to_response("events/event_form.html", {"event_form": event_form, "registered": registered}, context)
Esempio n. 10
0
def insertEvent(request):
    if request.method == 'POST':
        form = EventForm(request.POST)
        if form.is_valid():
            form.save()
            object = Event()
            event = Event.objects.get(id=str(object.lastEventId()))
            event.image="./images/porDefecto.jpg"
            event.url="http://localhost:8000"
            event.save()
            messages.success(request,'Evento creado exitosamente')
        return HttpResponseRedirect(reverse('evento_imagen', args=[object.lastEventId()]))
    else:
        form = EventForm()
    return render(request, 'events/insertEvents.html',{'form':form})
Esempio n. 11
0
 def post(self, request, *args, **kwargs):
     id = self.id
     if id is None:
         return HttpResponseForbidden()
     event = Event.objects.filter(id=self.id).first()
     post = self.request.POST.copy()
     if event is None:
         form = EventForm(post)
     else:
         form = EventForm(post, instance=event)
     if form.is_valid():
         form.save()
         return redirect(reverse("events_index_dashboard"))
     else:
         for e in form.errors:
             messages.error(request, e)
     return render(request, "dashboard/events/create.html", locals())
Esempio n. 12
0
    def generate_form(
        name="Name",
        start_date_time=None,
        end_date_time=None,
        image=None,
        member_only=False,
        lead="Lead",
        description="Description",
        location="Location",
        organizer=None,
        price=20.0,
    ) -> EventForm:
        if start_date_time is None:
            start_date_time = make_aware(
                datetime.datetime(2200, 1, 1, hour=1, minute=20))
        if end_date_time is None:
            end_date_time = make_aware(
                datetime.datetime(2200, 1, 1, hour=1, minute=20))

        if organizer is None:
            organizer = Group(name="organizer-group").save()
        files = {}
        if image is None:
            upload_image = get_image_file()
            files["image"] = SimpleUploadedFile(upload_image.name,
                                                upload_image.read())

        return EventForm(
            data={
                "name": name,
                "start_date_time": start_date_time,
                "end_date_time": end_date_time,
                "member_only": member_only,
                "lead": lead,
                "description": description,
                "location": location,
                "organizer": organizer,
                "price": price,
            },
            files=files,
        )
Esempio n. 13
0
 def get(self, request, *args, **kwargs):
     form = EventForm()
     return render(request, "dashboard/events/create.html", locals())
Esempio n. 14
0
File: views.py Progetto: relique/crm
def index(request):
    user = request.user
    if request.method == 'POST':
        form = EventForm(request.POST)
        if form.is_valid():
            event = form.save(user=user)
            title = event._meta.verbose_name.title()
            messages.success(request, "{event} was added.".format(event=title))
        else:
            messages.error(request, form.errors)
    else:
        form = EventForm()

    today = dt.date.today()
    if 'filter' in request.GET:
        date = dt.datetime.strptime(request.GET['filter'], '%d-%m-%Y').date()
    else:
        date = today

    from_ = dt.datetime(date.year, date.month, date.day)
    nextdate = date + dt.timedelta(days=1)
    to = dt.datetime(nextdate.year, nextdate.month, nextdate.day)

    followups = FollowUp.objects.filter(user__company=user.company, date=date)
    meetings = Meeting.objects.filter(Q(date_started__range=(from_, to))
                                      | Q(date_ended__range=(from_, to)),
                                      user__company=user.company)

    if not user.is_head:
        followups = followups.filter(user=user)
        meetings = meetings.filter(user=user)

    mdict = dict()
    for m in meetings:
        # Keep data in `mdict` in a object-per-time format.
        # E.g. mdict[6] will retrieve a `Meeting` object at 6 o'clock.
        hr = str(m.date_started.hour)
        if len(hr) == 1:
            hr = '0' + hr
        min_ = str(m.date_started.minute)
        if len(min_) == 1:
            min_ = '0' + min_
        time = '{hr}:{min}'.format(hr=hr, min=min_)
        mdict[time] = m

    ctx = {
        'event_form':
        form,
        'is_today':
        True if date == today else False,
        'followup_list':
        followups,
        'meeting_list':
        sorted(mdict.items()),
        'title':
        "My events",
        'title_icon':
        'calendar-o',
        'date':
        '{month} {day}'.format(month=LONG_MONTH_NAMES[date.month - 1],
                               day=date.day)
    }
    return render(request, 'events/index.html', ctx)
Esempio n. 15
0
def watchlist_base_chart_contents_extra_context(view):

    extra_context = dict()

    # Captured values
    kwargs = view.kwargs
    chart_id = kwargs.get('ci')
    watchlist_id = kwargs.get('wi')
    content_type = kwargs.get('ct')
    object_id = kwargs.get('oi')
    last_content_type = kwargs.get('lct')
    last_object_id = kwargs.get('loi')

    # Post data
    data = kwargs.get('POST') or QueryDict()
    selected_years = data.getlist('average_years[]')

    watchlist = Watchlist.objects.get(id=watchlist_id)

    # selected sources
    sources = None

    # filter items & types
    if content_type == 'config':
        items = watchlist.children().filter(product__config__id=object_id)

    elif content_type == 'type':
        if last_content_type == 'abstractproduct':
            items = watchlist.children().filter_by_product(product__id=last_object_id)

    elif content_type == 'abstractproduct':
        items = watchlist.children().filter_by_product(product__id=object_id)

    elif content_type == 'source':
        items = watchlist.children().filter_by_product(product__id=last_object_id)
        sources = Source.objects.filter(id=object_id)

    types = Type.objects.filter_by_watchlist_items(watchlist_items=items)
    if content_type == 'type':
        types = types.filter(id=object_id)

    extra_context['unit_json'] = UnitSerializer(items.get_unit()).data

    # get tran data by chart
    series_options = []

    if chart_id in ['1', '2', '5']:
        for t in types:
            end_date = datetime.date.today() if chart_id == '1' else None
            start_date = end_date + datetime.timedelta(days=-13) if chart_id == '1' else None
            option = get_daily_price_volume(_type=t,
                                            items=items.filter(product__type=t),
                                            sources=sources,
                                            start_date=start_date,
                                            end_date=end_date)
            if not option['no_data']:
                series_options.append(option)

        if chart_id == '5':
            event_form = EventForm()
            extra_context['event_form'] = event_form
            extra_context['event_form_js'] = [event_form.media.absolute_path(js) for js in event_form.media._js[1:]]
            if content_type in ['config', 'abstractproduct']:
                extra_context['event_content_type_id'] = ContentType.objects.get(model=content_type).id
                extra_context['event_object_id'] = object_id
            elif content_type in ['type', 'source']:
                extra_context['event_content_type_id'] = ContentType.objects.get(model=last_content_type).id
                extra_context['event_object_id'] = last_object_id

    if chart_id == '3':
        for t in types:
            option = get_daily_price_by_year(_type=t,
                                             items=items.filter(product__type=t),
                                             sources=sources)
            if not option['no_data']:
                series_options.append(option)

    if chart_id == '4':
        this_year = datetime.datetime.now().year
        selected_years = selected_years or [y for y in range(this_year-5, this_year)]  # default latest 5 years
        selected_years = [int(y) for y in selected_years]  # cast to integer

        extra_context['method'] = view.request.method
        extra_context['selected_years'] = selected_years

        for t in types:
            option = get_monthly_price_distribution(_type=t,
                                                    items=items.filter(product__type=t),
                                                    sources=sources,
                                                    selected_years=selected_years)
            if not option['no_data']:
                series_options.append(option)

    extra_context['series_options'] = series_options
    extra_context['chart'] = Chart.objects.get(id=chart_id)

    return extra_context