javascript – Problemas a la hora de mostrar los eventos en FullCalendar

El problema es el siguiente, mi evento (reserva de turno en este casi) tiene como atributos los siguientes campos:

  • id: number;
  • nombreApellido: string;
  • inicio: Date;
  • fin: Date;
  • precio: number;
  • cancha: Cancha;

Y fullCalendar admite como atributos para mostrar ‘title’, ‘start’ y ‘end’. En este caso, ‘start’ estaría formado por ‘nombreApellido’, ‘precio’ y ‘cancha’ (valor numérico solamente – número de cancha). Como se podría hacer para asignarle a los atributos del fullCalendar mis atributos??

Soy nuevo en esto, estoy usando Angular y a fullCalendar es la primera vez que lo uso.

reserva.service.ts

import { Observable } from 'rxjs';
import { Injectable } from '@angular/core';
import { Cancha } from './canchas.service';
import { Reserva } from '../models/reserva';
import { UrlService } from './url.service';
import { HttpClient } from '@angular/common/http';
import * as moment from 'moment';

@Injectable({
  providedIn: 'root'
})
export class ReservaService {

  private reserva: Reserva() = ();

  constructor(private _http: HttpClient, private _url: UrlService) { }

  guardarReserva(reserva: Reserva): Observable<Reserva> {
    reserva.start = moment(reserva.startDate).format('YYYY-MM-DDTHH:mm');
    reserva.end = moment(reserva.endDate).format('YYYY-MM-DDTHH:mm');
    console.log('Reserva servicio: ', reserva);
    return this._http.post<Reserva>(this._url.getURLBase() + '/reserva', reserva);
   }

  getReservas(): Observable<Reserva()> {
    return this._http.get<Reserva()>(this._url.getURLBase() + '/reserva');
  }

}
export interface IReserva {
  id: number;
  title: string;
  cancha: Cancha;
  start: string;
  end: string;
  startDate: Date;
  endDate: Date;
  precio: number;
}

reserva.component.ts

import { Reserva } from 'src/app/models/reserva';
import { ReservaService } from './../../../service/reserva.service';
import { Component, Input, OnInit } from '@angular/core';
import dayGridPlugin from '@fullcalendar/daygrid';
import timeGridPlugin from '@fullcalendar/timegrid';
import interactionPlugin from '@fullcalendar/interaction';
import esLocale from '@fullcalendar/core/locales/es';
import listPlugin from '@fullcalendar/list';

@Component({
  selector: 'app-reserva',
  templateUrl: './reserva.component.html',
  styleUrls: ('./reserva.component.css')
})
export class ReservaComponent implements OnInit {

  public reservas: Reserva();
  optionsReserva: any;
  optionsLista: any;
  title: any;
  start: any;
  end: any;

  constructor(private _servicioReserva: ReservaService) {

    this._servicioReserva.getReservas().subscribe(reservas => {
      this.reservas = reservas}
      );


    /*this.events = (
      {
        "title":"Hola",
        "start":"2020-10-26"
      },
      {
        "title":"Chau",
        "start":"2020-10-26",
        "end":"2020-10-27"
      },
      {
        "title":"Turno",
        "start":"2020-10-26T11:00:00",
      }
    );*/

    this.optionsReserva = {
      plugins: (dayGridPlugin, timeGridPlugin, interactionPlugin),
      defaultDate: new Date(),
      locale: esLocale,
      initialView: 'timeGridWeek',
      firstDay: 1,
      handleWindowResize: true,
      allDaySlot: false,
      headerToolbar: {
          start: 'prev,next', // will normally be on the left. if RTL, will be on the right
          center: 'title',
          end: 'today' // will normally be on the right. if RTL, will be on the left
        }
    };
    this.optionsLista = {
      plugins: (listPlugin, dayGridPlugin, timeGridPlugin, interactionPlugin),
      defaultDate: new Date(),
      locale: esLocale,
      initialView: 'listWeek',
      headerToolbar: {
        start: 'prev,next', // will normally be on the left. if RTL, will be on the right
        center: '',
        end: 'today' // will normally be on the right. if RTL, will be on the left
      }
    };
   }

  ngOnInit(): void {



  }
}

reserva.ts

import { Cancha } from '../service/canchas.service';
import { IReserva } from '../service/reserva.service';
import * as _ from 'lodash';
import * as moment from 'moment';


export class Reserva implements IReserva{

  constructor(data){
    _.set(this, 'data', data);
  }
  get id(): number {
    return _.get(this, 'data.id');
  }
  set id(value: number) {
    _.set(this, 'data.id', value);
  }

  get title(): string {
    return _.get(this, 'data.title');
  }
  set title(value: string) {
    _.set(this, 'data.title', value);
  }

  get cancha(): Cancha {
    return _.get(this, 'data.cancha');
  }

  set cancha(value: Cancha) {
    _.set(this, 'data.cancha', value);
  }

  get start(): string {
    return _.get(this, 'data.start');
  }

  set start(value: string) {
    _.set(this, 'data.start', value);
  }

  get startDate(): Date {
    return _.has(this, 'data.startDate') ? _.get(this, 'data.startDate') : moment(this.start);
  }

  set startDate(value: Date) {
    _.set(this, 'data.startDate', value);
  }

  get end(): string {
    return _.get(this, 'data.end');
  }
  set end(value: string) {
    _.set(this, 'data.end', value);
  }

  get endDate(): Date {
    return _.has(this, 'data.endDate') ? _.get(this, 'data.endDate') : moment(this.end);
  }
  set endDate(value: Date) {
    _.set(this, 'data.endDate', value);
  }

  get precio(): number {
    return _.get(this, 'data.precio');
  }

  set precio(value: number) {
    _.set(this, 'data.precio', value);
  }

  getData(){
    return _.get(this, 'data');
  }

}

Esos son mis códigos por si sirven para guiarse.

Desde ya, muchas gracias.

python – ¿Es posible generar html con sphinx cuando los rst generados están en un folder distinto al código?

Estoy generando documentación de un proyecto de Python usando Sphinx y sus correspondientes docstrings.

Actualmente, tengo el código en una carpeta y los htmls generados en otra.

Mi pregunta es si puedo poner los rst en una carpeta distinta al código fuente o si forzosamente tienen que estar en la misma, esto para mantener solamente el código (preferentemente) en un repositorio de github y la documentación (y rst) en otro repositorio.

Esto es lo que he intentado y funciona:

# Esto genera los rst
sphinx-apidoc --output-dir /mi_folder_codigo/archivos_rst /mi_folder_codigo/
# Esto genera el html
sphinx-build -v -b html /mi_folder_codigo/ /mi_folder_docs/

Cambié lo anterior a esto, pero sólo me genera los rst, pero no los html:

# Esto genera los rst
sphinx-apidoc --output-dir /mi_folder_docs/ /mi_folder_codigo/
# Esto "debería" generar los html
sphinx-build -v -b html /mi_folder_codigo/ /mi_folder_docs/

Incluso, traté cambiando el archivo index.rst que está en /mi_folder_codigo/ junto con conf.py

.. toctree::
   :glob:

   /mi_folder_docs/*

En conf.py tengo lo siguiente para la ruta:

sys.path.append(os.path.abspath('.'))

Y también lo modifiqué a esto:

sys.path.append(os.path.abspath('.'))
sys.path.append(os.path.abspath('../mi_folder_docs'))

Pero no genera los htmls, sólo como lo puse al principio.

¿Qué estoy haciendo mal? ¿Es posible hacer lo que estoy tratando de hacer?

Cabe aclarar que mi_folder_docs y mi_folder_codigo están dentro de la misma carpeta:

  • carpeta
    • mi_folder_codigo
    • mi_folder_docs

¡Gracias!

php – Obtener los datos de un usuario

Estoy a prendiendo oop con php y quiero tomar los datos de un usuario.

Este es mi codigo.

usuario.class.php

class Usuario extends Dbh {
    public function getPost(){
        $sql = "SELECT * FROM usuario WHERE id = ?";
        $stmt = $this->connect()->prepare($sql);
        $stmt->execute($id);

        $resultado = $stmt->fetch();
        return $resultado;
    }
}

y asi intento obtener sus datos

$id = 1;

$user = new Usuario();
$user->getPost($id);

echo 'Hola '.$user('nombre');

El resultado deberia ser Hola Antonia pero tengo este error Notice: Undefined property: Usuario::$ in y estoy confundida.

Espero me ayuden, gracias.

unity2d – Después de reiniciar el PC, Unity no abre los proyectos

Creo los proyectos, se abren después de crearlos, trabajo en ellos, los guardo, cierro el proyecto y después de reiniciar el PC ya no se abren.

Cuando intento abrir estos proyecto después de haber reiniciado parece que Unity Editor intenta abrirlos porqué sale el recuadro de fondo inicio con el nombre de Unity pero no abre nada. El programa Unity Hub sigue funcionando y puedo crear nuevos proyectos y abrirlos con el Unity Editor, pero los otros proyectos no.

Me ocurre con ambas versiones que he probado, Unity LTS de 2019 y Unity de 2020 ultima versión (pero no la más nueva de prueba alfa y beta).

Ejecutar el codigo Javascript despues de que html cargo todos los elementos en Google Chrome

Muy buen día comunidad, tengo un problemita que me viene quebrando la cabeza.
Y es que en todos los navegadores me funciona menos es Chrome.

Lo que quiero es ejecutar una simple función, después de haber cargado todos los elementos de HTML, suena simple y me funciona en todos los navegadores si pongo el script justo antes del < /body>. Pero simplemente no hago que funcione en Google Chrome.

Este seria un ejemplo:
Tengo un archivo html llamado ejemplo.html :

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Hola Mundo</title>
    <script type="text/javascript" src="https://es.stackoverflow.com/ejemplo2.js"></script>
</head>
<body>
    <p>Un parrafo</p>
    <div> Un texto </div>    
    <script type="text/javascript">
    iniciar();
    </script>
</body>
</html>

Y en mi código JavaScript tengo una primera alerta que se ejecuta antes de los elementos HTML y después la función iniciar que la ejecuto después de cargar todos mis elementos HTML (que dispara Alerta 2), lo cual me funciona en todos los navegadores menos en Google Chrome, en Chrome me dispara ambas alertas y no muestra los elementos HTML hasta después de ejecutar ambas alertas, pensaba que podría ser un tema de actualización o configuración en Chrome.

alert("Alerta 1");

function iniciar (){
    alert("Alerta 2");
}

Alguien sabe porque?
Muchas gracias 😀
P.D ya lo intente con < script type=”text/javascript”>
window.onload = iniciar;

< /script > y nada

c – ¿Alguien sabe por qué mi programa no calcula el promedio de los 25 números?

El problema de este programa es que a la salida solo dice que el promedio de los valores introducidos es 0, y ya traté de usar cualquier tipo de variable, int, float o double y todas entregan un 0 en la cuenta, espero puedan ayudarme y ajunto el código.


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
                            


int main()
{
    // TODO: Declaración de las variables: 
    double VOT, a= 0;
    double N;
    double b;

    
    printf("nEjemplo 9n");
    printf("nA continuación, ingrese la edad de 25 personasn");
    
    while (a<25){
 
    scanf("%d", &N);
    if (N>=18)
    
        VOT+=N;
        a++;
    }
    
    
    b= VOT/a;                   
    
    
    printf("nEl promedio de edad de las personas que pueden votar es %f años.n"), b;
    printf("nFINn");
    system("PAUSE");

    return 0;
}

funciones – ¿Cuantas lineas debería tener una función por lo ideal para cuidar los detalles de legibilidad y estética?

Estoy aprendiendo C y en el libro me dice que al escribir una función esta no puede tener mas de una pagina y lo ideal seria que esta no tuviera mas de media pagina.

EL detalle es que yo uso el editor VIM con un tamaño grand de letra para no forzar la vista ni gastarla. Sublime Text con el tamaño de letra por defecto en mi monitor una pagina tiene 34 lineas y Geany como 30.

El numero de lineas de código por pagina varia según el tamaño de la pantalla de la PC o Laptop y de la resolución, por eso les formulo esta pregunta ¿Cuantas lineas debería tener una función por lo ideal para cuidar los detalles de legibilidad y estética?

Gracias.

¿Cómo saber qué un hilo hace un-lock con seguridad a la terminación, mientras que todos los métodos que ya se manejan?

En un proyecto se puede ejecutarse durante mucho tiempo y crear muchos hilos. Al siguiente código, me pregunto si tengo que proteger el bloqueo además de try-catch general en todo del método setData (datos MyData)
(no soy codicioso, uso + -5 hilos totalmente)

public class MyFactory {

private ReadWriteLock rwl = new ReentrantReadWriteLock();
    private Lock readLock = rwl.readLock();
    private Lock writeLock = rwl.writeLock();
    
    private static MyFactory _instance = new MyFactory();
    private static Map<Integer, MyData> mapDatas = new HashMap<>();
    
    public static MyFactory getInstance() {
        return _instance;
    }
    
    
    public void setData(MyData data) {
        writeLock.lock();   
        try {
            mapData.put(...);
        } catch (Exception exc) {
            ...
        } finally {
            writeLock.unlock();
        }
    }

Psychz Networks: $49/mo Dedi E3-1230v2 w/16GB of RAM in Los Angeles!

Psychz Networks is coming at us with a dedi offer based in Los Angeles. For $49/month you get a Xeon e3-1230v2 with 16GB and either 256GB SSD or a 1TB HDD, all on a 1gbps link…which is unmetered!  They also offer IPMI and it comes with a /30 for ipv4.

Psychz also has some nice features that, while not unique, are pleasing to see.  For example, they offer Multi-Factor Authentication on accounts and a 99.9% SLA.  Also, if you find yourself growing with them you can deploy in many parts of the world – Europe, Oceania, Russia, even South America (Brazil) and South Korea (Seoul).  Their services include dedicated servers, colocation, CDN, backup servers, and DDOS-protected game servers.

Their WHOIS is public. You can find their ToS/Legal Docs on their website.  You can pay with Credit/Debit Card, PayPal, and Alipay.

If you decide to give them a spin, the LEB community would love to hear about your experience in the comments section below!

Here’s the offer: 

Dedi Offer
Los Angeles, CA

  • 16GB RAM

  • Intel Xeon E3-1230v2 CPU

  • 256GB SSD or 1TB HDD

  • 1Gbps unmetered

  • 1Gbps uplink

  • /30 IPv4

  • IPMI: yes

  • $49/month

  • (ORDER)

NETWORK INFO:

Please let us know if you have any questions/comments and enjoy!

raindog308

I’m Andrew, techno polymath and long-time LowEndTalk community Moderator. My technical interests include all things Unix, perl, python, shell scripting, and relational database systems. I enjoy writing technical articles here on LowEndBox to help people get more out of their VPSes.

c# – Como obtengo el empleado con mas ventas en los ultimos 30 dias tomando como punto de referencia la fecha actual

Estoy intentando hacer un procedimiento para crear un dashboard para mi aplicacion. Quiero mostrar el empleado que mas a vendido en los ultimos 30 dias, siempre tomando como referencia la fecha actual (cada vez que se inicie la aplicacion).

Hasta ahora solo tengo este query:

select empleado.Nombres, count(ventas.IDVenta) from Tab_ventasdetalle as ventas INNER JOIN Tab_empleados as empleado on ventas.Vendedor=empleado.Identificacion group by empleado.Nombres 

imagen 1
imagen2
Pero este me devuelve solo el nombre del empleado y la cantidad de ventas que ha realizado. Necesito que me devuelva el empleado top, es decir, el que mas ha vendido en los ultimos 30 dias.

No se como pasarle el parametro para que evalue los ultimos 30 dias apartir de la fecha actual.

Gracias de antemano,