Subversion Repositories general

Compare Revisions

Ignore whitespace Rev 31 → Rev 32

/kickup/trunk/src/ak/kickup/core/action/AdminApartmentAction.java
24,6 → 24,7
import ak.kickup.util.UserException;
import ak.kickup.core.model.Apartment;
import ak.kickup.core.model.ApartmentManager;
import ak.kickup.core.model.EventManager;
 
public final class AdminApartmentAction
extends Action
64,6 → 65,9
Long apartmentId = StringConverter.parseLong(theForm.get("id"));
Apartment apartment = ApartmentManager.getInstance().get(apartmentId);
 
if(!EventManager.getInstance().allowDeleteApartment(apartment))
throw new UserException("ak.kickup.core.apartment.delete.usedbyevent");
 
ApartmentManager.getInstance().delete(apartment);
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl());
return null;
/kickup/trunk/src/ak/kickup/core/action/AdminActAction.java
24,6 → 24,8
import ak.kickup.util.UserException;
import ak.kickup.core.model.Act;
import ak.kickup.core.model.ActManager;
import ak.kickup.core.model.EventManager;
import ak.kickup.core.model.ParticipantManager;
 
public final class AdminActAction
extends Action
61,6 → 63,12
Long actId = StringConverter.parseLong(theForm.get("id"));
Act act = ActManager.getInstance().get(actId);
 
if(!EventManager.getInstance().allowDeleteAct(act))
throw new UserException("ak.kickup.core.act.delete.usedbyevent");
 
if(!ParticipantManager.getInstance().allowDeleteAct(act))
throw new UserException("ak.kickup.core.act.delete.usedbyparticipant");
 
ActManager.getInstance().delete(act);
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl());
return null;
/kickup/trunk/src/ak/kickup/core/CoreResources.properties
18,9 → 18,12
ak.kickup.core.event.edit.distance.wrong=Расстояние должно быть числом, например 4,5
ak.kickup.core.act.edit.id.wrong=Неизвестное мероприятие, выбирайти из списка
ak.kickup.core.act.edit.name.required=Название обязательно
ak.kickup.core.act.delete.usedbyevent=Это мероприятие используется в пьянках, не могу удалить
ak.kickup.core.act.delete.usedbyparticipant=Это мероприятие используется участниками, не могу удалить
ak.kickup.core.apartment.edit.id.wrong=Неизвестная гостиница, выбирайти из списка
ak.kickup.core.apartment.edit.name.required=Название обязательно
ak.kickup.core.apartment.edit.price.wrong=Цена должна быть числом, например 12,35
ak.kickup.core.apartment.delete.usedbyevent=Эта гостиница используется в пьянках, не могу удалить
ak.kickup.core.participant.edit.id.wrong=Неизвестный участник, выбирайти из списка
ak.kickup.core.participant.edit.event.wrong=Неизвестная пьянка, выбирайти из списка
ak.kickup.core.participant.edit.nick.required=Ник обязателен
/kickup/trunk/src/ak/kickup/core/model/EventManager.java
146,6 → 146,21
return new EventAct();
}
 
public boolean allowDeleteAct(Act act)
throws ModelException
{
try {
return ((Integer)HibernateUtil.currentSession().iterate(
"select count(*) from EventAct where act=?",
act, Hibernate.entity(Act.class))
.next()).intValue() == 0;
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public EventApartment createApartment()
throws ModelException
{
152,6 → 167,35
return new EventApartment();
}
 
public boolean allowDeleteApartment(Apartment apartment)
throws ModelException
{
try {
return ((Integer)HibernateUtil.currentSession().iterate(
"select count(*) from EventApartment where apartment=?",
apartment, Hibernate.entity(Apartment.class))
.next()).intValue() == 0;
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
protected void deleteApartments(Apartment apartment)
throws ModelException
{
try {
HibernateUtil.currentSession().delete(
"from EventApartment where apartment=?",
apartment, Hibernate.entity(Apartment.class));
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public static final Comparator NAME_COMPARATOR = new NameComparator();
public static final Comparator START_COMPARATOR = new StartComparator();
 
/kickup/trunk/src/ak/kickup/core/model/Participant.java
327,7 → 327,8
if(acts != null) {
for(Iterator i = acts.iterator(); i.hasNext(); ) {
ParticipantAct a = (ParticipantAct)i.next();
actsMap.put(a.getAct().getId(), a);
if(a.getAct() != null)
actsMap.put(a.getAct().getId(), a);
}
}
}
/kickup/trunk/src/ak/kickup/core/model/Event.java
274,7 → 274,8
if(acts != null) {
for(Iterator i = acts.iterator(); i.hasNext(); ) {
EventAct a = (EventAct)i.next();
actsMap.put(a.getAct().getId(), a);
if(a.getAct() != null)
actsMap.put(a.getAct().getId(), a);
}
}
}
324,7 → 325,8
if(apartments != null) {
for(Iterator i = apartments.iterator(); i.hasNext(); ) {
EventApartment a = (EventApartment)i.next();
apartmentsMap.put(a.getApartment().getId(), a);
if(a.getApartment() != null)
apartmentsMap.put(a.getApartment().getId(), a);
}
}
}
/kickup/trunk/src/ak/kickup/core/model/ParticipantManager.java
206,6 → 206,21
return new ParticipantAct();
}
 
public boolean allowDeleteAct(Act act)
throws ModelException
{
try {
return ((Integer)HibernateUtil.currentSession().iterate(
"select count(*) from ParticipantAct where act=?",
act, Hibernate.entity(Act.class))
.next()).intValue() == 0;
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public static final Comparator NICK_COMPARATOR = new NickComparator();
 
private static class NickComparator
/kickup/trunk/webapp/error.jsp
4,7 → 4,7
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %>
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %>
<%@ taglib uri="/WEB-INF/kickup-core.tld" prefix="core" %>
<%@ taglib uri="/WEB-INF/ak-kickup.tld" prefix="core" %>
<html>
 
<head>
/kickup/trunk/sql/00.tables.sql
155,7 → 155,7
mod_stamp timestamp,
 
constraint participants_prim primary key (id),
constraint participants_email unique(email)
constraint participants_email unique(email, event)
);
 
create table participant_acts